CVE-2026-69240

Sequelize: SQL Injection (Oracle DB)

Published Aug 3, 2026 CVSS 3.1 · 9.8 Critical EPSS < 1% KEV · Not listed
Description
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.

Analysis

AI-generated

Technical impact

A high‑severity SQL injection flaw exists in Sequelize prior to version 6.37.4 when the Oracle dialect is used. The escape function in sql‑string.js fails to escape single quotes for values that start with TO_TIMESTAMP or TO_DATE, allowing an attacker to inject arbitrary SQL via user input that is sent to the database. This flaw can be exploited to execute unintended SQL statements, potentially exposing or compromising sensitive data.

Affected Systems

The vulnerability affects the Sequelize Node.js ORM (sequelize:sequelize). All releases before 6.37.4 are impacted. The fix is included in Sequelize v6.37.4 and later.

Risk and Exploitability

The flaw carries a CVSS score of 9.8, indicating critical severity. EPSS information is not available and the issue is not listed in the CISA KEV catalog. Exploitation is likely if an application uses the Oracle dialect and accepts untrusted input starting with TO_DATE or TO_TIMESTAMP. The likely attack vector is through web or API input channels that forward raw user strings to Sequelize; this inference comes from the fact that injection occurs when unfiltered user values hit the escape function. An unauthenticated attacker could inject malicious SQL by sending crafted input through these channels.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Sequelize to v6.37.4 or later to apply the official fix.
  • If upgrading is not immediately possible, block or sanitise any user input that starts with TO_DATE or TO_TIMESTAMP; enforce strict validation or encode such values before passing them to Sequelize.
  • Review and restrict the database privileges of the application account to the minimum required; consider using separate read‑only and read‑write accounts where feasible.

Generated by OpenCVE AI on August 4, 2026 at 20:54 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-v8fg-2rw7-q452 Sequelize: SQL Injection (Oracle DB)
History
Type Values Removed Values Added
First Time appeared Sequelizejs
Sequelizejs sequelize
Vendors & Products Sequelizejs
Sequelizejs sequelize
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description 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.
Title Sequelize: SQL Injection (Oracle DB)
Weaknesses CWE-89
References
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}

Weaknesses
  • CWE-89

    Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Aug 4, 2026, 2:12 PM
Reserved
Aug 3, 2026, 7:54 PM
Status
Awaiting Analysis
Published
Aug 3, 2026, 9:16 PM
Modified
Sep 10, 2026, 8:36 PM
Severity
Critical
Public date
Aug 3, 2026, 8:28 PM