脆弱性対応ウォッチ重大・クリティカル脆弱性のクラウド別対応まとめ
最新更新履歴CriticalHigh回避策のみパッチありAWSGCPAzureLinux
Critical CVSS 9.1
CVE-2026-54058

Pillow の McIdas AREA 画像処理における境界外読み取り(プロセスメモリ漏えい)

情報取得日: 2026/07/14/最終確認: 2026/08/10・本ページは公開情報の非公式まとめです

CVE IDCVE-2026-54058
製品Python Pillow / Pillow 12.3.0 未満
CVSS9.1(Critical)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
種別 (CWE)CWE-125(境界外読み取り)
登録/公開日2026/07/14
出典https://nvd.nist.gov/vuln/detail/CVE-2026-54058

概要

Python の画像処理ライブラリ Pillow に、境界外読み取りの欠陥がある。 NVD の記述によれば、12.3.0 より前のバージョンで、**非圧縮の McIdas AREA 画像をファイル名から mmap raw codec 経路で読み込んだとき**、攻撃者が制御可能なヘッダの値によって行ストライド(1行あたりのバイト数)を本来の行幅より小さく設定できる。この状態で `Image.tobytes()` / `getpixel` / `convert` / `save` といった画素アクセスを行うと、マップされた領域の外を読み、**隣接するプロセスメモリを漏えいさせるか、クラッシュする**。12.3.0 で修正されている。 CVSS の評価は分かれている。NVD は CVSS 3.1 で 9.1(AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H)とし Critical としている。一方、採番元である GitHub は CVSS 4.0 で 8.3(HIGH)としており、こちらは攻撃前提条件(AT:P)を評価に含めている。当サイトは掲載基準に従い NVD 側の 9.1 を採る。 影響範囲が広くなり得るのは、Pillow が Python の画像処理でほぼ標準的に使われているライブラリだからである。Web アプリケーションの画像アップロード処理、サムネイル生成、機械学習の前処理パイプラインなど、**利用者から受け取った画像ファイルを開く箇所すべて**が経路になる。プロセスメモリの漏えいなので、同じプロセスが扱っていた他の利用者のデータ、セッション情報、環境変数由来の資格情報が読まれ得る。 ただし条件は限定的である。McIdas AREA は気象衛星データ向けの形式であり、一般的な JPEG/PNG の処理では通らない。かつ、**ファイル名を渡す形式(mmap raw codec 経路)**である必要がある。バイト列やファイルオブジェクトから開いている実装では、この経路に入らない。

クラウド/OS 別の対応状況

各ベンダー公式アドバイザリで確認できた事実に基づき整理しています。確認できていない項目は「情報確認中」と明記し、存在しないパッチ番号・バージョンは記載しません。

AWS / GCP / Azure は同じ対応区分です: パッチあり(アプリ更新)
Linux のみ異なります: 情報確認中
環境対応状況対応方法・備考
AWS (ECS/EC2) パッチあり(アプリ更新)
Lambda / ECS / EC2 上のアプリケーションで Pillow を 12.3.0 以上へ更新する。Lambda Layer に固めている場合は Layer 側も更新する
AWS のマネージド修正は無く、アプリケーションの依存更新で対応する。Lambda Layer やコンテナイメージに古い Pillow が焼き込まれたまま残りやすい点に注意する。
参照リンク
GCP パッチあり(アプリ更新)
Cloud Run / GKE / Cloud Functions 上のアプリケーションで Pillow を 12.3.0 以上へ更新する
GCP 固有のパッチは無く、依存更新で対応する。Artifact Registry の脆弱性スキャンで古い Pillow を含むイメージを洗い出せる。
参照リンク
Azure パッチあり(アプリ更新)
App Service / AKS / Functions 上のアプリケーションで Pillow を 12.3.0 以上へ更新する
Azure 固有のパッチは無く、依存更新で対応する。Defender for Cloud のコンテナスキャンで検出できる。
参照リンク
Linux 情報確認中
ディストリのパッケージ(python3-pillow 等)を使っている場合は、各ディストリのセキュリティ更新を適用する。pip で入れている場合は pip install -U "Pillow>=12.3.0"
ディストリ版とpip版が同居していることがある。python -c "import PIL; print(PIL.__version__)" で実際に読み込まれる版を確認する。
参照リンク

解決の方向性(パッチ/回避策/代替)

**Pillow を 12.3.0 以上へ更新するのが恒久対応である。** 依存関係の固定(requirements.txt / poetry.lock / Pipfile.lock)で古いバージョンに固定されていないかを確認する。コンテナイメージを使っている場合は、ベースイメージを更新しただけでは Pillow が上がらないことがあるので、実際に入っているバージョンを `pip show Pillow` で確認する。 更新までの間の緩和は、**入力形式を明示的に絞ること**である。Pillow は既定で対応形式を自動判定するため、利用者が McIdas AREA 形式のファイルを送れば、拡張子が何であっても中身で判定されて処理され得る。`Image.open()` の後に `img.format` を確認して許可した形式以外を弾く、あるいは `PIL.features` で不要なプラグインを無効化する、といった対応で経路を塞げる。 もう一つの緩和は、**ファイル名ではなくファイルオブジェクトやバイト列から開く**ことである。この脆弱性は mmap raw codec 経路に固有なので、`Image.open(io.BytesIO(data))` の形であれば該当経路に入らない。ただしこれは実装の変更であり、恒久対応ではない。更新が先である。 **漏えいの性質上、事後の判定は難しい。** 境界外読み取りはログに残らず、正常なレスポンスとして返る。露出していた期間に画像アップロードを受け付けていた場合は、同一プロセスが扱っていた資格情報・トークンの再発行を検討する。

