OpenImageIO 整数溢出 CVE-2026-43908 导致 OOB 写入
CVE-2026-43908 (CVSS 8.8): 在 OpenImageIO 的 ConvertCbYCrYToRGB() 中存在一个有符号的 32 位整数溢出,导致越界写入,可能在 VFX 管线中引起崩溃或代码执行。

Indicators of Compromise (2)
| Type ↑ | Value | Description | Conf | |
|---|---|---|---|---|
| IP | 3.0.18.0 | Extracted from source material | high | |
| IP | 3.1.13.0 | Extracted from source material | high |
执行摘要
OpenImageIO中存在一个签名的32位整数溢出漏洞,这是一个广泛使用的库,用于在视觉效果(VFX)和动画流程中读取和写入图像文件,可能导致越界写入。该漏洞被追踪为CVE-2026-43908,CVSS得分为8.8,漏洞存在于ConvertCbYCrYToRGB()函数中,影响所有3.0.18.0和3.1.13.0之前的版本。攻击者如果能够向使用OpenImageIO的进程提供特制的图像,可能会触发内存损坏,从而导致应用程序上下文中的崩溃或任意代码执行。该漏洞是通过学院软件基金会的GitHub安全通告披露的,该基金会维护该项目。
技术分析
该漏洞源于ConvertCbYCrYToRGB()中像素循环索引表达式i * 3的一个签名的32位整数溢出。根据学院软件基金会发布的通告,当处理某些图像尺寸时,这种算术溢出会导致函数计算出一个大的负指针偏移量到输出缓冲区。结果是越界写入,可能会破坏相邻内存。
OpenImageIO是VFX和动画工作流程的基础组件,被工作室和渲染农场用来处理广泛的图像格式。该库被集成到许多数字内容创建工具中,使得任何通过OpenImageIO处理不受信任图像文件的应用程序都可能被利用。通告指出,溢出是在颜色空间转换期间触发的,这是读取或转码图像时执行的常规操作。
受影响的版本跨越了3.x分支:所有3.0.18.0和3.1.13.0之前的版本都易受攻击。在这些修补版本中引入的修复涉及更改索引计算以使用更大的整数类型或添加边界检查以防止溢出。通告归功于一位未具名的研究人员通过模糊测试发现了这个问题。
截至本文撰写时,尚未发布任何概念验证漏洞代码,通告也没有表明在野外有活跃的利用。然而,CVSS 8.8的评分反映了相对较低的攻击复杂性(基于网络,无需权限,需要用户交互)以及对机密性、完整性和可用性的潜在高影响。
缓解措施与建议
在生产流程中使用OpenImageIO的组织应优先更新到包含CVE-2026-43908修复的3.0.18.0或3.1.13.0版本。修补版本可以从官方GitHub仓库和Conda、vcpkg等包管理器中获得。
对于无法立即修补的环境,防御者应限制通过依赖OpenImageIO的应用程序处理不受信任的图像文件。应用程序层面的输入验证——例如拒绝可能触发溢出的尺寸图像——可能提供部分缓解,但通告没有指定确切的尺寸阈值。网络分段和渲染或转码服务的沙箱化可以限制如果发生利用的影响范围。
鉴于该库在媒体和娱乐中的使用,VFX工作室、动画公司和后期制作设施的安全团队应验证他们的软件供应链包括修补版本。该漏洞提醒我们,媒体处理库中的算术溢出错误仍然是一个可行的攻击面,特别是在可以通过电子邮件、下载或协作工具引入特制文件的环境中。
订阅更新
将最新的网络安全资讯直接发送到您的邮箱。

