# Deno Windows 命令注入漏洞
## 概述
Deno 在 2.5.6 之前版本中存在一个路径扩展名检查绕过漏洞,攻击者可通过使用大小写变形的 Windows 批处理文件扩展名(如 `.BAT`、`.Bat`)绕过 spawn 限制。
## 影响版本
- 受影响版本:Deno < 2.5.6
- 修复版本:Deno >= 2.5.6
## 细节
Deno 在之前补丁中通过检查路径扩展名是否为 `.bat` 或 `.cmd`(全小写)来阻止 Windows 批处理文件的执行。该检查使用了大小写敏感的字符串比较,未覆盖 `.BAT`、`.Cmd`、`.Bat` 等变体,导致攻击者可利用大小写绕过限制并执行批处理文件。
## 影响
攻击者可利用此漏洞绕过 spawn 限制,执行本应被阻止的 Windows 批处理脚本,可能导致任意代码执行或权限提升等安全风险。
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|
标题: Release v2.5.6 · denoland/deno · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
从这个网页截图中获取的关于漏洞的关键信息如下:
- **Release Version**: v2.5.6
- **Release Date**: 2025-10-29
关键修复信息:
- **Windows相关修复**:
- 重新允许在Windows上生成bat和cmd文件 (#31118)
- 在规范化路径时去除句点和尾部斜杠 (#31131)
这些修复表明Deno在Windows环境下的文件处理和路径规范化方面可能存在安全或功能漏洞。
标题: Incomplete fix for command-injection prevention on Windows — case-insensitive extension bypass · Advisory · denoland/deno · GitHub -- 🔗来源链接
标签:x_refsource_CONFIRM
神龙速读:
从提供的网页截图中可以获取到以下关于漏洞的关键信息:
- **漏洞标题**: `Incomplete fix for command-injection prevention on Windows — case-insensitive extension bypass`
- **严重性**: High (8.1/10)
- **CVE ID**: CVE-2026-22864
- **CVSS v3 基础指标**:
- 攻击向量: Network
- 攻击复杂性: High
- 所需权限: None
- 用户交互: None
- 范围: Unchanged
- 机密性: High
- 完整性: High
- 可用性: High
- **受影响的版本**: < 2.5.6
- **已修复的版本**: 2.5.6
- **缺陷摘要**: 原先的补丁通过在生成路径扩展名匹配 .bat 或 .cmd 时返回错误来阻止生成 Windows 批处理/ shell 文件。但是,该检查对小写字母执行了区分大小写的比较,因此当扩展名使用替代大小写(例如 .BAT、.Bat 等)时,可以绕过该检查。
- **POC(概念验证)**:
- 编程示例给出了一段代码,利用漏洞能够在 Windows 上运行 calc.exe。
```javascript
const command = new Deno.Command('./test.BAT', {
args: ['&calc.exe'],
});
const child = command.spawn();
```
- **修复补丁**: CVE-2025-61787 防止执行 .bat 和 .cmd 文件。
- **绕过修复后的漏洞**: 示例显示,即使在修复后,通过生成的批处理脚本传递用户控制的参数仍可能导致命令行注入。
- **影响**: 该脚本会导致在 Windows 上启动 calc.exe,表明可以绕过修复的漏洞。
- **补救措施**: 用户应升级到 Deno v2.5.6 或更高版本。
暂无评论