IPBUF安全漏洞报告
English
CVE-2026-42308 CVSS 5.5 中危

CVE-2026-42308 Pillow整数溢出漏洞

披露日期: 2026-05-09

漏洞信息

漏洞编号
CVE-2026-42308
漏洞类型
整数溢出
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Pillow

相关标签

整数溢出拒绝服务PillowPython本地漏洞

漏洞概述

Pillow是Python图像处理库。在12.2.0版本之前,当处理特定字体文件时,如果字形前进量过大,会导致跟踪当前位置时发生整数溢出。攻击者可利用此漏洞导致应用程序崩溃或拒绝服务。该问题已在12.2.0版本中修复。

技术细节

该漏洞源于Pillow库在处理字体渲染时的整数溢出问题。具体来说,当处理字体文件时,库会跟踪当前光标位置以正确绘制字符。如果精心构造的字体文件指定了异常大的字形前进量(advance amount),用于计算位置的整型变量可能会发生溢出。由于攻击向量为本地(AV:L)且需要低权限(PR:L),攻击者需在本地系统执行恶意代码。溢出可能导致内存布局破坏或逻辑错误,进而引发应用程序崩溃(可用性影响 A:H),实现拒绝服务攻击。

攻击链分析

STEP 1
步骤1
攻击者构造一个特制的字体文件,其中包含具有极大前进量的字形。
STEP 2
步骤2
攻击者将此恶意字体文件上传至目标系统,或诱导本地用户下载该文件。
STEP 3
步骤3
目标系统上的应用程序(使用Pillow < 12.2.0)尝试加载并渲染该字体文件。
STEP 4
步骤4
Pillow在计算字形位置时发生整数溢出,导致内存错误或逻辑异常。
STEP 5
步骤5
应用程序崩溃或无响应,造成拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import sys from PIL import ImageFont # Proof of Concept for CVE-2026-42308 # This script attempts to load a crafted font file # that contains an excessively large glyph advance. # This triggers the integer overflow in Pillow < 12.2.0. # Replace 'crafted_font.ttf' with the actual malicious file path font_path = 'crafted_font.ttf' try: # Load the font font = ImageFont.truetype(font_path, 20) print("Font loaded. Attempting to trigger overflow during processing...") # Processing text with the font triggers the position tracking logic text = "VULNERABLE" # Depending on the Pillow version, this might cause a crash or hang # due to the integer overflow in the advance calculation. # textbbox or getsize calls the underlying logic. left, top, right, bottom = font.getbbox(text) print(f"Processing complete. BBox: {left}, {top}, {right}, {bottom}") except Exception as e: print(f"An exception occurred (expected in vulnerable versions): {e}")

影响范围

Pillow < 12.2.0

防御指南

临时缓解措施
在无法立即升级的情况下,应严格限制字体文件的来源,仅处理受信任的字体。建议在沙箱环境中运行使用Pillow进行图像处理的应用程序,以减轻潜在的拒绝服务影响。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表