CVE-2025-50951CVE-2025-50951是FontForge软件中发现的一个内存泄漏安全漏洞。该漏洞存在于FontForge的源代码文件/fontforge/sfd.c中的utf7toutf8_copy函数。FontForge是一款开源的字体编辑工具,广泛用于字体设计、编辑和转换工作。由于该函数在处理UTF-7到UTF-8编码转换时未能正确释放已分配的内存,导致每次调用该函数时都会产生内存泄漏。攻击者可以通过诱使目标用户打开特制的SFD(Splines Font Database)字体文件来触发此漏洞。内存泄漏可能导致应用程序的内存消耗持续增长,最终引可用性问题,如程序崩溃或系统资源耗尽。虽然该漏洞的CVSS评分为6.5,属于中等严重程度,但在长时间运行的字体编辑环境中,累积的内存泄漏可能造成显著影响。此漏洞不需要认证即可利用,但需要用户交互打开恶意文件,攻击向量为网络,机密性和完整性影响较低,但可用性影响为高。
该漏洞的技术根源在于FontForge的utf7toutf8_copy函数在/fontforge/sfd.c源文件中存在内存管理缺陷。具体来说,当函数执行UTF-7到UTF-8编码转换时,使用malloc或其他内存分配函数分配了内存缓冲区,但在函数返回或错误处理路径中未能正确调用free()释放已分配的内存。在SFD字体文件解析过程中,该函数会被频繁调用来处理字体元数据中的字符串编码转换。攻击者可以构造一个包含特殊构造的UTF-7编码字符串的恶意SFD文件,当FontForge打开此文件时,utf7toutf8_copy函数会被触发执行,导致分配的内存无法被释放。由于字体编辑软件通常需要长时间运行和频繁处理多个文件,这种内存泄漏会逐渐累积,最终可能导致程序内存占用过高、系统响应变慢或程序崩溃。修复此漏洞需要在所有代码路径中确保内存被正确释放,包括正常返回路径和错误处理分支。