GitHub Advisoryadvisory · npm

GHSA-9wgh-m22w-9xj8 NocoDB: Hidden LTAR Column Exposure in Public Shared-View Relation Endpoints

MEDIUM Published 2026-06-05 Modified 2026-07-20 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

References