composer曝出两个高危指令注入漏洞cve-2026-40261和cve-2026-40176,影响2.0至2.9.5版本,源于perforce模块未对输入参数做shell转义,其中cve-2026-40261可经恶意仓库远程触发任意命令,构成供应链攻击风险,官方已发布2.2.27与2.9.6修复版本。

Composer揭露两项与Perforce整合有关的高风险指令注入漏洞,影响2.0至2.9.5版本,其中CVE-2026-40261可由恶意套件储存库远端触发任意指令,形成供应链攻击风险。
PHP生态系受广泛使用的套件管理工具Composer,官方揭露两个高严重性指令注入漏洞CVE-2026-40261与CVE-2026-40176,均源自Perforce版本控制整合模组在建构Shell指令时未对外部输入做适当跳脱处理。其中CVSS评分达8.8的CVE-2026-40261,可透过恶意Composer套件储存库远端触发,且不需要用户端安装Perforce即可执行任意指令,形成软体供应链攻击风险。官方已释出Composer 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指令。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











