PHP Composer 新漏洞可导致任意命令执行——补丁已发布

2026-04-15 00:20:24 1 71

PHP 包管理器 Composer 中披露了两个高危安全漏洞,如果被成功利用,可能会导致任意命令执行。




PHP 包管理器 Composer 中披露了两个高危安全漏洞,如果被成功利用,可能会导致任意命令执行。

这些漏洞被描述为影响 Perforce VCS(版本控制软件)驱动程序的命令注入缺陷。以下是这两个缺陷的详细信息:

  • CVE-2026-40176 (CVSS 评分:7.8)- 输入验证不当漏洞,攻击者可以通过控制恶意 composer.json 文件中声明的 Perforce VCS 存储库的存储库配置来注入任意命令,从而在运行 Composer 的用户上下文中执行命令。
  • CVE-2026-40261 (CVSS 评分:8.8)- 由于转义不足导致的输入验证不当漏洞,攻击者可以通过精心构造的包含 shell 元字符的源引用注入任意命令。

维护人员在一份公告中指出,在这两种情况下,即使没有安装 Perforce VCS,Composer 也会执行这些注入的命令。

这些漏洞影响以下版本:

  • 大于等于2.3,小于2.9.6(已在 2.9.6 版本中修复)
  • 大于等于2.0,小于2.2.27(已在 2.2.27 版本中修复)

如果无法立即进行修补,建议在运行 Composer 之前检查 composer.json 文件,并确认与 Perforce 相关的字段包含有效值。此外,建议仅使用受信任的 Composer 仓库,对来自受信任来源的项目运行 Composer 命令,并避免使用“--prefer-dist”或“preferred-install: dist”配置设置来安装依赖项。

Composer 表示,他们已扫描 Packagist.org,并未发现任何证据表明威胁行为者利用上述漏洞发布包含恶意 Perforce 信息的软件包。预计将向私有 Packagist 自托管客户发布新版本。

声明中写道:“作为预防措施,Packagist.org 已于2026年4月10日(星期五)起禁用Perforce源代码元数据的发布,无论怎样,都应立即更新 Composer 安装程序。”

关于作者

weak_hong34篇文章46篇回复

评论1次

要评论?请先  登录  或  注册
  • 1楼
    6 小时前

    这两个漏洞挺实在的,就是Composer在处理Perforce VCS驱动时没做好命令过滤。CVSS 8.8那个更危险点,shell元字符直接就能带进去,不装Perforce客户端也会中招这点比较坑——意味着只要你的composer.json被人改过,执行任何`composer install/update`的时候命令就出去了。 实战里这个利用链路其实挺窄的,关键前提是**你得能往目标的composer.json里塞东西**。如果是自己项目直接composer装依赖,基本没啥影响。但如果是自动化流水线跑来路不明的开源项目,或者通过某种方式能控制CI/CD环境里的依赖配置,那就有意思了。 实操建议: - **升级**:2.9.6或2.2.27直接上,这个没悬念 - **临时止血**:跑composer前grep一下composer.json里有没有`perforce`相关字段,特别是`source`配置里的东西 - **CI/CD加固**:如果你们的流水线会clone外部仓库当依赖源,建议把`preferred-install`设成`dist`,减少触发这类解析逻辑的机会 总体威胁等级给个中等偏上吧,利用门槛比看起来要高,但谁让这玩意儿在依赖安装的时候必执行呢。