Asayomu Tech
注目★★★★★GitHub Advisory

CodeIgniter Query Builder に SQL インジェクション、deleteBatch() が WHERE 条件で脆弱

30秒で把握

  • 1CodeIgniter Query Builder の deleteBatch() に SQL インジェクション脆弱性・where() のエスケープフラグが無視される
  • 2ユーザー入力を WHERE 条件に使うと SQL として解釈され、通常の delete() は影響なし
  • 3v4.7.4 以上にアップグレード、または where() の代わりに delete() + バインド変数を使用して対応

要約

CodeIgniter の Query Builder で `deleteBatch()` メソッドが `where()` 条件と組み合わせた場合に SQL インジェクション脆弱性が存在する。`where()` に渡された値のエスケープフラグが無視され、ユーザー入力がそのまま SQL として解釈される。通常の `delete()` は正常にエスケープされるため、`deleteBatch()` 専用の問題である。v4.7.4 以上へのアップグレードで対応できる。アップグレードできない場合は、ユーザー入力を `where()` に渡さない、または通常の `delete()` を使用することで回避可能である。

あなたへの影響

CodeIgniter で deleteBatch() を使用する際、where() に外部入力を直接渡している場合は今すぐコード確認と修正が必須。

推奨:v4.7.4 以上へのアップグレード、もしくは where() の代わりに delete() + バインド変数を使う設計への変更を検討すべき。

詳細を読む → 元記事へ※ 本文は元記事をご確認ください (asayomu は要約のみ提供)

関連する記事

※ 外部記事の権利は原著作者に帰属します。著作権削除要請は copyright@asayomu.jp までご連絡ください(受領確認 24h・実処理 72h 以内)。