脆弱性・CVE速報深刻度: 高

imgproxy の ICO 読み込みで追加の 2 件、細工した小さな画像でワーカー停止や約 4GB のメモリ確保(GHSA-494m-4556-wf5p・GHSA-mmq5-xm89-9pfg): 4.0.17 で両方修正

目次(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-9pfgICO のエントリが宣言する data_size(32 ビット値)を検証せずに VIPS_MALLOC へ渡す。勧告の例では約 4GB を確保しようとする3.3.0 以上 4.0.15 以下4.0.16
GHSA-494m-4556-wf5pdata_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 の画像など)を処理する構成は、特に注意が必要です(本記事の推定)。
  • 悪用の報告は確認できていません。当サイトでは再現を行っていません。

評価・照合状況

項目内容
CVSSGitHub の評価で 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 の評価は存在しない
EPSSCVE がないため算出なし
KEVCVE がないため照合対象外。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 か月後です。

対応

  1. imgproxy を 4.0.17 以上(できれば最新)に更新します。コンテナで使う場合はイメージのタグも確認します。
  2. すぐ更新できない場合は、画像の取得元を許可リストや署名付き URL で絞り、信頼できない画像を受けない構成にします(本記事の推定。勧告に回避策の記載はありません)。
  3. 更新前に、ワーカーの異常終了やメモリ不足による停止が起きていないかをログで見直します(本記事の推定)。

未確認の点

  • 悪用の報告は確認できていません。CVE がなく、NVD の評価・EPSS は存在しません。
  • 当サイトでは再現していません。記載は GitHub の勧告、修正コミット、リリースノートに基づきます。
  • GHSA-494m の勧告は、実証された影響を「サービス拒否」としています。メモリ破壊の状況により、より重い影響に至るかは確認できていません。
  • 勧告が示す対象は 3.3.0 以降です。それより前の版の扱いは確認していません。
  • GitHub の評価(v3.1 7.5)以外の評価は、当サイトでは確認できていません。

この記事について

出典

この記事を共有