QID 983102
QID 983102: Nodejs (npm) Security Update for sequelize (GHSA-9c2p-jw8p-f84v)
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:
```
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.
Successful exploitation of this vulnerability may affect the confidentiality, integrity, and availability of the targeted user.
- GHSA-9c2p-jw8p-f84v -
github.com/advisories/GHSA-9c2p-jw8p-f84v
CVEs related to QID 983102
| Advisory ID | Software | Component | Link |
|---|---|---|---|
| GHSA-9c2p-jw8p-f84v | sequelize |
|