概要
Perl の画像処理ライブラリ GD(バージョン 2.86 未満)に OS コマンドインジェクションおよびファイル上書きの脆弱性があります。GD ライブラリ内の _make_filehandle 関数は Perl の 2引数 open() を使ってファイルを開きますが、ファイル名の先頭または末尾にパイプ文字(| cmd、cmd |)が含まれる場合、そのコマンドとして実行されてしまいます。またリダイレクト文字(> path、>> path)で始まるパスはファイルへの書き込み操作として解釈されます。
new、newFromPng、newFromJpeg など、ファイル名を引数に取るすべてのコンストラクタが影響を受けます(インメモリ版の *Data バリアントは影響なし)。外部から受け取った入力をファイル名としてこれらのコンストラクタに渡しているアプリケーションは、プロセスの実行ユーザー権限で任意コマンドを実行されるリスクがあります。
CVSSベクトル
| 項目 | 値 |
|---|---|
| スコア | 9.8 (CRITICAL) |
| Attack Vector | Network |
| Attack Complexity | Low |
| Privileges Required | None |
| User Interaction | None |
| Scope | Unchanged |
| Confidentiality | High |
| Integrity | High |
| Availability | High |
影響を受けるソフトウェア
| 製品 | ベンダー | バージョン |
|---|---|---|
| GD for Perl | lstein (CPAN) | < 2.86 |
修正バージョンと回避策
- 修正バージョン: GD 2.86 以降
- 回避策: 外部入力をファイル名として GD コンストラクタに渡す前に、パイプ文字(
|)やリダイレクト文字(>)が含まれていないか検証する
関連リンク
データソース: NVD (NIST), OSV (Google), GitHub Advisory Database, JVN iPedia (IPA/JPCERT/CC) AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
