Pillow是Python生态中应用最广泛的图像处理库,攻击者可通过构造传入的待打开文件名,诱使运行该库的服务器执行操作系统命令。
编号为CVE-2026-112900的漏洞存在于Pillow的EPS图像处理逻辑中。Pillow打开EPS文件时,会直接将文件名传给独立程序Ghostscript完成像素格式转换,全程未对文件名做合法性校验。
Ghostscript会将攻击者构造的特殊文件名识别为执行指令而非普通文件路径,进而指向第二个携带恶意命令的文件执行攻击。Pillow维护方已在10月16日发布的13.0.0版本中修复该漏洞。
Pillow的应用场景覆盖Python图像处理的几乎所有环节:网页上传表单、头像与缩略图生成工具、文档与PDF处理流水线,多数机器学习项目也会引入该依赖。披露本次漏洞的安全公司OX Security估算,Pillow的月下载量约为4.36亿次。
13.0.0是一次大型安全更新,共修复从低危到严重四个等级的多个漏洞,其中两个被维护方评为严重级别。目前暂无任何漏洞被发现在野利用。
Part01
EPS处理逻辑存在缺陷
公告指出:"漏洞由文件名触发,与PostScript文档内的任何内容无关"。这意味着攻击者只要给完全无害的EPS文件设置恶意文件名,就能触发漏洞造成危害。现实中最易受攻击的目标,是那些直接保留用户输入文件名、或基于用户输入生成存储文件名的上传接口。
该漏洞只有在主机安装了gs程序时才会触发——gs是Pillow打开EPS文件的必需依赖。漏洞影响范围覆盖Pillow 2.6.0到12.3.0的所有版本。
Pillow维护方认为,攻击者需要完全控制文件名才能利用漏洞,因此将其评为中危。但GitHub分配的CVE记录给该漏洞打出9.2分(满分10分),评级为严重,两者的判定前提一致。
Part02
版本修复多个高危漏洞
本次更新修复的漏洞中有两个属于维护方划定的最高"严重"等级。其中一个是独立的内存漏洞,发布说明将其描述为模式切换后残留的图像数据被重复调用。另一个严重等级修复覆盖Pillow JPEG解码逻辑中的两个溢出漏洞。
其中一个影响FlashPix(FPX)格式的JPEG漏洞,只要主机安装了可选依赖olefile包,攻击者构造恶意文件后,仅需一次Image.open()调用就能执行任意命令。Pillow通过文件内容而非扩展名识别这类格式,因此服务器打开不可信的上传文件时,无需用户任何操作就会被攻击。
另一个编号为CVE-2026-112403的漏洞,会在程序为构造的无损JPEG生成缩略图时触发内存缓冲区溢出。公告提到:"该漏洞由Anthropic使用Claude研究开源软件安全性时发现,后由Ada Logics人工验证"。这是Anthropic开源安全研究项目的成果之一,该项目目前已在各类开源库中发现数百个漏洞。该漏洞仅会导致程序崩溃,暂无法实现代码执行。
第三个漏洞编号为CVE-2026-112393,自2013年起就存在于Pillow中。当程序将压缩TIFF图像保存到内存而非磁盘文件时,会触发内存缓冲区溢出,这种处理模式常见于对上传文件重新编码后直接返回的服务。
漏洞报告者利用该漏洞仅能造成进程崩溃,只有结合另一个独立的内存地址泄露漏洞,才能进一步实现代码执行。将TIFF文件直接保存到磁盘的操作不受该漏洞影响。
GitHub为上述EPS、TIFF、JPEG缩略图漏洞分配的CVE记录均给出9.2分(满分10分)的严重评级。不过每个漏洞的利用都存在评分未体现的前置条件,Pillow维护方对这批漏洞的评级从中危到严重不等。CVE记录显示,CISA分析师确认目前EPS漏洞暂无已知在野利用,TIFF漏洞已有公开PoC。
Part03
用户需尽快升级至最新版
所有用户应尽快升级至Pillow 13.0.0版本,该版本修复了上述所有漏洞,同时需要重新构建所有内置旧版本Pillow的容器、wheel包或基础镜像。需要注意的是,Pillow 13.0.0不再支持Python 3.10,仍在使用该版本的环境需同步升级至Python 3.11或更高版本。
pip install -U "Pillow>=13.0.0"
如果暂时无法完成升级,可按照Pillow安全指南和相关公告给出的措施,逐一封堵各漏洞的攻击路径:
EPS / Ghostscript路径:处理不可信上传文件的主机不要安装gs程序,处理EPS文件时,绝不要将攻击者可控的文件名传入Image.open()。
JPEG缩略图路径:不要对不可信的JPEG文件调用draft()和thumbnail()方法,或先调用load()方法,或传入参数reducing_gap=None。
TIFF路径:如果图像来自用户上传,将TIFF文件保存到io.BytesIO等内存缓冲区的操作要视为敏感路径,做好防护。
参考来源:
Critical Flaw in Python's Popular Pillow Image Library Allows Code Execution via a Crafted Image
https://thehackernews.com/2026/10/critical-flaw-in-pythons-popular.html