Loading...
Skip to main content

CVE-2023-22578 — Vulnerability in sequelize — CVE Details

CRITICAL

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

Published February 24, 2023Updated November 8, 2023Source: osv

Summary

### 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`](https://github.com/sequelize/sequelize/pull/15374) and [`sequelize@6.29.0`](https://github.com/sequelize/sequelize/pull/15710). 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

Advisory Timeline

  • First published February 24, 2023 (1326 days ago).
  • Last revised November 8, 2023 — 256 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

npm
Update sequelize to 6.29.0 or later
npm install sequelize@6.29.0
npm
Update @sequelize/core to 7.0.0-alpha.20 or later
npm install @sequelize/core@7.0.0-alpha.20

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (2)

Affects 1 ecosystem: npm (2).

PackageEcosystemAffectedFixed In
sequelize
npm
All versions6.29.0
@sequelize/core
npm
All versions7.0.0-alpha.20

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 10.0 score means for each attack dimension.

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

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

Frequently Asked Questions

What is CVE-2023-22578?
Sequelize - Default support for “raw attributes” when using parentheses This vulnerability has been assigned a severity rating of CRITICAL (CVSS score: 10.0/10).
How do I check if my project is affected by CVE-2023-22578?
CVE-2023-22578 affects sequelize and @sequelize/core. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2023-22578 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
10.0

Exploitation is straightforward and causes maximum impact. Patch immediately.

Also Known As

GHSA-f598-mfpv-gmfx

Related CVEs

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies