Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify Oracle-backed app using Sequelize < 6.37.4
-
DeliverySubmit value prefixed with TO_DATE/TO_TIMESTAMP
-
ExploitEscape function returns payload unescaped
-
ExecutionInjected SQL alters WHERE clause
-
ImpactExfiltrate or tamper with database data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that Sequelize be configured with the Oracle dialect (dialect: 'oracle') - the flaw does not exist for any other dialect. In addition, an attacker-controlled application value must reach the sql-string.js escape() path (for example, user input passed directly as a value in a where clause) and must begin with the literal prefix TO_TIMESTAMP or TO_DATE so that the quote-doubling is skipped; the payload then uses Oracle string concatenation/comment syntax to break out. Limiting factors: the Oracle-dialect requirement makes this a non-default configuration for most Sequelize users; the value must be routed through the vulnerable escape function rather than through bind parameters; and the affected versions are all releases before 6.37.4. No user interaction or authentication is required per the CVSS vector (PR:N/UI:N) once the app exposes such a value. |
| Impact | The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, base 9.8) treats this as network-reachable, unauthenticated, low-complexity full-impact SQL injection, which is defensible for the classic SQLi pattern. However, that raw score understates a major real-world limiter: exploitation is only possible when Sequelize is configured with the Oracle dialect, which is a comparatively uncommon deployment among Sequelize users (Postgres/MySQL/MariaDB/SQLite/MSSQL are far more typical). The attacker must also control a value that both begins with TO_TIMESTAMP or TO_DATE and reaches this escape path, so the effective attack surface is narrower than a generic 9.8 implies. No EPSS score and no KEV status were supplied; a working PoC is published in the advisory, so this is 'publicly available exploit code exists' rather than confirmed active exploitation. Net assessment: genuinely high severity for Oracle-dialect deployments and worth prompt patching there, but for the majority of Sequelize installs (non-Oracle dialects) the practical risk is effectively nil. The Oracle-only precondition should be the primary triage input, not the headline CVSS number. |
| Exploit ScenarioDerived | An application backed by Oracle uses Sequelize and passes a request parameter directly into a where clause, e.g. Student.findOne({ where: { firstName: req.query.firstName } }). An attacker sends firstName=TO_DATE('0','Y')||'' OR 1=1-- , which the escape function returns unescaped because it starts with TO_DATE, producing a WHERE clause with an attacker-controlled OR 1=1-- and enabling data theft or tampering. A working PoC is published in the GitHub advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 03, 2026
SQL injection in the Sequelize Node.js ORM (versions prior to 6.37.4) allows remote attackers to inject arbitrary SQL through application values that reach the string-escaping routine, but only when the ORM is configured with the Oracle dialect. The escape() function in sql-string.js returns any string beginning with TO_TIMESTAMP or TO_DATE verbatim without doubling single quotes, letting a crafted value break out of the intended literal. Publicly available exploit code exists in the GitHub Security Advisory (GHSA-v8fg-2rw7-q452); there is no CISA KEV listing and no EPSS score was provided.
RemediationAI
Vendor-released patch: 6.37.4 - upgrade the sequelize npm package to 6.37.4 or later, which restores proper single-quote escaping in the Oracle dialect path (fix commit 5deadd2410ae9136a21fb652db206d27bb715f26). Because the vulnerability is confined to the Oracle dialect, any deployment not using dialect: 'oracle' is unaffected and can upgrade at normal cadence. Where an immediate upgrade is not possible on Oracle-backed apps, the actionable compensating controls are: use parameterized queries / bind parameters (replacements or bind arrays) instead of passing user input as raw values into where clauses so tainted strings never reach the vulnerable escape path; and add input validation to reject or neutralize application values that begin with TO_TIMESTAMP or TO_DATE before they are handed to Sequelize - the trade-off being that legitimate date-conversion expressions passed as literals would also be blocked. Advisory and patch references: https://github.com/sequelize/sequelize/security/advisories/GHSA-v8fg-2rw7-q452 and https://github.com/sequelize/sequelize/commit/5deadd2410ae9136a21fb652db206d27bb715f26.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Sequelize is one of the most widely used promise-based ORMs for Node.js, mapping JavaScript queries to dialect-specific SQL. The flaw is a classic CWE-89 (Improper Neutralization of Special Elements used in an SQL Command) defect in the Oracle dialect code path. When dialect === 'oracle' and the value is a string, escape() contains a special case: if the string starts with TO_TIMESTAMP or TO_DATE (Oracle date/timestamp conversion functions), it returns the value directly and skips the val.replace(/'/g, "''") quote-doubling that normally neutralizes embedded single quotes. This whitelist-by-prefix logic was presumably intended to let callers pass raw Oracle date-conversion expressions, but because it bypasses escaping entirely, an attacker who controls a value that begins with those tokens can append arbitrary SQL. The single affected package is npm/sequelize (cpe:2.3:a:sequelize:sequelize).
Know when Sequelize gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Remote unauthenticated SQL injection via a user value reaching escape(); Oracle-dialect requirement is a deployment precondition, not attacker complexity, so AC:L with full C/I/A impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Sequelize is a Node.js ORM tool. Prior to 6.37.4, SQL injection is possible with strings only if dialect is set to oracle. The escape function defined in sql-string.js does not escape quotes if the value starts with TO_TIMESTAMP or TO_DATE. In the Oracle dialect, when val is a string and starts with TO_TIMESTAMP or TO_DATE, escape returns val directly instead of replacing single quotes. An attacker can inject arbitrary SQL expressions through an application value that reaches this escape path. This issue is fixed in version 6.37.4.
Articles & Coverage 1
Executive ViewAI
Sequelize Node.js ORM versions prior to 6.37.4 contain a critical SQL injection vulnerability specific to Oracle database deployments, enabling remote attackers to execute arbitrary database commands and access or modify sensitive data. Organizations using this configuration face immediate risk of data exfiltration, manipulation, and regulatory violations. No vendor patch is currently available, requiring urgent defensive action to protect production systems.
No vendor-released patch identified at time of analysis. Interim mitigations include: (1) Application-layer input validation to reject or sanitize SQL escape sequences starting with TO_TIMESTAMP or TO_DATE; (2) Web Application Firewall rules to block SQL injection payloads; (3) Database privilege restrictions using least-privilege Oracle accounts; (4) Enable and monitor Oracle database audit logs for SQL injection indicators; (5) Evaluate alternative Node.js ORMs or temporary database dialect changes for non-critical applications; (6) Restrict database access to whitelisted application sources via network segmentation.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
Sequelize is a Node.js ORM tool. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable, no auth
sequelize before version 3.35.1 allows attackers to perform a SQL Injection due to the JSON path keys not being properly
Sequelize all versions prior to 3.35.1, 4.44.3, and 5.8.11 are vulnerable to SQL Injection due to JSON path keys not bei
Sequelize, all versions prior to version 4.44.3 and 5.15.1, is vulnerable to SQL Injection due to sequelize.json() helpe
SQL injection vulnerability in Sequelize before 2.0.0-rc7 for Node.js allows remote attackers to execute arbitrary SQL c
Due to improper artibute filtering in the sequalize js library, can a attacker peform SQL injections. Rated critical sev
Due to improper parameter filtering in the sequalize js library, can a attacker peform injection. Rated high severity (C
SQL injection in Sequelize prior to version 6.37.8 allows unauthenticated attackers to execute arbitrary SQL queries and
Due to improper input filtering in the sequalize js library, can malicious queries lead to sensitive information disclos
Sequelize version 5 before 5.3.0 does not properly ensure that standard conforming strings are used. Rated high severity
EUVD-2026-52429
GHSA-v8fg-2rw7-q452
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB