CVE-2026-40250OpenEXR在处理特定图像数据时存在整数溢出漏洞。该漏洞影响3.2.0至3.4.9等多个版本,根本原因在于`internal_dwa_compressor.h`中未进行类型转换的乘法运算。攻击者可诱导用户打开特制EXR文件,触发计算溢出,进而导致内存分配错误。这可能引发应用程序崩溃或潜在的任意代码执行,对系统完整性和可用性构成严重威胁。
该漏洞源于OpenEXR库中DWA压缩器组件的代码缺陷。在`internal_dwa_compressor.h`文件的第1040行,代码执行了`chan->width * chan->bytes_per_element`的乘法操作。由于两个操作数均为`int32`类型,且未将其转换为`size_t`进行计算,当处理超大尺寸图像或特定属性组合时,乘积会超过32位整数的上限(2^31-1),导致有符号整数溢出。溢出后的值通常变小,若该值被直接用于内存分配(如`malloc`),将导致分配的缓冲区小于实际所需大小。随后,程序向该缓冲区写入数据时,会越界写入相邻内存区域,造成堆缓冲区溢出。攻击者利用此漏洞可绕过边界检查,实现拒绝服务攻击或在特定条件下执行任意代码。