CVE-2026-42217 (CVSS 9.8) - OpenEXR provides the specification and reference implementation of the EXR file
CVE-2026-42217 (CVSS 9.8) - OpenEXR provides the specification and reference implementation of the EXR file
📋 漏洞概述
OpenEXR EXR图像库中 readVariableLengthInteger 函数处理可变长整数时移位计数未受限,导致未定义行为,可被利用引发拒绝服务或代码执行。
📋 基础信息
| 受影响版本 | OpenEXR 3.0.0 <= version < 3.2.9, 3.3.0 <= version < 3.3.11, 3.4.0 <= version < 3.4.11 |
| 漏洞类型 | 未定义行为(移位溢出) |
| CVSS | 9.8 · Critical |
| CVE | CVE-2026-42217 |
🔬 漏洞根因
readVariableLengthInteger() 函数在解码EXR文件中的可变长整数时,未对位移计数进行合法性检查。在读取足够多的continuation字节后,代码会对一个64位数值执行左移70位的操作,这超出了C/C++标准中规定的有效移位范围(0到63),触发未定义行为。编译器优化可能产生任意指令序列,导致内存破坏或控制流劫持。
🎯 攻击场景
1. 攻击者构造一个恶意的EXR图像文件,其中包含精心设计的可变长整数区域,该整数含有超过正常范围的continuation字节,使得解码循环结束后shift count累积达到70。 2. 攻击者通过网页下载、邮件附件或文件上传等方式将该恶意EXR文件传送给目标用户或服务。 3. 目标系统上的图像查看器、视频处理工具或任何使用libOpenEXR库的应用程序解析该文件。 4. 库调用readVariableLengthInteger()处理恶意数据,触发左移70位的未定义操作。 5. 根据具体编译器和运行时环境,未定义行为导致程序崩溃(拒绝服务),或在特定条件下执行攻击者注入的shellcode(远程代码执行)。
💥 漏洞影响
攻击者无需任何权限,仅通过诱使目标解析恶意EXR文件即可触发未定义行为。最严重情况下可实现远程代码执行,完全控制受影响系统;至少也会导致拒绝服务。影响覆盖使用受影响OpenEXR库的所有桌面图像软件、服务器端图像处理服务及影视后处理管道。
🛡️ 修复建议
立即升级到修补版本:OpenEXR 3.2.9、3.3.11或3.4.11。临时缓解措施:在无法立即升级的情况下,使用安全扫描工具检测传入的EXR文件,避免解析来自不可信来源的EXR图像;或对依赖库做沙箱化处理以限制利用影响。
📎 参考链接
- https://nvd.nist.gov/vuln/detail/CVE-2026-42217
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-42217
- 原始来源(NVD-Latest)
⚠️ 本文由漏洞情报系统自动生成,仅供安全研究与防御参考。生成时间: 2026-05-09 08:04 | 来源: NVD-Latest