[!CAUTION] 本仓库包含针对 Composer 中漏洞 CVE-2026-40261 和 CVE-2026-40176 的概念验证代码。
[!CAUTION] 该代码仅用于教育和测试目的。
[!CAUTION] 请勿在生产环境中使用此代码,或未经适当授权对系统进行测试。
[!CAUTION] 在测试任何安全漏洞之前,请务必确保您已获得许可。
本仓库演示了 Composer 中通过 Perforce VCS 驱动程序进行命令注入的两个漏洞。
共有三种攻击向量:
composer.json.vector1 和 composer.json.vector2 文件分别包含两个向量的载荷。每个载荷都设计为执行一条命令,在 /tmp 目录中创建一个文件,以证明命令注入成功。
要测试这些漏洞,您可以按照以下步骤操作。请确保您的系统上已安装 Docker,以便运行 Composer 容器。
composer.json 文件来指定要测试的向量。例如,要测试向量 1,请运行以下命令将 composer.json.vector1 复制为 :
composer.jsoncp composer.json.vector1 composer.json

例如,使用 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

ls -l /tmp/
预期可以看到命令注入创建的文件(例如 pwned_via_url 或 pwned_via_user)不存在。

composer install --prefer-dist

ls -l /tmp/
预期可以看到命令注入创建的文件(例如 pwned_via_url 或 pwned_via_user)现在存在,表明命令注入成功。
