UNKNOWNCVE-2026-34380

OpenEXR 中存在一个有符号整数溢出 (未定义行为) 在 undo_pxr24_impl 中,可能允许在 PXR24 解压缩中绕过边界检查

平台

c

组件

openexr

已修复版本

3.2.7

OpenEXR 提供了 EXR 文件格式的规范和参考实现,EXR 文件格式是电影行业的图像存储格式。从 3.2.0 到 3.2.7、3.3.9 和 3.4.9 之前版本中,undo_pxr24_impl() 函数在 src/lib/OpenEXRCore/internal_pxr24.c 的第 377 行存在一个有符号整数溢出。表达式 (uint64_t)(w * 3) 在转换为 uint64_t 之前,将 w * 3 计算为有符号 32 位整数。当 w 很大时,此乘法在 C 标准下构成未定义行为。在经过测试的构建中 (没有 sanitizers 的 clang/gcc),通常发生补码溢出,并且对于 w 的特定值,溢出的结果是一个小的正整数,这可能导致后续的边界检查错误通过。如果检查被绕过,解码循环将继续通过 dout 写入像素数据,可能超出分配的输出缓冲区。此漏洞在 3.2.7、3.3.9 和 3.4.9 版本中已修复。

修复方法

暂无官方补丁。请查找临时解决方案或持续关注更新。

自动监控您的依赖项

当新漏洞影响您的项目时获得提醒。

免费开始