Critical

Sequelize - Default support for “raw attributes” when using parentheses

  • Disclosed: 24.02.2023
  • Updated: 11.10.2026 10:22

Impact

Sequelize 6.28.2 and prior has a dangerous feature where using parentheses in the attribute option would make Sequelize use the string as-is in the SQL

ts
User.findAll({
  attributes: [
    ['count(id)', 'count']
  ]
});

Produced

sql
SELECT count(id) AS "count" FROM "users"

Patches

This feature was deprecated in Sequelize 5, and using it prints a deprecation warning.

This issue has been patched in @sequelize/core@7.0.0.alpha-20 and sequelize@6.29.0.

In Sequelize 7, it now produces the following:

sql
SELECT "count(id)" AS "count" FROM "users"

In Sequelize 6, it throws an error explaining that we had to introduce a breaking change, and requires the user to explicitly opt-in to either the Sequelize 7 behavior (always escape) or the Sequelize 5 behavior (inline attributes that include () without escaping). See https://github.com/sequelize/sequelize/pull/15710 for more information.

Mitigations

Do not use user-provided content to build your list or attributes. If you do, make sure that attribute in question actually exists on your model by checking that it exists in the rawAttributes property of your model first.


A discussion thread about this issue is open at https://github.com/sequelize/sequelize/discussions/15694 CVE: CVE-2023-22578

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
npm package sequelize < 6.29.0 6.29.0
npm package @sequelize/core < 7.0.0-alpha.20 7.0.0-alpha.20

References

CVSS score 10/10
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Weakness (CWE)
CWE-790
Platform
npm
Package
sequelize, @sequelize/core
Disclosed
24.02.2023
Updated
11.10.2026 10:22

Sources and licenses

OSV / GitHub Advisory Database - GHSA-f598-mfpv-gmfx - CC BY 4.0

Vulnerability history: sequelize

All published vulnerabilities of this package (npm package), newest first. Shows whether this is a one-off slip or a package that needs watching.

All (18) in the archive
Total entries
18
First → latest
10.2017 08.2026
Without a fix
0
Exploited in attacks
0

Severity breakdown

  • Critical 8
  • High 7
  • Medium 3

Disclosures per year

  1. 2017: 1
  2. 2018: 0
  3. 2019: 9
  4. 2020: 2
  5. 2021: 0
  6. 2022: 0
  7. 2023: 4
  8. 2024: 0
  9. 2025: 0
  10. 2026: 2
Severity:
  1. Critical · 9.8 CVE-2026-69240 < 6.37.4 6.37.4
  2. High · 7.5 CVE-2026-30951 >= 6.0.0-beta.1, < 6.37.8 6.37.8
  3. Sequelize - Default support for “raw attributes” when using parentheses this entry
    Critical · 10.0 CVE-2023-22578 < 6.29.0 6.29.0
  4. Critical · 9.9 CVE-2023-22579 < 6.28.1 6.28.1
  5. Critical · 10.0 CVE-2023-25813 < 6.19.1 6.19.1
  6. Critical · 9.8 CVE-2016-1000225 >= 3.4.0, < 3.23.6 3.23.6
  7. Critical · 9.8 CVE-2019-10749 < 3.35.1 3.35.1
  8. Critical · 9.8 CVE-2019-10748 < 3.35.1, >= 4.0.0, < 4.44.3, >= 5.0.0, < 5.8.11 3.35.1, 4.44.3, 5.8.11
  9. Critical · 9.8 CVE-2019-10752 < 4.44.3, >= 5.0.0, < 5.15.1 4.44.3, 5.15.1
  10. High ghsa-wfp9-vr4j-f49j < 4.12.0 4.12.0
  11. High · 7.5 CVE-2019-11069 >= 5.0.0, < 5.3.0 5.3.0
  12. High CVE-2016-10550 < 3.17.0 3.17.0
  13. High CVE-2016-10553 < 3.0.0 3.0.0
  14. High · 7.5 CVE-2016-10556 < 3.20.0 3.20.0
  15. High CVE-2015-1369 < 2.0.0-rc8 2.0.0-rc8

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.