CVE-2026-2239GIMP图像处理软件中存在一个堆缓冲区溢出漏洞。该漏洞位于`fread_pascal_string`函数中,当处理特制的PSD(Photoshop文档)文件时触发。由于为Pascal字符串分配的缓冲区没有正确地以空字符结尾,导致后续调用`strlen()`函数时发生越界读取。成功利用此漏洞可能导致应用程序崩溃,造成应用程序级别的拒绝服务攻击。
该漏洞的根源在于GIMP解析PSD文件格式时的逻辑错误。具体来说,在`fread_pascal_string`函数中,程序从文件中读取Pascal字符串(一种长度前缀字符串)。在分配内存缓冲区来存储该字符串时,代码未能确保缓冲区末尾正确添加空终止符。当后续代码调用标准C库函数`strlen()`来计算字符串长度时,由于缺少空终止符,`strlen()`会继续向后读取内存,直到遇到随机的空字节为止,从而导致堆缓冲区溢出读取。攻击者需要诱导本地用户打开恶意文件才能利用该漏洞。虽然主要影响是可用性(导致崩溃),但越界读取理论上可能泄露内存中的敏感数据。