Vulnerabilities in pkg:npm/nocodb

PACKAGE
Advisory Identifier: GHSA-hmcr-rmjq-47qr
Advisory Summary

CVE-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.

54 Known Advisory Record(s)
Package Vulnerability Intelligence

pkg:npm/nocodb

54 Known Advisory Record(s)

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

CVE Identifier CVE-2026-53931
GHSA Identifier GHSA-hmcr-rmjq-47qr
Severity MODERATE
CVSS v3.1 Base Score N/A
CWE Classification CWE-441: Unintended Proxy or Intermediary ('Confused Deputy')
Affected Product NocoDB
Package Ecosystem npm
Published Date
Last Updated

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.

nocodb fixed: Latest secure release
npm install nocodb@Latest secure release
Verify Direct and Transitive Dependencies

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

### Summary The spreadsheet-import endpoint `axiosRequestMake` could be used as a generic HTTP proxy. Before the fix it was reachable unauthenticated, and its URL-extension allowlist was a regex tested against the full URL string, so URLs whose query string ended in `.csv` (for example `https://example.com/robots.txt?.csv`) satisfied the gate even though the underlying request was for `robots.txt`. ### Details Three layers of protection now apply to the endpoint: - The controller is decorated with `@UseGuards(DataApiLimiterGuard, GlobalGuard)` and `@Acl('fetchViaUrl')`, so unauthenticated callers and callers without the editor role are rejected before the request body is processed. - The extension allowlist is tested against `url.pathname` only. Callers can no longer satisfy the regex by appending a `.csv` suffix to the query string. - The downstream axios call is wired to `useAgent(url)` from `request-filtering-agent`, which blocks RFC 1918, loopback, link-local, and other private destinations at the socket layer. ### Impact Unauthenticated callers could previously coerce the NocoDB process to issue HTTP requests on their behalf, including to internal services reachable from the host. With the auth gate in place and the pathname-anchored extension check combined with socket-layer destination filtering, the endpoint is no longer usable as a generic proxy and can no longer reach private ranges. ### Credit This issue was reported by the [GitHub Security Lab](https://securitylab.github.com/) ([@p-](https://github.com/p-), [@m-y-mo](https://github.com/m-y-mo)).

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?
CVE-2026-53931 is a security vulnerability in NocoDB involving Server-Side Request Forgery via Spreadsheet Import Endpoint under CWE-441: Unintended Proxy or Intermediary ('Confused Deputy').
Which NocoDB versions are affected?
Affected versions include releases prior to current release patches across affected packages: nocodb.
What version fixes CVE-2026-53931?
Upgrading to current release patches (or the latest patched release for your respective branch) resolves the vulnerability.
Is nocodb affected?
Yes, nocodb is affected in releases prior to Latest secure release. Upgrade your dependency to Latest secure release or later.
What CWE is associated with CVE-2026-53931?
CVE-2026-53931 is classified under CWE-441: Unintended Proxy or Intermediary ('Confused Deputy') (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.).
How can I check npm dependencies for CVE-2026-53931?
Run the dependency tree command: 'npm ls nocodb'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "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"
  }
}