GitHub Advisoryadvisory · npm
GHSA-9wgh-m22w-9xj8 NocoDB: Hidden LTAR Column Exposure in Public Shared-View Relation Endpoints
MEDIUM
Official page ↗
- Aliases
- CVE-2026-47279
- Ecosystem
- npm
- Packages
- nocodb
- Severity
- Moderate
- CVSS vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
- Weaknesses
- CWE-284
- Reviewed
- 2026-06-05
Affected packages
• npm nocodb: < 2026.05.1 → fixed in 2026.05.1
Description
Summary
The public shared-view relation endpoints accepted a caller-supplied column
ID without verifying that the column was visible in the shared view, so
anyone holding a share UUID could read links from any LTAR column on the
view's table — including columns the view owner had hidden.
Details
`publicMmList`, `publicHmList`, and `relDataList` already ensured that the
requested column belonged to the view's model, but did not check the
view-column entry's `show` flag. All three handlers now also fetch the
shared view's column entries and reject the request unless the matching
entry has `show=true`. The four public relation routes covered by the fix
are:
• `GET /api/v2/public/shared-view/:uuid/rows/:rowId/mm/:columnId` (many-to-many)
• `GET /api/v2/public/shared-view/:uuid/rows/:rowId/hm/:columnId` (has-many)
• `GET /api/v2/public/shared-view/:uuid/rows/:rowId/{ln,om}/:columnId`
(links / one-to-many — both share the many-to-many handler)
• `GET /api/v2/public/shared-view/:uuid/nested/:columnId` (form/gallery
picker)
Impact
Anyone holding a share UUID could enumerate the full set of linked records
for any hidden LTAR column on the view's table by calling the relation
endpoint directly, even when the same column was correctly omitted from the
public `/rows` response.
Credit
This issue was reported by @leduckhuong.
Related
Alias · CVE (1)
- CVE-2026-47279 NocoDB is software for building databases as spreadsheets. vulnerability
Weakness · CWE (1)
- CWE-284 Improper Access Control weakness