CVE-2025-69194CVE-2025-69194是GNU Wget2中的一个高危安全漏洞,CVSS评分达到8.8分。该漏洞存在于Wget2处理Metalink文档的过程中,攻击者可利用Metalink XML中的<file name>元素注入恶意路径,实现目录遍历攻击。当用户使用Wget2下载Metalink文件时,程序会解析XML内容并根据其中定义的文件信息进行下载操作。然而,Wget2在处理文件名时缺乏严格的路径验证机制,未能过滤包含"../"等目录遍历序列的恶意路径。这使得攻击者可以构造特制的Metalink文档,诱使Wget2将文件写入用户系统上的任意位置,包括敏感目录如~/.ssh/authorized_keys或/etc/cron.d/等。该漏洞可能导致数据泄露、系统文件被篡改,甚至实现远程代码执行。攻击者可以通过社交工程诱导用户下载恶意Metalink文件,或在中间人攻击场景中篡改合法的Metalink响应。此漏洞影响所有使用Wget2处理Metalink下载的场景,危害范围广泛。
GNU Wget2的Metalink处理模块存在路径遍历漏洞。漏洞根源在于libwget/metaxml_parse.c文件中的XML解析逻辑对<file>元素的name属性缺少安全验证。当Wget2接收到Metalink文档时,会调用metaxml_parse_file()函数解析XML结构,提取文件信息并创建本地文件。问题出在文件路径构建阶段,代码直接使用XML中提供的文件名而未进行路径规范化或安全检查。攻击者可以在Metalink XML中构造如下恶意内容:<file name="../../../.ssh/authorized_keys">,Wget2会将其直接用于本地文件路径,导致文件被写入用户home目录的.ssh文件夹中。漏洞利用需要以下条件:1) 目标系统安装有存在漏洞的Wget2版本;2) 攻击者能够使目标用户下载攻击者控制的Metalink文件;3) 用户执行Wget2下载命令(如wget --metalink=malicious.xml)。利用成功后可实现任意文件写入,进而可能通过覆盖SSH authorized_keys实现持久化访问,或覆盖系统配置文件实现权限提升。修复方案需要在文件路径构建前调用realpath()或等效函数进行路径规范化,并验证最终路径是否在预期目录内。