CVE-2026-22864CVE-2026-22864是Deno运行时中的一个高危安全漏洞。该漏洞存在于Deno 2.5.6之前的版本,主要涉及Windows批处理文件(.bat和.cmd)的安全检查机制被绕过。开发团队原本为了防止恶意Windows批处理脚本的执行,在spawn功能中添加了扩展名检查逻辑,阻止用户通过Deno执行.bat或.cmd文件。然而,由于该检查使用了大小写敏感的字符串比较,只针对小写的.bat和.cmd进行匹配,这给了攻击者可乘之机。攻击者可以通过使用非标准大小写的扩展名(如.BAT、.Bat、.CMD、.Cmd等)来绕过这一安全限制,成功执行任意Windows批处理脚本。这意味着在Windows系统上运行的Deno应用程序可能遭受远程代码执行攻击,攻击者可以在受害者系统上执行任意命令,可能导致数据泄露、系统完全沦陷等严重后果。该漏洞CVSS评分为8.1,属于高危级别,需要尽快修复。
Deno的spawn功能在处理Windows平台上的可执行文件时,添加了安全检查以防止用户执行Windows批处理脚本。安全检查的代码逻辑使用固定的小写字符串'.bat'和'.cmd'与文件扩展名进行精确比较(case-sensitive comparison)。这种实现方式存在缺陷,因为Windows文件系统本身不区分文件名大小写,但程序代码中的字符串比较是区分大小写的。攻击者可以利用这一差异,通过使用大写或混合大小写的扩展名(如.BAT、.Bat、.CMD、.Cmd等)来绕过安全检查。当Deno尝试spawn一个路径时,如果扩展名使用了非小写形式(如.BAT),安全检查将无法识别并阻止该文件,导致恶意批处理脚本被执行。成功利用此漏洞需要攻击者能够控制Deno应用程序的spawn参数,在目标Windows系统上注入并执行任意命令。攻击的利用难度为Medium,因为需要特定的攻击条件和环境配置,但一旦成功,造成的危害非常严重,可导致远程代码执行。