terminat0r7031/composer-CVE-2026-40261-CVE-2026-40176-PoC
GitHub: terminat0r7031/composer-CVE-2026-40261-CVE-2026-40176-PoC
该项目演示了 Composer 中 Perforce 驱动程序的两个命令注入漏洞(CVE-2026-40261 与 CVE-2026-40176)的 PoC 验证方法。
Stars: 1 | Forks: 0
# 概述
本仓库展示了 Composer 中与 Perforce VCS 驱动程序相关的两个命令注入漏洞。
攻击向量共有三种:
1. VECTOR 1 — 通过 'url' 注入(成为 -p <端口>)。旧代码在构建 Perforce 驱动程序的命令字符串时未对 URL 值进行清理。
2. VECTOR 2 — 通过 'p4user' 注入(成为 -u <用户>)。旧代码将用户值直接附加到命令字符串中。
# 漏洞利用详情
`composer.json.vector1` 和 `composer.json.vector2` 文件包含每种攻击向量的有效载荷。每个有效载荷旨在执行一个命令,在 `/tmp` 目录中创建一个文件,以证明命令注入成功。
# 使用方法
要测试这些漏洞,可以按照以下步骤操作。请确保系统中已安装 Docker,以便运行 Composer 容器。
## 1. 指定要测试的攻击向量
使用对应的 `composer.json` 文件。
例如,要测试 VECTOR 1,请通过运行以下命令将 `composer.json.vector1` 复制为 `composer.json`:
```
cp composer.json.vector1 composer.json
```

## 2. 运行包含易受攻击 Perforce 驱动程序的易受攻击版本 Composer 的容器
例如,使用 Composer 版本 2.9.3(该版本同时易受 CVE-2026-40261 和 CVE-2026-40176 攻击):
```
docker container run --rm --platform linux/amd64 -v ./:/app -it composer:2.9.3 bash
```

## 3. 在容器内验证命令执行前不存在 PoC 文件:
```
ls -l /tmp/
```
预期看不到由命令注入创建的文件(例如 `pwned_via_url` 或 `pwned_via_user`)。

## 4. 在容器内运行 Composer 命令以触发漏洞:
```
composer install --prefer-dist
```

## 5. 通过检查由命令注入创建的文件是否存在来验证有效载荷是否已执行:
```
ls -l /tmp/
```
预期看到由命令注入创建的文件(例如 `pwned_via_url` 或 `pwned_via_user`)现已存在,表明命令注入成功。

标签:Composer, Composer 安装, CVE-2026-40176, CVE-2026-40261, Docker, OpenVAS, Perforce, PHP, PoC, TLS抓取, VCS 驱动, 命令执行, 命令注入, 安全防御评估, 暴力破解, 请求拦截, 软件安全