よくある質問(CVE-2026-54058)

CVE-2026-54058(Pillow 12.3.0 未満)の影響は?

Critical(CVSS 9.1)に分類されるPython Pillow Pillow 12.3.0 未満の脆弱性です。Python の画像処理ライブラリ Pillow に、境界外読み取りの欠陥がある。 NVD の記述によれば、12.3.0 より前のバージョンで、**非圧縮の McIdas AREA 画像をファイル名から mmap raw codec 経路で読み込んだとき**、攻撃者が制御可能なヘッダの値によって行ストライド(1行あたりのバイト数)を本来の行幅より小さく設定できる。この状態で `Image.tobytes()` / `getpixel` / `convert` / `save` といった画素アクセスを行うと、マップされた領域の外を読み、**隣接するプロセスメモリを漏えいさせるか、クラッシュする**。12.3.0 で修正されている。 CVSS の評価は分かれている。NVD は CVSS 3.1 で 9.1(AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H)とし Critical としている。一方、採番元である GitHub は CVSS 4.0 で 8.3(HIGH)としており、こちらは攻撃前提条件(AT:P)を評価に含めている。当サイトは掲載基準に従い NVD 側の 9.1 を採る。 影響範囲が広くなり得るのは、Pillow が Python の画像処理でほぼ標準的に使われているライブラリだからである。Web アプリケーションの画像アップロード処理、サムネイル生成、機械学習の前処理パイプラインなど、**利用者から受け取った画像ファイルを開く箇所すべて**が経路になる。プロセスメモリの漏えいなので、同じプロセスが扱っていた他の利用者のデータ、セッション情報、環境変数由来の資格情報が読まれ得る。 ただし条件は限定的である。McIdas AREA は気象衛星データ向けの形式であり、一般的な JPEG/PNG の処理では通らない。かつ、**ファイル名を渡す形式(mmap raw codec 経路)**である必要がある。バイト列やファイルオブジェクトから開いている実装では、この経路に入らない。

CVE-2026-54058 の対応方法・回避策は?

**Pillow を 12.3.0 以上へ更新するのが恒久対応である。** 依存関係の固定(requirements.txt / poetry.lock / Pipfile.lock)で古いバージョンに固定されていないかを確認する。コンテナイメージを使っている場合は、ベースイメージを更新しただけでは Pillow が上がらないことがあるので、実際に入っているバージョンを `pip show Pillow` で確認する。 更新までの間の緩和は、**入力形式を明示的に絞ること**である。Pillow は既定で対応形式を自動判定するため、利用者が McIdas AREA 形式のファイルを送れば、拡張子が何であっても中身で判定されて処理され得る。`Image.open()` の後に `img.format` を確認して許可した形式以外を弾く、あるいは `PIL.features` で不要なプラグインを無効化する、といった対応で経路を塞げる。 もう一つの緩和は、**ファイル名ではなくファイルオブジェクトやバイト列から開く**ことである。この脆弱性は mmap raw codec 経路に固有なので、`Image.open(io.BytesIO(data))` の形であれば該当経路に入らない。ただしこれは実装の変更であり、恒久対応ではない。更新が先である。 **漏えいの性質上、事後の判定は難しい。** 境界外読み取りはログに残らず、正常なレスポンスとして返る。露出していた期間に画像アップロードを受け付けていた場合は、同一プロセスが扱っていた資格情報・トークンの再発行を検討する。

自分の環境が CVE-2026-54058 の影響を受けるか確認するには?

Python Pillow Pillow 12.3.0 未満 を利用している場合、稼働バージョンが影響範囲に含まれるかを一次情報(https://nvd.nist.gov/vuln/detail/CVE-2026-54058)で確認してください。AWS・GCP・Azure・Linux それぞれの対応状況は本ページの「クラウド/OS 別の対応状況」表にまとめています。確認できていない項目は「情報確認中」と明記しており、存在しないパッチ番号・バージョンは記載していません。

参考情報(出典)

本ページの記載は下記の一次情報に基づく非公式まとめです。数値・対応状況は各出典元で最終確認してください(最終確認: 2026/08/10)。

NVD(CVE 基本情報・CVSS スコアの出典)
免責: 本ページは CISA KEV・NVD・各ベンダー公式アドバイザリ等の公開情報をもとにした非公式まとめです。修正バージョンや対応可否は変更される場合があります。実際の対応は必ず 出典元および各ベンダー公式情報・自環境で確認してください。

« 一覧に戻る