文章总结: Composer曝出路径遍历漏洞CVE-2026-59944,恶意或被入侵的PHP包可借路径遍历或符号链接修改包目录外文件权限,在共享主机、多租户及CI环境导致敏感文件泄露并绕过旧防护。受影响1.0至2.10.2版本,已在2.10.3与2.2.30修复,建议尽快升级并避免复用不可信vendor目录。漏洞无RCE,涉及CWE-22、59、732。 综合评分: 65 文章分类: 漏洞预警,漏洞分析,供应链安全,网络安全,应用安全
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将跳过该二进制并输出警告信息。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:安全圈的那点事儿 网络安全9527 网络安全9527《Composer路径遍历漏洞:恶意软件包可泄露敏感文件》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论