Skip to main content

Sequelize CVE-2026-69240

| EUVDEUVD-2026-52429 CRITICAL
SQL Injection (CWE-89)
2026-08-03 GitHub_M GHSA-v8fg-2rw7-q452
9.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify Oracle-backed app using Sequelize < 6.37.4
  2. Delivery
    Submit value prefixed with TO_DATE/TO_TIMESTAMP
  3. Exploit
    Escape function returns payload unescaped
  4. Execution
    Injected SQL alters WHERE clause
  5. Impact
    Exfiltrate 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.

Act Now Prioritize within 24-48h. Why: CRITICAL severity + public POC available.
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

sequelize < 6.37.4

Affected Packages

npm sequelize fix: 6.37.4

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

Vendor (GitHub_M) PRIMARY 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 9.8 CRITICAL

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE CRITICAL
Red Hat 9.8 CRITICAL

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Aug 03, 2026 - 21:17 EUVD
CVE Published
Aug 03, 2026 - 20:28 cve.org
CRITICAL 9.8

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

Executive ViewAI

Why It Matters

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.

Business Impact: Severe
Compensating Controls

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

EPSS Score
0.3%
Top 76% exploitable
Prevalence
High
very popular Node.js ORM, though Oracle-dialect subset is uncommon
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Social Media
2
Sightings
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor CIRCL GitHub VulDB

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity + public POC available
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Total

Priority Score

69
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +49
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

CVE-2023-25813 CRITICAL POC
9.8 Feb 22

Sequelize is a Node.js ORM tool. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable, no auth

CVE-2019-10749 CRITICAL POC
9.8 Oct 29

sequelize before version 3.35.1 allows attackers to perform a SQL Injection due to the JSON path keys not being properly

CVE-2019-10748 CRITICAL POC
9.8 Oct 29

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

CVE-2019-10752 CRITICAL POC
9.8 Oct 17

Sequelize, all versions prior to version 4.44.3 and 5.15.1, is vulnerable to SQL Injection due to sequelize.json() helpe

CVE-2015-1369 HIGH POC
7.5 Jan 27

SQL injection vulnerability in Sequelize before 2.0.0-rc7 for Node.js allows remote attackers to execute arbitrary SQL c

CVE-2023-22578 CRITICAL
9.8 Feb 16

Due to improper artibute filtering in the sequalize js library, can a attacker peform SQL injections. Rated critical sev

CVE-2023-22579 HIGH
8.8 Feb 16

Due to improper parameter filtering in the sequalize js library, can a attacker peform injection. Rated high severity (C

CVE-2026-30951 HIGH POC
7.5 Mar 10

SQL injection in Sequelize prior to version 6.37.8 allows unauthenticated attackers to execute arbitrary SQL queries and

CVE-2023-22580 HIGH
7.5 Feb 16

Due to improper input filtering in the sequalize js library, can malicious queries lead to sensitive information disclos

CVE-2019-11069 HIGH
7.5 Apr 10

Sequelize version 5 before 5.3.0 does not properly ensure that standard conforming strings are used. Rated high severity

Vendor StatusVendor

SUSE

Severity: Critical

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy