CVE-2026-40261
Composer 存在通过恶意 Perforce 引用导致的命令注入漏洞
- 已发布
- 2026年4月15日
- 已更新
- 2026年7月15日
- 分配 CNA
- GitHub_M
- 观察到的证据
- 2026年8月25日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H低 · 未来 30 天
- 百分位
- 75.7%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
# Composer 命令注入漏洞 Composer 是 PHP 的依赖管理器。版本 1.0 至 2.2.26 以及 2.3 至 2.9.5 在 `Perforce::syncCodeBase()` 方法中存在命令注入漏洞,该方法将 `$sourceReference` 参数附加到 shell 命令中而未进行适当的转义;此外,在 `Perforce::generateP4Command()` 方法中也存在该漏洞(参见 GHSA-wg36-wvj6-r67p / CVE-2026-40176),该方法将用户提供的 Perforce 连接参数(端口、用户、客户端)从 source url 字段中插入到 shell 命令中而未进行适当的转义。攻击者可以通过包含 shell 元字符的恶意构造的 source reference 或 source url 值注入任意命令,即使未安装 Perforce 也可利用。与 CVE-2026-40176 不同,source reference 和 url 作为包元数据的一部分提供,这意味着任何被入侵或恶意的 Composer 仓库都可以提供将 perforce 声明为源类型并带有恶意值的包元数据。在从源码安装或更新依赖时(包括安装 dev 前缀版本的默认行为)可利用此漏洞。该问题已在 Composer 2.2.27(2.2 LTS)和 2.9.6(主线版本)中修复。如果开发者无法立即更新,可以通过使用 `--prefer-dist` 或 `preferred-install: dist` 配置设置来避免从源码安装依赖,并仅使用受信任的 Composer 仓库作为临时缓解措施。
来源
1概念验证,演示 Composer 的 Perforce 驱动程序中存在的命令注入漏洞,包含两种攻击向量及基于 Docker 的测试方法。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。