Vulnerabilities in pkg:npm/nocodb
PACKAGECVE-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.
pkg:npm/nocodb
Vulnerability advisories affecting package pkg:npm/nocodb. Select an advisory below to view technical details or fixes.
| Advisory ID | CVE / NVD | Severity | Summary |
|---|---|---|---|
| GHSA-hmcr-rmjq-47qr | CVE-2026-53931 | MODERATE | NocoDB: Server-Side Request Forgery via Spreadsheet Import Endpoint |
| GHSA-h6vv-pcq8-7xm4 | CVE-2026-53930 | MODERATE | NocoDB: Server-Side Request Forgery via Base Migration URL |
| GHSA-6mhr-74x2-98v9 | CVE-2026-53929 | MODERATE | NocoDB: Stored Cross-Site Scripting via Secure Attachment |
| GHSA-r989-7g3j-wjhw | CVE-2026-53928 | MODERATE | NocoDB: Refresh Tokens Persist Through Password Recovery |
| GHSA-gprh-27j3-g5h4 | CVE-2026-53927 | MODERATE | NocoDB: Server-Side Request Forgery via Spreadsheet Fetch URL |
| GHSA-g72g-r7m4-9x4g | CVE-2026-53926 | MODERATE | NocoDB: OAuth Tokens Persist Through Security Events |
| GHSA-4w6r-5c2j-qf5f | CVE-2026-47378 | MODERATE | NocoDB: Hidden Column Exposure in Public Shared View Endpoints |
| GHSA-hj85-ph9q-78jg | CVE-2026-47387 | HIGH | NocoDB: Stored Cross-Site Scripting via Form View Redirect URL |
| GHSA-xxpj-q764-9r6q | CVE-2026-47388 | LOW | NocoDB: Missing Ownership Check in MCP Attachment Read |
| GHSA-8m7c-hf24-5g47 | CVE-2026-47386 | MODERATE | NocoDB: OAuth Authorization Code Race Condition |
| GHSA-wvqj-9wv4-7ff5 | CVE-2026-47385 | MODERATE | NocoDB: Path Traversal via SQLite Source Filename |
| GHSA-p8wx-5f39-w3x4 | CVE-2026-47384 | MODERATE | NocoDB: SQL Injection via Column Title in Bulk GroupBy |
| GHSA-jf3g-4gwg-4h66 | CVE-2026-47383 | HIGH | NocoDB: Stored Cross-Site Scripting via Row Comments |
| GHSA-w43h-r5m5-p832 | CVE-2026-47382 | MODERATE | NocoDB: Server-Side Request Forgery via Database Connection Host |
| GHSA-96fh-m4r8-6v9v | CVE-2026-47381 | MODERATE | NocoDB: Cross-Workspace Integration Use in Connection Test |
| GHSA-jr54-jwhj-55gp | CVE-2026-47380 | MODERATE | NocoDB: User Enumeration via Sign-In Timing |
| GHSA-qhxg-623c-cfjm | CVE-2026-47379 | MODERATE | NocoDB: Plaintext Password Comparison in Shared Views |
| GHSA-rvp5-9p55-f5rp | CVE-2026-47377 | MODERATE | NocoDB: Open Redirect via Hash Fragment in hashRedirect Plugin |
| GHSA-6xcx-7qmg-vjfq | CVE-2026-47376 | MODERATE | NocoDB: Reflected Cross-Site Scripting via Password Reset Token |
| GHSA-cxv7-gmmp-228p | CVE-2026-47375 | MODERATE | NocoDB: Postgres SQL Injection in Formula `ARRAYSORT` |
| GHSA-9wgh-m22w-9xj8 | CVE-2026-47279 | MODERATE | NocoDB: Hidden LTAR Column Exposure in Public Shared-View Relation Endpoints |
| GHSA-f76x-f9vj-92jv | CVE-2026-46554 | LOW | NocoDB: Stale Auth Cache After API Token Deletion |
| GHSA-8rwr-f68v-cvw6 | CVE-2026-46553 | LOW | NocoDB: Attachment Size Limit Bypass via Upload-by-URL |
| GHSA-chqv-vrj7-qffp | CVE-2026-46552 | MODERATE | NocoDB: Shared-base link access can invite arbitrary users as persistent base members |
| GHSA-99vc-2jx2-688p | CVE-2026-46551 | MODERATE | NocoDB: Missing File Size Enforcement in Upload-by-URL Allows Denial of Service via Disk Exhaustion |
| GHSA-f74w-272x-mqcv | CVE-2026-46550 | MODERATE | NocoDB: Refresh Token Cookie Set Without `secure` and `sameSite` Flags |
| GHSA-m5qg-rvjq-727p | CVE-2026-46549 | LOW | NocoDB: OAuth Token Scope Not Enforced at ACL Layer Allows Scope Escalation |
| GHSA-2c5x-4jgf-88mj | CVE-2026-46548 | MODERATE | NocoDB: SSRF Protection Bypass in Notification Webhook Plugins (Slack, Discord, Mattermost, Teams) |
| GHSA-9qgr-6vpg-9gh9 | CVE-2026-46547 | MODERATE | NocoDB: Reflected Cross-Site Scripting via Page Leaving Redirect URL |
| GHSA-wwp2-x4rj-j8rm | CVE-2026-28401 | MODERATE | NocoDB Vulnerable to Stored Cross-Site Scripting via Rich Text Cells |
| GHSA-rcph-x7mj-54mm | CVE-2026-28397 | MODERATE | NocoDB Vulnerable to Stored Cross-site Scripting via Comments |
| GHSA-45rp-9p97-h852 | CVE-2026-28399 | MODERATE | NocoDB Vulnerable to SQL Injection via DATEADD Formula |
| GHSA-8vm4-g489-v3w7 | CVE-2026-28398 | MODERATE | NocoDB Vulnerable to Stored Cross-Site Scripting via Comments and Rich Text Cells |
| GHSA-p9x3-w98f-7j3q | CVE-2026-28361 | MODERATE | NocoDB Missing Ownership Validation in MCP Token Operations |
| GHSA-x4vh-j75g-268g | CVE-2026-28396 | MODERATE | NocoDB's Refresh Tokens Not Revoked on Password Reset |
| GHSA-mpp2-x7wv-38hv | CVE-2026-28360 | LOW | NocoDB has Plaintext Storage of Shared View Passwords |
| GHSA-qxwq-q265-hc44 | CVE-2026-28359 | MODERATE | NocoDB Vulnerable to Stored Cross-site Scripting via Rich Text Field |
| GHSA-387m-j3p9-3php | CVE-2026-28358 | LOW | NocoDB Vulnerable to User Enumeration via Password Reset Endpoint |
| GHSA-vx5p-q85x-xm3c | CVE-2026-28357 | MODERATE | NocoDB has Stored Cross-site Scripting via Formula Cell |
| GHSA-95ff-46g6-6gw9 | CVE-2026-24766 | MODERATE | NocoDB has Prototype Pollution in Connection Test Endpoint, Leading to DoS |
| GHSA-xr7v-j379-34v9 | CVE-2026-24767 | MODERATE | NocoDB has Blind SSRF via Unvalidated HEAD Request in uploadViaURL Functionality |
| GHSA-3hmw-8mw3-rmpj | CVE-2026-24768 | MODERATE | NocoDB has Unvalidated Redirect in Login Flow via continueAfterSignIn Parameter |
| GHSA-q5c6-h22r-qpwr | CVE-2026-24769 | HIGH | NocoDB Vulnerable to Stored Cross-Site Scripting via SVG upload |
| GHSA-wf6c-hrhf-86cw | CVE-2025-27506 | MODERATE | NocoDB Vulnerable to Reflected Cross-Site Scripting on Reset Password Page |
| GHSA-8fxg-mr34-jqr8 | CVE-2023-50718 | MODERATE | NocoDB SQL Injection vulnerability |
| GHSA-qg73-g3cf-vhhh | CVE-2023-50717 | MODERATE | NocoDB Allows Preview of Files with Dangerous Content |
| GHSA-h6r4-xvw6-jc5h | CVE-2023-49781 | HIGH | NocoDB Vulnerable to Stored Cross-Site Scripting in Formula.vue |
| GHSA-3m5q-q39v-xf8f | CVE-2023-43794 | MODERATE | nocodb SQL Injection vulnerability |
| GHSA-xrpm-hccg-28x7 | CVE-2023-5104 | MODERATE | Improper Input Validation in nocodb |
| GHSA-mx8q-jqwm-85mv | CVE-2022-2062 | HIGH | NocoDB information disclosure vulnerability |
| GHSA-grv6-m753-3w2g | CVE-2022-3423 | MODERATE | NocoDB vulnerable to Denial of Service |
| GHSA-6293-2vg2-pmp5 | CVE-2022-2064 | HIGH | Insufficient Session Expiration in NocoDB |
| GHSA-fq4h-m3c8-8m2v | CVE-2022-2063 | HIGH | Improper Privilege Management in NocoDB |
| GHSA-hv6q-5g4f-8897 | CVE-2022-2079 | MODERATE | Cross-site Scripting in NocoDB |
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"
}
}