CVE-2026-34783Ferret是一个用于处理Web数据的声明式系统。在2.0.0-alpha.4版本之前,其标准库函数IO::FS::WRITE存在路径遍历漏洞。当操作员抓取返回包含../序列文件名的恶意网站,并使用这些文件名构造输出路径(标准抓取模式)时,攻击者可以控制目标路径和文件内容。这可能导致通过cron作业、SSH authorized_keys、shell配置文件或web shell实现远程代码执行。该漏洞已在2.0.0-alpha.4版本中修复。
该漏洞源于Ferret的IO::FS::WRITE标准库函数在处理文件路径时缺乏充分的验证机制。在Web抓取场景中,开发者常将网页元素(如文件名)直接传递给文件写入函数。攻击者可诱导受害者抓取特制的恶意页面,该页面返回包含目录遍历字符(如“../”)的文件名。由于IO::FS::WRITE未对路径进行标准化或限制,攻击者利用这些字符可绕过预定的输出目录限制,将任意数据写入文件系统的敏感位置(如/etc/cron.d/、~/.ssh/authorized_keys)。结合文件内容的可控性,攻击者可实现远程代码执行,完全控制主机。