注目★★★★★GitHub Advisory
Sequelize の Oracle DB で SQL インジェクション、TO_DATE/TO_TIMESTAMP で回避可能
30秒で把握
- 1Sequelize v6.37.3・Oracle 方言で TO_DATE/TO_TIMESTAMP 文字列がエスケープ漏れ
- 2攻撃者が WHERE 句に任意 SQL 式を注入・データ盗難・改ざん可能
- 3ユーザー入力を ORM に直結させる実装を検査・入力検証強化が急務
要約
Sequelize v6.37.3 で Oracle 方言使用時、`TO_DATE` または `TO_TIMESTAMP` で始まる文字列入力が適切にエスケープされず SQL インジェクションが成立する。クエリパラメータが検証なしで渡される場合、攻撃者は任意の SQL 式を注入可能だ。Oracle 方言以外は影響を受けない。
あなたへの影響
Sequelize で Oracle 方言を使う場合、v6.37.3 以上へのアップデート前に入力検証の強化が必須。
推奨:`req.query` などのユーザー入力を ORM パラメータに直接渡す実装がある場合は即座に検査し、本パッチ公開まで Prepared Statement レベルの入力サニタイズを追加することを推奨。