CVE-2025-64182CVE-2025-64182是OpenEXR库中一个严重的安全漏洞,存在于遗留的OpenEXR Python适配器中。该适配器是已弃用的OpenEXR.InputFile封装器,在处理特制的EXR文件或传递精心构造的Python对象时存在内存安全问题。漏洞影响OpenEXR 3.2.0至3.2.4、3.3.0至3.3.5以及3.4.0至3.4.2版本。攻击者可以通过诱骗用户打开恶意的EXR文件或传递特制的Python对象来触发漏洞,导致程序崩溃甚至可能实现代码执行。该漏洞的CVSS评分为7.8,属于高危级别,攻击复杂度低,无需认证即可实施攻击,但需要用户交互(如打开文件)。
该漏洞的根本原因在于OpenEXR Python绑定中的InputFile.channel()和InputFile.channels()函数存在整数溢出和未检查的内存分配问题。在处理EXR文件通道信息时,代码未对通道数量或大小进行充分的边界检查,导致整数溢出。当溢出的值被用于内存分配时,会分配过小的缓冲区,随后写入数据时发生堆溢出(在32位系统上)或空指针解引用(在64位系统上)。具体问题出现在PyOpenEXR_old.cpp的第528-536行,代码在计算所需内存大小时未进行整数溢出检查。攻击者可以通过创建一个包含异常大通道数或畸形通道结构的EXR文件来触发此漏洞,当OpenEXR的Python包装器尝试读取这些通道信息时,就会触发内存安全问题。