ファイルの中身ではなく、ファイル名そのものが原因となり、Pythonアプリケーションでコマンド実行を許してしまう恐れがあります。最近修正された画像処理ライブラリPillowの脆弱性が原因です。
この脆弱性は「CVE-2026-112900」として追跡されています。PillowがEPS(Encapsulated PostScript)ファイルの名前を、画像処理のためにGhostscriptへ渡す際の処理に問題があります。2026年10月16日にリリースされたPillow 13.0.0では、この脆弱性に加え、TIFFとJPEGに関する2件のメモリ破損の問題も修正されました。
信頼できないEPSファイルを処理するアプリケーションは、攻撃者がGhostscriptに渡されるファイル名に影響を及ぼせる場合、影響を受ける可能性があります。攻撃が成功すれば、影響を受けたプロセスの権限でコマンドを実行される恐れがあります。ただし、悪用にはほかにも条件が必要です。
Pillowの脆弱性でコード実行が可能になる仕組み
Pillowのセキュリティアドバイザリによると、影響を受けるのはバージョン2.6.0から12.3.0です。問題があるのはPIL.EpsImagePlugin.Ghostscript()で、コマンドライン引数として解釈される文字を十分に処理しないまま、ファイル名をGhostscriptに渡しています。
ハイフンで始まるファイル名は、ファイルパスではなくGhostscriptのコマンドラインオプションとして解釈される場合があります。また、Ghostscriptは追加のオプションを指定できる@引数ファイルにも対応しています。該当するファイル名と、そこで参照される引数ファイルを攻撃者が制御できる場合、こうした挙動を悪用してコマンドを実行できる可能性があります。
KAIST CysecLabのセキュリティ研究者Chanu Kang氏は、Ghostscriptの既定の保護機能-dSAFERが有効な状態でも、コマンドを実行できることを実証しました。この攻撃には、Ghostscript、EPS処理、攻撃者によるファイル名への影響、参照される引数ファイルの制御がそろっている必要があります。
GitHub Advisory Databaseは、CVE-2026-112900にCVSS 4.0で9.2の「Critical」を割り当てています。一方、Pillowのメンテナーは深刻度を「Moderate」と評価しています。
最近のNGINXのセキュリティ脆弱性でも、管理者は影響を受けるソフトウェアのバージョンに加え、特定の設定を確認する必要がありました。
Pillow 13.0.0では、次の2件のメモリ破損の脆弱性にも対処しています。
- CVE-2026-112393: 特定の圧縮TIFFファイルをメモリ上のオブジェクトに保存する際に発生するTIFFのヒープバッファオーバーフロー。メモリ破損や情報漏えいを引き起こす可能性があります。
- CVE-2026-112403: 特定のlibjpeg構成で、細工されたロスレス画像を
draft()やthumbnail()で処理した場合に影響するJPEGデコードの脆弱性。クラッシュや、コード実行の可能性などのリスクがあります。
影響の確認と対策の優先事項
セキュリティチームは、アプリケーション、コンテナ、依存関係にまたがるPillowのインストール状況を洗い出し、信頼できないEPSファイルを処理しているワークロードを特定する必要があります。CVE-2026-112900の影響を受けるかどうかは、Ghostscriptが利用可能か、そしてファイル名がどう扱われるかで決まります。
同様に影響の有無に基づく考え方は、10月の脆弱性パッチの優先順位付けにも当てはまります。導入済みのコンポーネントや悪用可能性が、対応の判断を左右します。
組織は次の対策を講じるべきです。
- Pillowのアップグレード: バージョン13.0.0以降を導入し、影響を受けるコンテナを再ビルドします。
- Ghostscriptの監査: 攻撃者が制御できるファイル名をそのまま保持するEPS処理ワークロードを特定します。
- ファイル処理の制限: 不要なフォーマットを無効化し、外部ツールを呼び出す前にファイル名を正規化します。
- 処理サービスの分離: サンドボックスと最小権限のアカウントを使い、被害を最小限に抑えます。
- 関連ワークフローの確認: 圧縮TIFFのエンコードと、ロスレスJPEGの縮小処理の構成を確認します。
- 異常の調査: 予期しないGhostscriptのサブプロセス、不審なクラッシュ、疑わしいファイル処理の動きを調べます。
- インシデント対応計画のテスト: 封じ込め、証拠保全、復旧の手順を検証します。
最近のSiteGuardのコマンドインジェクションの悪用事例は、侵害が疑われる場合に、修復前にフォレンジック証拠を保全することの重要性を示しています。
Pillow 13.0.0のリリースノートには、これらの修正と、Python 3.10サポートの廃止が記載されています。10月26日時点で、GitLabの報告によると、DebianとSUSEの複数のディストリビューションに含まれる影響を受けるPillowパッケージには、まだ修正が提供されていません。Amazon Linuxのパッケージも更新待ちの状態です。組織は導入前に、ディストリビューション固有のアドバイザリと実行環境との互換性を確認してください。
影響を受ける環境にパッチが適用されるまでは、EPS処理を制限し、画像処理サービスを分離することで、悪用される可能性とその影響を抑えられます。
あわせて読みたい:対応の優先順位について詳しく知りたい方へ。Microsoftの9月のセキュリティ更新は、悪用が確認されたことで、脆弱性への対応順序がどのように変わり得るかを示しています。
翻訳元: https://www.esecurityplanet.com/news/news-pillow-cve-2026-112900-code-execution/