Composer 漏洞可导致恶意依赖暴露 SSH 密钥和敏感文件

· 2026-09-01 17:05 · 2 阅读

Abinaya 2026-09-01 17:05 北京

速修复

  聚焦源代码安全,网罗国内外最新资讯!

编译:代码卫士

广泛使用的PHP依赖管理器Composer中存在一个漏洞CVE-2026-59944,可导致恶意或被入侵的包修改自身安装目录之外的文件权限。

当易受影响的Composer版本处理不安全的包二进制路径时,可能会在共享或多租户系统上暴露敏感文件。该漏洞的评级为“中等”,影响Composer 2.3.02.10.3之前的版本,以及1.02.2.30之前的版本。

Composer已在2.10.32.2.30版本中发布了修复方案。该漏洞源于Composer管理包二进制文件时,在路径遍历和符号链接处理方面的弱点。

Composer漏洞暴露

恶意包可以声明一个二进制文件,该文件是一个解析到包目录之外目标的符号链接。在安装期间,Composer可能会按照该链接,更改外部文件的权限,并将其注册为项目vendor/bin目录下的可运行命令。

攻击者无法仅通过该漏洞直接获得远程代码执行或立即访问受害者数据。然而,权限更改可能使之前仅供所有者读取的文件变为全局可读且可执行。在共享托管环境、多用户服务器或构建平台上,其它本地用户或进程随后可能能够访问暴露的内容。

该漏洞绕过了之前Composer通告GHSA-gjfg-22fp-rrxx中引入的保护措施。早期的加固措施拒绝了声明的包二进制路径中的字面“..”路径段,但该验证仅在依赖项解析的一个阶段应用。

安全研究人员发现,当Composer处理符号链接或从先前环境恢复的依赖元数据时,该验证可能被跳过。当组织从不受信任或较低信任来源重用vendor目录时,风险最高。示例包括通过共享CI缓存恢复的vendor文件夹、从早期容器构建阶段复制、从旧版Composer保留,或被较低信任的构建过程修改。

GitHub通告指出,在构建或部署流水线中执行正常的composer install命令,可能会静默地使用运行Composer的账户权限,应用危险的权限修改。Composer现在验证每个声明的二进制文件都解析在正在安装的包目录内。如果二进制文件指向包路径之外,Composer会跳过它并显示警告,而不会触及目标文件。

管理员和开发者应立即升级到Composer 2.10.32.2.30。从受信任来源重建vendor目录也很重要,特别是对于CI/CD流水线、缓存依赖项、容器构建和部署系统。该漏洞关联到CWE-22路径遍历、CWE-59链接解析不当和CWE-732关键资源权限分配错误。

该通告的CVSS向量表明攻击复杂度低且机密性影响高;不过,漏洞利用需要依赖安装过程的本地执行以及用户交互。

代码卫士试用地址:https://sast.qianxin.com/

开源卫士试用地址:https://oss.qianxin.com/


原文链接

https://cybersecuritynews.com/composer-flaw-expose-ssh-keys/

题图:Pixabay License

本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。

   觉得不错,就点个 “在看” 或 "” 吧~

阅读原文

跳转微信打开