CVE-2025-15275CVE-2025-15275是FontForge软件中的一个高危安全漏洞,CVSS评分高达8.8分。该漏洞属于堆缓冲区溢出(Heap-based Buffer Overflow)类型,存在于FontForge对SFD(Source Font Database)文件的解析过程中。攻击者可以通过构造恶意的SFD文件,当目标用户打开该文件或访问包含恶意SFD文件的网页时,即可触发堆缓冲区溢出漏洞。成功利用此漏洞后,攻击者可以在当前用户的上下文环境中执行任意代码,实现远程代码执行(RCE)。由于该漏洞利用需要用户交互(如打开恶意文件或访问恶意页面),因此被归类为需要用户配合才能触发的漏洞。FontForge作为一款流行的开源字体编辑软件,被广泛应用于字体设计、排版和字体文件转换等场景,因此该漏洞影响了大量使用该软件的用户群体。ZDI(Zero Day Initiative)将此漏洞编号为ZDI-CAN-28543并进行了披露。
该漏洞的根本原因在于FontForge在解析SFD文件时,对用户提供的SFD数据长度缺乏充分的验证。当程序读取SFD文件内容后,在将数据复制到堆分配的缓冲区时,由于没有正确检查数据长度与目标缓冲区大小的匹配性,导致了堆缓冲区溢出。具体来说,当SFD文件中包含超长的字符串或异常数据时,解析函数会将超出缓冲区容量的数据写入相邻的堆内存区域,覆写堆块元数据或其他重要数据结构。攻击者精心构造的SFD文件可以控制溢出的数据内容,从而实现任意代码执行。在利用过程中,攻击者通常需要构造包含特定长度和内容的恶意数据,覆盖堆内存中的函数指针或关键数据结构,最终劫持程序控制流。由于堆溢出的利用需要绕过操作系统的堆保护机制(如堆金丝雀、堆隔离等),攻击者可能需要结合堆喷射(Heap Spraying)或其他高级利用技术来完成完整的代码执行。