SQL Injection in sequelize
High severity
GitHub Reviewed
Published
Feb 18, 2019
to the GitHub Advisory Database
•
Updated Sep 11, 2023
Description
Published to the GitHub Advisory Database
Feb 18, 2019
Reviewed
Jun 16, 2020
Last updated
Sep 11, 2023
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:
If the user inputs the value of
:names
as:The resulting SQL statement will be:
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.
References