CVE-2026-30951
Published: 10 March 2026
Summary
CVE-2026-30951 is a high-severity SQL Injection (CWE-89) vulnerability in Sequelizejs Sequelize. Its CVSS base score is 7.5 (High).
Operationally, exploitation aligns with the MITRE ATT&CK technique Exploit Public-Facing Application (T1190); ranked at the 5.8th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.
The strongest mitigations our analysis identified are NIST 800-53 RA-5 (Vulnerability Monitoring and Scanning) and SI-10 (Information Input Validation).
Deeper analysis
CVE-2026-30951 is a SQL injection vulnerability in Sequelize, a Node.js Object-Relational Mapping (ORM) tool. Versions prior to 6.37.8 are affected due to improper handling of unescaped cast types in JSON/JSONB where clause processing. Specifically, the _traverseJSON() function splits JSON path keys on "::" to extract a cast type, which is then interpolated raw into a CAST(... AS <type>) SQL expression, allowing injection of arbitrary SQL. The vulnerability is rated with a CVSS v3.1 base score of 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N) and is associated with CWE-89: Improper Neutralization of Special Elements used in an SQL Command.
An unauthenticated attacker with the ability to control JSON object keys in a where clause can exploit this vulnerability remotely over the network with low complexity and no user interaction required. By crafting malicious JSON keys containing SQL payloads separated by "::", the attacker can inject arbitrary SQL, enabling data exfiltration from any table in the underlying database.
The official mitigation, as detailed in the Sequelize security advisory (GHSA-6457-6jrx-69cr), is to upgrade to version 6.37.8 or later, where the cast type handling has been fixed to prevent raw interpolation.
EU & UK References
- 🇪🇺 ENISA EUVD: EUVD-2026-10870
Vulnerability details
Sequelize is a Node.js ORM tool. Prior to 6.37.8, there is SQL injection via unescaped cast type in JSON/JSONB where clause processing. The _traverseJSON() function splits JSON path keys on :: to extract a cast type, which is interpolated raw…
more
into CAST(... AS <type>) SQL. An attacker who controls JSON object keys can inject arbitrary SQL and exfiltrate data from any table. This vulnerability is fixed in 6.37.8.
- CWE(s)
Related Threats
MITRE ATT&CK Enterprise TechniquesAI
Why these techniques?
SQL injection in public-facing Node.js/ORM app enables remote unauthenticated exploitation (T1190) and direct arbitrary queries for database data exfiltration (T1213.006).
CVEs Like This One
Affected Assets
Mitigating Controls
Mitigating Controls (NIST 800-53 r5) AI
Directly mitigates the SQL injection flaw by requiring timely remediation through upgrading vulnerable Sequelize versions to 6.37.8 or later.
Prevents SQL injection exploitation by validating and sanitizing untrusted JSON object keys before processing in Sequelize where clauses.
Identifies the presence of the vulnerable Sequelize library through regular vulnerability scanning, enabling proactive patching.