CVE-2026-34588OpenEXR在3.1.0至特定版本前存在内存破坏漏洞。`internal_exr_undo_piz`函数在进行有符号32位算术运算时,因nx、ny等参数处理不当导致整数溢出。攻击者可通过构造恶意EXR文件触发该漏洞,导致越界读写,进而可能引发敏感信息泄露或任意代码执行。
漏洞源于OpenEXR库中PIZ压缩解压函数`internal_exr_undo_piz`的实现缺陷。该函数在处理工作小波指针时,使用了有符号32位整数(nx, ny, wcount)进行算术运算以计算偏移量。由于缺乏对乘积结果的边界检查,攻击者可精心构造EXR文件,使得`nx * ny * wcount`的计算结果超过32位有符号整数的最大值,从而发生整数溢出并回绕。这导致后续的通道解码操作基于错误的内存地址进行。由于解码过程是原地操作,这直接引发了越界读取和越界写入。攻击者可利用此漏洞在本地低权限环境下破坏内存,可能导致敏感信息泄露、进程崩溃,甚至潜在的任意代码执行。