sequelize における SQL インジェクションの脆弱性
タイトル sequelize における SQL インジェクションの脆弱性
概要

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

想定される影響 サービス運用妨害 (DoS) 状態にされる可能性があります。
対策

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

公表日 2016年3月29日0:00
登録日 2018年7月27日17:55
最終更新日 2018年7月27日17:55
CVSS3.0 : 重要
スコア 7.5
ベクター CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS2.0 : 警告
スコア 5
ベクター AV:N/AC:L/Au:N/C:N/I:N/A:P
影響を受けるシステム
sequelizejs
sequelize 3.19.3 およびそれ以前
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
変更履歴
No 変更内容 変更日
1 [2018年07月27日]
  掲載
2018年7月27日17:55

NVD脆弱性情報
CVE-2016-10556
概要

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.

公表日 2018年5月30日5:29
登録日 2021年1月26日14:05
最終更新日 2024年11月21日11:44
影響を受けるソフトウェアの構成
構成1 以上 以下 より上 未満
cpe:2.3:a:sequelizejs:sequelize:*:*:*:*:*:node.js:*:* 3.19.3
関連情報、対策とツール
共通脆弱性一覧