CVE-2025-15278CVE-2025-15278是FontForge软件中的一个高危安全漏洞,CVSS评分达到7.8分。该漏洞存在于FontForge的GUtils组件中,具体位于XBM(X BitMap)图像文件解析功能的像素数据处理环节。攻击者可以通过精心构造恶意的XBM文件来触发整数溢出漏洞,进而在目标系统上执行任意代码。成功利用此漏洞需要目标用户访问包含恶意文件的网页或打开特制的XBM文件,因此属于需要用户交互的本地攻击向量。漏洞的根源在于程序缺乏对用户输入数据的充分验证,导致整数溢出发生在缓冲区分配之前,最终可能引发堆内存破坏,为攻击者提供远程代码执行的能力。此漏洞由趋势科技ZDI团队发现并披露,编号为ZDI-CAN-27865。
该漏洞的技术根源在于FontForge在解析XBM格式图像文件时的整数溢出问题。XBM是一种古老的单色位图图像格式,其像素数据以C语言数组的形式存储。在解析过程中,程序需要计算图像的宽度、高度以及像素数据的大小。攻击者可以通过在XBM文件的宽度和高度字段中注入特殊值,使得这些数值在参与内存分配计算时发生整数溢出。例如,当宽度和高度的值足够大时,两者相乘可能超过32位或64位整数的最大值,导致计算结果回绕到一个较小的正值。程序随后根据这个溢出的值分配缓冲区,但由于分配的空间远小于实际需要的空间,当后续代码尝试将完整的像素数据写入该缓冲区时,就会发生堆缓冲区溢出。攻击者可以利用这种溢出覆盖相邻的堆内存结构,甚至通过覆盖函数指针或虚表来实现代码执行。在FontForge中,这个漏洞存在于GUtils组件的XBM文件解析模块,该模块在处理文件头和像素数组时没有进行充分的边界检查和整数溢出验证。