新聞專題與活動網絡安全

Pillow 爆三個 9.2 分漏洞 一張圖可遙距執行代碼

Python 生態系最常用的圖像處理庫 Pillow(每月下載量估計達 4.36 億次)被披露三個 CVSS 9.2 分的嚴重漏洞,攻擊者只需令伺服器處理一張精心製作的 EPS、TIFF 或 JPEG 圖片,就可能觸發遠程代碼執行或記憶體破壞。三個漏洞已在 Pillow 13.0.0 全數修補,開發團隊呼籲立即升級。

重點一覽

  • 三個漏洞均為 CVSS 9.2 分(Critical),10 月 19 日披露
  • 攻擊媒介:一張精心製作的 EPS/TIFF/JPEG 圖片
  • CVE-2026-112900:EPS 配 Ghostscript 參數注入,可遠程執行代碼
  • CVE-2026-112393:TIFF 寫入記憶體緩衝區溢位
  • CVE-2026-112403:JPEG 縮圖處理緩衝區溢位
  • 修補版本:Pillow 13.0.0,官方稱是唯一完整解法

影響有多廣?

Pillow 是 Python 圖像處理的事實標準,由網站框架(Django、Flask)的圖片上傳處理、縮圖和頭像生成流程、文件及 PDF 工具,到大部分機器學習與電腦視覺項目,都會直接或間接用到它。正因為它經常處理來自用戶上傳的圖片,這次三個漏洞的觸發條件都只是「處理一張圖」,等於任何有圖片上傳功能的服務都可能成為攻擊入口。

三個漏洞逐個講

CVE-2026-112900(EPS+Ghostscript,可遠程執行代碼):Pillow 處理 EPS 向量圖時會呼叫外部程式 Ghostscript,漏洞在於它把用戶控制的檔案名稱直接傳給 Ghostscript,沒有轉成絕對路徑。攻擊者利用以「-」開頭的檔案名稱,配合 Ghostscript 的 @argfile 語法,可以注入選項執行任意命令,連預設的 -dSAFER 安全模式也擋不住。此漏洞只在裝有 Ghostscript 的主機上成立。

CVE-2026-112393(TIFF 寫入溢位):當壓縮 TIFF 被存入記憶體物件(例如 io.BytesIO)而非真實檔案時,Pillow 的緩衝區擴容計算用錯了基準,輸出大過 64KB 時可能寫越界,造成記憶體破壞,還可能外洩殘留的記憶體內容;存到真實檔案路徑則不受影響。

CVE-2026-112403(JPEG 縮圖溢位):攻擊者製作特殊的 8-bit 無損(SOF3)JPEG,當應用程式對它呼叫 draft() 或 thumbnail() 縮圖時,解碼器寫入的資料會超出緩衝區,導致程式崩潰甚至執行任意代碼。

即刻要做的事

官方建議只有一個:立即升級 Pillow 至 13.0.0 或之後版本,並重建任何內置了 Pillow 的 wheel、容器或基礎映像,這是三個漏洞的唯一完整解法。未能即時升級的環境可以先行減低風險:限制只接受實際需要的圖片格式(Image.open() 的 formats 參數可以擋掉 EPS)、絕不把用戶控制的檔案名稱直接交給 Image.open() 開啟 EPS、以及不要在處理不受信任圖片上傳的主機上安裝 Ghostscript。

資料來源:python-pillow 官方|OX Security 披露分析

(開版為AI生成配圖,只供參考會意)

Eight (TechApple 編輯長)

熱心科技,會編程,尤其喜愛最新AI科技發展的技術宅,矢志為大家送上最新最好的科技內容。