製品・ソフトウェアに関する情報
sequelize における SQL インジェクションの脆弱性
Title sequelize における SQL インジェクションの脆弱性
Summary

sequelize には、SQL インジェクションの脆弱性が存在します。

Possible impacts サービス運用妨害 (DoS) 状態にされる可能性があります。
Solution

ベンダより正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。

Publication Date March 29, 2016, midnight
Registration Date July 27, 2018, 5:55 p.m.
Last Update July 27, 2018, 5:55 p.m.
CVSS3.0 : 重要
Score 7.5
Vector CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS2.0 : 警告
Score 5
Vector AV:N/AC:L/Au:N/C:N/I:N/A:P
Affected System
sequelizejs
sequelize 3.19.3 およびそれ以前
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
Change Log
No Changed Details Date of change
1 [2018年07月27日]
  掲載
July 27, 2018, 5:55 p.m.

NVD Vulnerability Information
CVE-2016-10556
Summary

sequelize is an Object-relational mapping, or a middleman to convert things from Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server into usable data for NodeJS In Postgres, SQLite, and Microsoft SQL Server there is an issue where arrays are treated as strings and improperly escaped. This causes potential SQL injection in sequelize 3.19.3 and earlier, where a malicious user could put `["test", "'); DELETE TestTable WHERE Id = 1 --')"]` inside of ``` database.query('SELECT * FROM TestTable WHERE Name IN (:names)', { replacements: { names: directCopyOfUserInput } }); ``` and cause the SQL statement to become `SELECT Id FROM Table WHERE Name IN ('test', '\'); DELETE TestTable WHERE Id = 1 --')`. In Postgres, MSSQL, and SQLite, the backslash has no special meaning. This causes the the statement to delete whichever Id has a value of 1 in the TestTable table.

Publication Date May 30, 2018, 5:29 a.m.
Registration Date Jan. 26, 2021, 2:05 p.m.
Last Update Nov. 21, 2024, 11:44 a.m.
Affected software configurations
Configuration1 or higher or less more than less than
cpe:2.3:a:sequelizejs:sequelize:*:*:*:*:*:node.js:*:* 3.19.3
Related information, measures and tools
Common Vulnerabilities List