CVE-2025-13601CVE-2025-13601是存在于glib库中的一个高危安全漏洞,CVSS评分达到7.7分。该漏洞存在于g_escape_uri_string()函数中,由于对缓冲区大小的计算错误,导致潜在的堆缓冲区溢出问题。具体而言,当待转义的字符串包含大量需要转义的非法字符时,对转义后字符串长度的计算可能发生整数溢出。这会使得程序在分配新字符串时分配过小的内存空间,而后续的写入操作则会超出分配的缓冲区边界,形成堆缓冲区溢出漏洞。攻击者可以利用此漏洞在受影响系统上实现信息泄露或执行任意代码,对系统机密性、完整性和可用性造成严重影响。由于该漏洞的攻击向量为本地攻击(AV:L),需要攻击者具有本地访问权限,但无需认证和用户交互即可触发。
glib是GNOME项目的基础函数库,被广泛应用于Linux系统中的各种应用程序。该漏洞位于glib的URI处理功能中,具体函数为g_escape_uri_string()。该函数用于对URI字符串进行转义处理,将不合法的字符转换为URL安全的格式。漏洞的根本原因在于计算转义后字符串长度时的整数溢出问题。当输入字符串包含大量特殊字符(如百分号、空格、控制字符等)时,每个字符转义后可能变成多个字符(如%XX格式)。在计算最终缓冲区大小时,如果字符数量足够大,累加过程中可能发生整数溢出,导致计算结果远小于实际需要的空间。程序随后根据这个错误的计算结果分配内存,但在实际写入转义后的数据时,会写入到分配的缓冲区边界之外,触发堆缓冲区溢出。攻击者可通过构造包含大量特殊字符的恶意输入字符串来触发此漏洞,可能导致程序崩溃(拒绝服务)或实现代码执行。