Composer路径遍历漏洞:恶意软件包可泄露敏感文件
原创
网络安全9527
网络安全9527
安全圈的那点事儿
2026年8月31日 15:41
江苏
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
随着一处路径遍历漏洞被公开披露,Composer的用户被敦促升级软件。该漏洞可遭恶意或已被入侵的PHP软件包利用,修改自身安装目录以外的文件权限。
该漏洞编号为CVE‑2026‑59944与GHSA‑96h3‑5x6v‑m776,受影响版本包括Composer 2.3.0 ~ 2.10.2,以及1.0 ~ 2.2.29版本。
Composer路径遍历漏洞
该问题已在Composer 2.10.3和2.2.30版本中修复。GitHub将该漏洞危害等级评定为中等,CVSS 3.1评分向量为: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N 。这意味着漏洞利用需要本地执行安装或更新操作,但会造成严重的信息泄露风险。
漏洞根源在于Composer处理软件包声明的二进制程序时存在缺陷。攻击者可构造恶意依赖包,利用路径遍历或者符号链接,让二进制程序路径解析到软件包目录之外的位置。
软件安装过程中,Composer会修改指定二进制文件的权限,并将其注册到 vendor/bin 下作为可执行命令。
补丁发布前,攻击者可以滥用该机制,诱导Composer操作依赖包目录以外的外部文件;根据安装时设置的权限,外部文件会被设置为其他用户可读、可执行。
该漏洞无法直接实现远程代码执行,也不会自动窃取服务器文件,但在共享服务器、多租户托管环境、构建服务器中,其他本地用户可以读取被改为全局可读的文件,造成敏感内容泄露。
安全公告说明:该漏洞可以绕过之前针对GHSA‑gjfg‑22fp‑rrxx所做的加固防护。旧防护虽然会拒绝二进制配置里直接写的 .. 路径跳转片段,但是校验逻辑仅在依赖解析的某一处生效。
当Composer根据 vendor/composer/installed.json 内的依赖元数据重新生成缺失二进制文件,或是跟随符号链接解析到包目录外部路径时,原有防护就会被绕过。
如果项目复用非可信环境生成的vendor目录,风险会显著升高。
例如:从不可信CI缓存恢复vendor目录、从上一步容器构建阶段直接拷贝、旧Composer版本遗留目录、低可信度构建流程修改过的目录,都属于高危场景。
典型攻击场景:流水线执行 composer install ,使用了被篡改元数据或植入恶意符号链接的复用vendor目录。Composer会以执行命令账号的权限静默修改文件权限。CI执行器、部署账号、共享主机用户,都可能在不知情的情况下篡改外部文件访问权限。
该漏洞对应CWE‑22(路径限制不当)、CWE‑59(符号链接解析处理不当)、CWE‑732(关键资源权限分配错误)三类缺陷。
修复后的Composer会在修改文件权限前,校验声明的二进制文件必须解析在当前软件包目录内部。一旦解析路径超出包目录范围,Composer将跳过该二进制并输出警告信息。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论