Packagist的维护者是PHP生态系统最大的软件包存储库,他们在其官方网站上修复了一个可能让攻击者劫持其服务的关键漏洞。
安全研究员Max Justicz发现并报告了这个漏洞。
根据Justicz的说法,通过Packagist主页提交新PHP包的“提交包”输入字段允许攻击者以“ $(MALICIOUS_COMMANDS) ” 的格式运行恶意命令。
此问题的根本原因是Packagist服务期望输入是在Git,Perforce,Subversion或Mercurial服务器上托管的源代码存储库的URL。
Justicz发现Packagist在执行检查以查看URL是否通向Perforce或Subversion存储库时是不正确地转义输入字符,并且正在执行恶意命令-twice,一次用于Perforce检查,再次用于Subversion检查。
根据攻击者的技能水平,人们可能很容易劫持Packagist底层服务器并执行更具侵入性的操作。
据Justicz昨天发表的博客文章称,这个问题现已得到解决。
Packagist不是包管理器,而只是PHP包的主机。它是最受欢迎的PHP包管理器Composer背后的默认包主机。Packagist是PHP生态系统中最大的软件包托管服务,仅在2018年7月就报告了超过4.35亿个软件包安装。
Packagist团队没有回复评论请求。
Justicz习惯于在流行的编程语言包管理器和相关服务中查找和报告缺陷。他之前曾报道并帮助解决:
- Ruby的主要包存储库(托管服务)RubyGems.org上的远程代码执行缺陷 - 允许攻击者从Python包索引(PyPI)中删除文件的缺陷 - 在npmjs.org服务的镜像中执行远程代码,JavaScript生态系统的主要软件包存储库 - Unpkg.com中的一个缺陷,这是一个流行的npm JavaScript软件包CDN
领取专属 10元无门槛券
私享最新 技术干货