CVE-2026-53931: NocoDB Server-Side Request Forgery Vulnerability
MODERATECVE-2026-53931 is a MODERATE server-side request forgery vulnerability (CWE-441: Unintended Proxy or Intermediary ('Confused Deputy')) affecting NocoDB libraries in the npm ecosystem. The issue involves server-side request forgery via spreadsheet import endpoint. Remediation is available in the latest vendor maintenance releases.
CVE-2026-53931 at a Glance
How to Fix CVE-2026-53931
To remediate this vulnerability, upgrade all affected NocoDB dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
npm install nocodb@Latest secure release
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
npm ls nocodb
How to Check if You Are Affected
To determine whether your Node.js application is affected by CVE-2026-53931, inspect your project dependencies using npm:
npm ls nocodb
Analyze the terminal output to locate any version of NocoDB in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than the patched release), your application is affected.
Note: The npm ls nocodb command inspects dependencies declared in your package.json and lockfile; it does not perform automated runtime dynamic scanning.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-441: Unintended Proxy or Intermediary ('Confused Deputy'), where the product receives a request, message, or directive from an upstream component, but the product does not sufficiently preserve the original source of the request before forwarding the request to an external actor that is outside of the product's control sphere. this causes the product to appear to be the source of the request, leading it to act as a proxy or other intermediary between the upstream component and the external actor. In NocoDB, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2026-53931 Affected NocoDB Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
nocodb
|
npm |
≤ 0.301.3
|
|
References
Frequently Asked Questions
What is CVE-2026-53931?
Which NocoDB versions are affected?
What version fixes CVE-2026-53931?
Is nocodb affected?
What CWE is associated with CVE-2026-53931?
How can I check npm dependencies for CVE-2026-53931?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-hmcr-rmjq-47qr",
"modified" : "2026-07-20T21:20:26Z",
"published" : "2026-06-17T14:08:26Z",
"aliases" : [ "CVE-2026-53931" ],
"summary" : "NocoDB: Server-Side Request Forgery via Spreadsheet Import Endpoint",
"details" : "### Summary\nThe spreadsheet-import endpoint `axiosRequestMake` could be used as a generic\nHTTP proxy. Before the fix it was reachable unauthenticated, and its\nURL-extension allowlist was a regex tested against the full URL string, so\nURLs whose query string ended in `.csv` (for example\n`https://example.com/robots.txt?.csv`) satisfied the gate even though the\nunderlying request was for `robots.txt`.\n\n### Details\nThree layers of protection now apply to the endpoint:\n\n- The controller is decorated with `@UseGuards(DataApiLimiterGuard, GlobalGuard)`\n and `@Acl('fetchViaUrl')`, so unauthenticated callers and callers without\n the editor role are rejected before the request body is processed.\n- The extension allowlist is tested against `url.pathname` only. Callers can\n no longer satisfy the regex by appending a `.csv` suffix to the query\n string.\n- The downstream axios call is wired to `useAgent(url)` from\n `request-filtering-agent`, which blocks RFC 1918, loopback, link-local,\n and other private destinations at the socket layer.\n\n### Impact\nUnauthenticated callers could previously coerce the NocoDB process to issue\nHTTP requests on their behalf, including to internal services reachable from\nthe host. With the auth gate in place and the pathname-anchored extension\ncheck combined with socket-layer destination filtering, the endpoint is no\nlonger usable as a generic proxy and can no longer reach private ranges.\n\n### Credit\nThis issue was reported by the [GitHub Security Lab](https://securitylab.github.com/)\n([@p-](https://github.com/p-), [@m-y-mo](https://github.com/m-y-mo)).",
"severity" : [ {
"type" : "CVSS_V4",
"score" : "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "npm",
"name" : "nocodb"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"last_affected" : "0.301.3"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/nocodb/nocodb/security/advisories/GHSA-hmcr-rmjq-47qr"
}, {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-53931"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/nocodb/nocodb"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-441", "CWE-918" ],
"severity" : "MODERATE",
"github_reviewed" : true,
"github_reviewed_at" : "2026-06-17T14:08:26Z",
"nvd_published_at" : "2026-06-23T21:17:01Z"
}
}