CVE-2025-64184CVE-2025-64184是影响Dosage漫画下载工具的一个高危安全漏洞。Dosage是一款用于下载和归档漫画的开源工具,在3.1及以下版本中存在路径遍历和任意文件写入漏洞。漏洞的根本原因在于程序在构造下载文件的目标文件名时,虽然对basename部分正确剥离了目录遍历字符,但文件扩展名直接取自HTTP响应的Content-Type头,而未进行充分的安全验证。攻击者可以通过构造恶意的HTTP响应,在Content-Type头中指定任意文件扩展名(如.php、.py、.sh等),结合精心设计的文件名,从而将文件写入目标目录之外的任意位置。在漫画通过HTTP协议传输的场景下,中间人攻击者可以轻易利用此漏洞。此外,如果漫画源服务器被攻击者控制,同样可以实现任意文件写入。此漏洞的CVSS评分为8.8,属于高危级别,成功利用可能导致远程代码执行、敏感文件覆盖或系统配置篡改等严重后果。
该漏洞的技术原理涉及文件命名逻辑中的安全缺陷。在Dosage下载漫画图片的过程中,程序会综合多个来源构造目标文件名,包括页面URL、图片URL和页面内容等元素。关键问题在于文件扩展名的处理机制:程序从HTTP响应的Content-Type头获取文件扩展名,而Content-Type头是攻击者可以完全控制的HTTP响应字段。攻击者可以通过以下方式利用:首先,控制漫画源服务器或进行中间人攻击,在HTTP响应中设置恶意的Content-Type头,例如设置为application/x-httpd-php以获得.php扩展名,或者设置为text/x-shellscript以获得.sh扩展名;其次,在文件名中包含目录遍历序列(如../../../../etc/cron.d/),虽然basename会被正确清理,但扩展名部分仍保留攻击者指定的值;最后,当程序保存文件时,会将basename与扩展名拼接,导致文件被写入目标目录之外的攻击者指定位置。成功利用此漏洞需要满足以下条件:漫画通过HTTP(而非HTTPS)传输,或者漫画源服务器被攻击者控制。攻击者可以利用此漏洞覆盖系统关键文件、植入后门或实现远程代码执行。