![]()
以 “默认安全” 架构闻名的现代 JavaScript/TypeScript 运行时 Deno 近期曝出两个重大安全漏洞。这两个漏洞分别影响运行时的加密兼容性层和 Windows 平台的命令执行机制,可能导致敏感服务器密钥泄露,并允许攻击者执行任意代码。
CVE-2026-22863:高危密钥泄露漏洞(CVSS 9.2)
两个漏洞中最严重的是 CVE-2026-22863,CVSS 评分 9.2。该漏洞存在于 Deno 的 node:crypto 兼容层 —— 一个用于让 Deno 运行 Node.js 代码的模块。
根据安全公告,node:crypto 的实现没有正确终结(finalize)加密器(cipher)。在标准的加密流程中,final() 方法应结束加密过程并清理内部状态。然而在受影响的 Deno 版本中,该方法没有真正关闭 cipher,导致加密器处于 “可无限加密” 的异常状态。
这一缺陷的影响极为严重。报告指出,这种状态管理错误 “可能导致攻击者进行暴力破解,或发起更高级的攻击以窃取服务器密钥”。分析中提供的 PoC 显示,调用 cipher.final() 后返回的是一个仍处于激活状态的 Cipheriv 对象,其内部缓冲状态仍然可被访问,而非预期的已关闭 CipherBase。
CVE-2026-22864:Windows 命令执行绕过(RCE)
第二个漏洞 CVE-2026-22864 影响 Deno 在 Windows 上启动子进程的能力。研究人员发现,这是一个 “对已修补漏洞的绕过”,涉及在执行批处理文件时使用 Deno.Command API。
Deno 原本包含防止 shell 注入的安全机制。当用户尝试直接运行 .bat 文件时,Deno 会抛出 PermissionDenied 错误,并提示开发者 “使用 shell 执行 bat 或 cmd 文件”,以确保参数被安全处理。
然而研究人员找到了绕过方法:
通过修改文件扩展名的大小写(例如使用 .BAT)或操控传入命令的参数,攻击者可以绕过 Deno 的安全限制。报告中包含的 PoC 截图显示,一个脚本通过在批处理执行上下文里注入参数 ["&calc.exe"],成功执行了 Windows 计算器(calc.exe),从而在目标机器上实现任意代码执行。
建议与修复
官方强烈建议用户立即升级到 Deno v2.6.0 或更高版本以修复这两个漏洞。
发表评论
您还未登录,请先登录。
登录