GitHub Advisory Databaseに、Pillowの画像処理で任意コードの実行や情報漏えいにつながる脆弱性2件が掲載されています。外部画像を開く処理と、画像をArrowに出力する処理で、それぞれ確認する条件が異なります。公表日は資料から確認できません。
外部画像の読み込みでコード実行の恐れ
CVE-2026-112398は、FlashPixのJPEGタイルを読み込む処理の欠陥です。画像の色成分数と確保したメモリ領域が一致せず、ヒープと呼ぶメモリ領域の範囲外に書き込みます。勧告によると、細工したファイルを読み込むことで、攻撃者が任意のコードを実行できます。
影響対象は、任意で追加する依存ソフトウェアのolefileを導入し、外部ファイルを開くアプリです。アップロード画像を自動処理する構成では、利用者が追加操作をしなくても悪用できるとされています。
注意したいのは、FPX形式の判定方法です。拡張子ではなく、ファイル内のOLE2識別情報で判定されます。利用状況を調べる際は、拡張子の一覧だけで対象外と判断せず、外部ファイルが実際にどの処理へ渡るかを確認する必要があります。
報告者はPillow 12.2.0でコマンド実行を実証したとしています。ただし、公開実証は再現性を確保するため、メモリ配置をランダム化するASLRを無効にしたDocker環境を使っています。実証環境の条件と、自社環境での実行可能性は分けて扱う必要があります。勧告によると、攻撃コードは画像処理プロセスの権限で実行されます。
Arrow出力では他人の画像の画素が混入する可能性
CVE-2026-114501は、画像をArrowに出力する際の情報漏えいの欠陥です。発生条件は、PILLOW_ALIGNMENTの値が1を超えており、画像をArrowに出力することです。
勧告によると、出力する画素データに、初期化されていないヒープ領域が混入します。そこに解放済みの画像の画素が含まれる可能性があります。複数利用者の画像を扱うサービスでは、別の利用者の画素が出力データに漏れる恐れがあります。
報告者が欠陥を確認した版は、Pillow 11.2.1と12.3.0です。両件とも、資料には影響する版の全範囲や修正版の記載がありません。実証・確認された版の一覧を、そのまま影響範囲の全体と見なすことはできません。
日本での提供は発表には書かれていません。また、日本向けに異なる影響条件があるかも、資料からは確認できません。
影響する会社・しない会社
- 影響する: Pillowとolefileを導入し、外部ファイルを開くアプリを運用する会社です。アップロード画像を自動処理する場合は、その処理経路を優先して確認します。
- 影響する: PILLOW_ALIGNMENTが1超で、画像をArrowに出力する会社です。複数利用者の画像を扱う場合は、利用者間の画素漏えいが問題になります。
- 影響しない: olefileを導入していない、または外部ファイルを開かないアプリは、今回示されたFPXの攻撃経路の条件に当たりません。Arrow側の条件は別途確認が必要です。
- 影響しない: Arrow出力を行わない、またはPILLOW_ALIGNMENTが1超ではない構成は、今回示されたArrow側の発生条件に当たりません。Pillow全体に欠陥がないという意味ではありません。
情シスが今日やること
以下は社内での確認手順の提案です。資料には、対応期限や特定の管理画面の案内はありません。
- 今日の棚卸しとして、開発・運用担当にPillowの利用箇所、導入版、olefileの有無を確認してもらいます。委託アプリも、保守担当に同じ項目を照会します。確認された版以外を、版番号だけで対象外にしないよう伝えます。
- 外部画像を受け取るアプリについて、担当者にアップロードから画像読み込みまでの処理を確認してもらいます。拡張子の制限だけで判断せず、olefileを含む実行環境で外部ファイルを開くかを記録します。
- Arrow出力を使う処理の設定で、PILLOW_ALIGNMENTの値を確認します。出力の有無と設定値を組み合わせ、複数利用者の画像を同じ処理で扱うかも整理します。
- 条件に当たる処理は、開発・運用責任者へ今日中に共有する対象にします。画像処理プロセスの実行権限と、該当処理を一時的に制限できるかを相談します。これは修正の代わりではなく、対応を決めるための確認です。
- 更新方針を決める前に、2件それぞれの勧告で修正版と影響範囲の追記を確認します。担当者と次の確認日を決め、版・設定・処理経路の確認結果をまとめて残します。