
5月16日GNU C程序库(glibc)的开发团队发布资安公告,指出该程序库存在重大层级的资安漏洞CVE-2025-4802,一旦遭到利用,针对静态编译的setuid二进位文件呼叫dlopen功能的过程,攻击者就有机会控制载入的动态共用程序库,从而载入恶意程序库的程序码,CVSS风险达到9.8分(满分10分),影响2.27以上的版本,该团队于去年1月下旬推出的2.39版修补这项漏洞。由于glibc广泛用于各种Linux作业系统,这样的漏洞带来的后续效应相当值得留意。
针对这项漏洞发生的原因,在于不受信任的LD_LIBRARY_PATH环境变数,导致静态连结的setuid二进位文件呼叫dlopen功能的过程,可能会在确认要载入的程序库名单时,不正确地搜寻LD_LIBRARY_PATH变数,使得攻击者能载入他们控制的程序库程序码。值得留意的是,无论setuid二进位文件是在setlocale功能之后透过内部dlopen呼叫,还是呼叫NSS功能,都可能曝险。
不过,利用这项弱点存在特定条件,首先是攻击者必须在本机利用,并且在静态setuid应用程序呼叫dlopen的状态下,就可能导致在搜寻LD_LIBRARY_PATH变数的过程,导向并载入SONAME。开发团队指出,目前他们尚未发现存在相关弱点的应用程序,但有可能出现在自製的setuid应用程序上,因此他们强烈建议IT人员不要忽视这样的问题。