GHSA-9c2p-jw8p-f84v

    Dashboard / Vulnerabilities / GHSA-9c2p-jw8p-f84v

    GHSA-9c2p-jw8p-f84v

    Published: 18 Feb 2019Last Modified: 8 Nov 2023

    Summary: SQL Injection in sequelize

    Details: Affected versions of `sequelize` cast arrays to strings and fail to properly escape the resulting SQL statement, resulting in a SQL injection vulnerability. ## Proof of Concept In Postgres, SQLite, and Microsoft SQL Server there is an issue where arrays are treated as strings and improperly escaped. Example Query: ``` database.query('SELECT * FROM TestTable WHERE Name IN (:names)', { replacements: { names: directCopyOfUserInput } }); ``` If the user inputs the value of `:names` as: ``` ["test", "'); DELETE TestTable WHERE Id = 1 --')"] ``` The resulting SQL statement will be: ```sql SELECT Id FROM Table WHERE Name IN ('test', '\'); DELETE TestTable WHERE Id = 1 --') ``` As the backslash has no special meaning in PostgreSQL, MSSQL, or SQLite, the statement will delete the record in TestTable with an Id of 1. ## Recommendation Update to version 3.20.0 or later.

    Affected packages

    Package

    Name: sequelize

    Purl: pkg:npm/sequelize

    Affected ranges

    Type: SEMVER

    Events:

    Introduced- 0
    Fixed -3.20.0

    Affected versions

    Common Vulnerability Scoring System

    Attack Vector
    Network
    Adjacent
    Local
    Physical
    Privileges Required
    None
    Low
    High
    User Interaction
    None
    Required
    Scope
    Unchanged
    Changed
    Confidentiality
    None
    Low
    High
    Integrity
    None
    Low
    High
    Availability
    None
    Low
    High
    GHSA-9c2p-jw8p-f84v | CVE-DB