Loading HuntDB...

GHSA-9c2p-jw8p-f84v

GitHub Security Advisory

SQL Injection in sequelize

✓ GitHub Reviewed HIGH Has CVE

Advisory 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

npm sequelize
Affected versions: 0 (fixed in 3.20.0)

Related CVEs

Key Information

GHSA ID
GHSA-9c2p-jw8p-f84v
Published
February 18, 2019 11:54 PM
Last Modified
September 11, 2023 9:48 PM
CVSS Score
7.5 /10
Primary Ecosystem
npm
Primary Package
sequelize
GitHub Reviewed
✓ Yes

Dataset

Last updated: July 6, 2025 6:30 AM

Data from GitHub Advisory Database. This information is provided for research and educational purposes.