商城首页欢迎来到中国正版软件门户

您的位置:首页 >PHP套件管理器Composer爆两指令注入高风险漏洞,可远端触发任意指令执行

PHP套件管理器Composer爆两指令注入高风险漏洞,可远端触发任意指令执行

  发布于2026-07-30 阅读(0)

扫一扫,手机访问

Composer近期曝出两个高危指令注入漏洞,编号CVE-2026-40261和CVE-2026-40176,影响范围横跨2.0到2.9.5版本。根源在于Perforce驱动模块在构建Shell指令时,没有对输入参数做转义处理——这是一个经典的安全疏忽。其中CVE-2026-40261的CVSS评分高达8.8,更危险的是,攻击者可以通过恶意仓库远程触发任意命令,无需用户端安装Perforce就能得手,直接构成供应链攻击风险。官方已经紧急放出2.2.27和2.9.6两个修复版本。

两个漏洞的成因本质上是一回事:Composer的Perforce驱动器在拼接系统指令时,直接把外部提供的参数原封不动地嵌入命令行,既没有过滤也没有转义。攻击者只要在参数里塞进Shell特殊字符,就能注入任意指令。

先看CVE-2026-40261。这个漏洞出在Perforce::syncCodeBase()方法里——同步代码的时候,方法直接把来源引用追加到Shell指令中。而来源引用本身是套件元数据的一部分,任何Composer包仓库在提供套件信息时,都可以声明Perforce作为来源类型,并在里面夹带恶意内容。换句话说,只要开发者从被入侵或者故意架设的Composer仓库安装套件,就可能不知不觉间触发命令执行。具体来说,用--prefer-source安装或更新依赖包,或者安装dev前缀版本时的默认行为,都会触发这个漏洞。

另一个漏洞CVE-2026-40176则出现在Perforce::generateP4Command()方法里。这个方法生成P4命令时,直接把用户提供的Perforce连接参数(Port、User、Client)内嵌到指令字符串中。攻击者可以在composer.json里定义恶意的Perforce VCS仓库配置来触发命令注入。不过这个漏洞的攻击面相对窄一些——因为VCS仓库定义只能从项目根目录的composer.json或Composer全局配置目录加载,不能通过已安装的依赖包间接触发,所以实际利用难度更高。

两个漏洞影响Composer 2.0到2.2.26的LTS分支,以及2.3到2.9.5的主线分支。官方已经在2.2.27和2.9.6版本中完成修复。如果暂时无法升级,针对CVE-2026-40261,可以改用下载压缩包的方式安装套件,避免以源码方式获取依赖包;对于CVE-2026-40176,则要避免在来源不明的项目目录中执行Composer命令。安全无小事,尤其是这种能通过供应链传播的漏洞,务必尽快处理。

本文转载于:https://www.php.cn/faq/2348710.html?uid=1221864 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注