注目★★★★★GitHub Advisory
CodeIgniter UploadedFile::move() にパストラバーサル脆弱性、v4.7.4 で修正
30秒で把握
- 1CodeIgniter v4.7.4 未満で UploadedFile::move() が第 2 引数なしの場合にファイル名を未検証で使用
- 2パストラバーサル攻撃で Upload ディレクトリ外に PHP シェルなどを書き込み可能に
- 3v4.7.4 へのアップグレード または sanitize_filename() による事前検証で対策を
要約
CodeIgniter の UploadedFile::move() メソッドで、第 2 引数を指定しない場合にクライアント提供のファイル名が無検証で使用され、パストラバーサル攻撃が可能な脆弱性が存在した。攻撃者は `../../public/shell.php` などのパストを含むファイル名を供給し、意図した Upload ディレクトリ外にコンテンツを書き込める。v4.7.4 以降でデフォルト動作が修正される。
あなたへの影響
CodeIgniter を使う Web アプリケーションは v4.7.4 への update を確認し、アップロード機能で第 2 引数を省略している箇所を調査すること。
推奨:既に明示的にクライアント提供ファイル名を渡している場合も、アップグレード後に sanitize_filename() 等の検証が適切に機能しているか検証が必要。