CVE-2026-2272GIMP图像编辑器在处理ICO图像文件时存在整数溢出漏洞。该漏洞主要位于`ico_read_info`和`ico_read_icon`函数中,由于32位整数评估限制,攻击者构造的恶意头部数据可导致缓冲区大小计算发生回绕,从而成功绕过安全校验机制。远程攻击者可诱导用户打开特制的恶意ICO文件,触发缓冲区溢出及内存损坏,最终导致应用程序崩溃及拒绝服务。
该漏洞的根本原因在于GIMP在解析ICO文件格式时的边界检查机制失效。具体而言,受影响的函数`ico_read_info`和`ico_read_icon`在计算图像数据所需的缓冲区大小时,使用了32位整数类型进行评估。当攻击者精心构造并提供一个包含超大宽度或高度值的ICO文件头部时,相关的乘法运算(例如宽度乘以高度再乘以位深)的结果会轻易超过32位整数的最大值,导致计算结果发生回绕,变成一个较小的正整数。程序随后根据这个错误的小数值分配内存,但在后续拷贝实际图像数据时,却按照原始的大尺寸进行写入操作。这种写入数据量与分配缓冲区空间的不匹配,导致了堆或栈缓冲区溢出。由于该漏洞通过网络传播且无需认证,但需要用户交互(打开文件),攻击者通常结合社会工程学手段(如钓鱼邮件)实施攻击。成功利用该漏洞不仅会导致进程段错误或异常终止,造成拒绝服务,在特定内存布局下理论上还可能引发更严重的代码执行风险。