CVE-2025-14422CVE-2025-14422是GIMP(GNU图像处理程序)中一个高危安全漏洞,CVSS评分达到7.8分。该漏洞存在于GIMP对PNM(Portable AnyMap)图像文件格式的解析过程中,源于缺乏对用户提供的恶意数据的正确验证机制。具体而言,当GIMP解析特制的PNM文件时,攻击者可以通过构造包含特定参数的文件来触发整数溢出,该溢出发生在缓冲区分配之前。攻击者利用此漏洞可以在当前进程的上下文中执行任意代码。由于该漏洞需要用户交互(打开恶意文件或访问恶意页面),攻击场景主要为诱导用户打开攻击者精心制作的恶意PNM图像文件。此漏洞由趋势科技ZDI(Zero Day Initiative)发现并披露,编号为ZDI-CAN-28273。攻击向量为本地攻击(AV:L),无需认证(PR:N),但需要用户交互(UI:R)。成功利用此漏洞可导致机密性、完整性和可用性均为高影响(C:H/I:H/A:H)。
该漏洞的技术根源在于GIMP在解析PNM文件时的整数溢出问题。PNM是一种简单的图像格式,包含PBM(位图)、PGM(灰度图)和PPM(彩色图)三种子格式。在解析过程中,程序需要读取文件头部的宽度、高度和最大像素值等参数。当解析器处理这些数值时,如果缺乏适当的边界检查,攻击者可以通过精心构造的超大数值触发整数溢出。例如,当计算所需的缓冲区大小时(如宽度×高度×颜色通道数),如果这些乘积超过整数的最大值,就会发生整数溢出,导致计算结果变成一个很小的数值。随后程序会根据这个错误的小数值分配缓冲区,但在实际写入数据时会超出分配的内存边界,形成缓冲区溢出。攻击者正是利用这一机制,在分配的小缓冲区中写入超出预期的数据,从而实现代码执行。修复方案需要在进行缓冲区分配前,对所有用户输入的数值参数进行严格的范围验证,确保计算结果不会发生整数溢出。