目次(5)

画像変換サーバー imgproxy の ICO ローダー(vips/icoload.c)に、10/30(UTC)に公開された勧告が 2 件あります。GHSA-mmq5-xm89-9pfg は、ICO のエントリが宣言するデータの大きさを検証せずにそのまま領域確保に使うため、23 バイトの細工ファイル 1 つで約 4GB の確保が起きます(CWE-400)。GHSA-494m-4556-wf5p は、宣言された大きさが小さいと BMP ヘッダーの復元が確保領域の外を読み書きし、ワーカーが異常終了します(CWE-125・CWE-787)。どちらも GitHub の評価は High(CVSS v3.1 7.5、可用性のみの影響、AV:N/AC:L/PR:N/UI:N)で、CVE は未割り当てです。4.0.17 に更新すれば両方が直ります。以前に取り上げた整数あふれ(GHSA-hff9-5pqw-6w9f、4.0.16 で修正)とは別の勧告です。
何が起きるか
| 勧告 | 内容 | 影響を受ける版 | 修正版 |
|---|
| GHSA-mmq5-xm89-9pfg | ICO のエントリが宣言する data_size(32 ビット値)を検証せずに VIPS_MALLOC へ渡す。勧告の例では約 4GB を確保しようとする | 3.3.0 以上 4.0.15 以下 | 4.0.16 |
| GHSA-494m-4556-wf5p | data_size が小さい(例: 1)と、BMP ヘッダー復元時の読み書きが確保領域(data_size + 14 バイト)の外に及び、直後のヒープ領域の管理情報を壊す。その後の解放で異常終了する | 3.3.0 以上 4.0.17 未満 | 4.0.17 |
- 勧告によると、どちらも認証なしで、画像を渡せる相手が引き起こせます。勧告が示す影響は、前者がメモリ枯渇による停止(メモリの小さい環境ではワーカーが落ち、大きい環境では確保に失敗して HTTP 500 になりつつ、要求ごとに一時的に約 4GB を使う)、後者がワーカーの異常終了(1 リクエスト 1 ワーカー)です。
- 勧告の試験用ファイルはどちらも 23 バイトです。勧告の確認は、ローカルファイルの取得を有効にした 4.0.15 で行われています。
- 外部から取得した画像(利用者が指定した URL の画像など)を処理する構成は、特に注意が必要です(本記事の推定)。
- 悪用の報告は確認できていません。当サイトでは再現を行っていません。
評価・照合状況
| 項目 | 内容 |
|---|
| CVSS | GitHub の評価で v3.1 7.5(CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)、深刻度は High。2 件とも同じ。NVD の値ではない |
| CVE・NVD | 未割り当てのため、NVD の評価は存在しない |
| EPSS | CVE がないため算出なし |
| KEV | CVE がないため照合対象外。CISA の KEV(2026.10.30 版・1766 件)に imgproxy の掲載はなし |
| 弱点 | CWE-400(GHSA-mmq5)、CWE-125・CWE-787(GHSA-494m) |
修正の中身
- 4.0.16(リリース 9/28 UTC、ノートは「ICO ローダーの複数の脆弱性を修正」): 修正コミット a821b6a は、1 エントリの大きさに上限(10 MB)を設けて超える値を拒否します。このコミットが v4.0.16 に含まれることは、比較(v4.0.16 より前)で確認しました。
- 4.0.17(リリース 9/30 UTC、ノートは「ICO ローダーの境界外読み取りを修正」): 修正コミット 39fd9e8(9/29 UTC)は、BMP ヘッダーに足りる大きさかの確認を、誤っていた変数(
full_data_size)から宣言されたデータの大きさ(data_size)に直し、不正な ICO の試験ファイルを加えます。このコミットが v4.0.17 に含まれることは、比較で確認しました。最新のリリースは v4.0.20(10/26 UTC)です。
- 勧告の公開(10/30 UTC)は修正リリースの約 1 か月後です。
対応
- imgproxy を 4.0.17 以上(できれば最新)に更新します。コンテナで使う場合はイメージのタグも確認します。
- すぐ更新できない場合は、画像の取得元を許可リストや署名付き URL で絞り、信頼できない画像を受けない構成にします(本記事の推定。勧告に回避策の記載はありません)。
- 更新前に、ワーカーの異常終了やメモリ不足による停止が起きていないかをログで見直します(本記事の推定)。
未確認の点
- 悪用の報告は確認できていません。CVE がなく、NVD の評価・EPSS は存在しません。
- 当サイトでは再現していません。記載は GitHub の勧告、修正コミット、リリースノートに基づきます。
- GHSA-494m の勧告は、実証された影響を「サービス拒否」としています。メモリ破壊の状況により、より重い影響に至るかは確認できていません。
- 勧告が示す対象は 3.3.0 以降です。それより前の版の扱いは確認していません。
- GitHub の評価(v3.1 7.5)以外の評価は、当サイトでは確認できていません。
この記事の Markdown 版(LLM向け) ↗