0x00 风险概述
2022年5月6日,RubyGems被披露存在一个可导致未授权访问的漏洞(CVE-2022-29176),该漏洞的CVSS评分为9.9。
0x01 攻击详情
Rubygems 是一个软件包注册中心,用于为 Ruby 语言生态系统提供软件,它托管超过 170,000 个 Ruby 包(gem),在其生命周期内提供了近1000 亿次下载。
该漏洞是由于可从存储库中取消发布(“yank”)某些 Ruby 包,并使用相同的文件名和版本号重新发布其污染或恶意的版本。该漏洞需要满足以下条件:
-
gem名称中有一个或多个破折号,例如something-provider。
-
第一个破折号之前的单词表示 RubyGems.org 上存在被感染的 gem。
-
被拉取/更改的gem要么是在过去 30 天内创建的,要么在 100 多天内未更新。
例如,gem something-provider可能已经被gem something的所有者接管,拥有许多 gem 的组织只要拥有名称在破折号之前的 gem,就不会受到攻击,例如,拥有 gem orgname会保护所有名称为orgname-provider 的 gem。
根据过去 18 个月在平台上进行的 gem的审计结果,目前RubyGems.org 维护人员认为该漏洞尚未被利用。
0x02 风险等级
高危。
0x03 影响范围
RubyGems开发人员可根据上述漏洞形成条件并结合实际情况进行排查。
0x04 安全建议
目前RubyGems.org 已经修复了此漏洞。RubyGem开发人员可采取如下措施:
在CI和部署过程中以--frozen 或者--deployment 模式使用Bundler,将保证应用程序不会静默切换到使用此漏洞创建的版本。
可以通过查看Gemfile.lock 历史记录,查看是否有已更改且版本号保持不变的 gem。例如,将 gemname-3.1.2 更新为 gemname-3.1.2-java 可能表明此漏洞已经被滥用。
0x05 参考链接
https://github.com/rubygems/rubygems.org/security/advisories/GHSA-hccv-rwq6-vh79
https://www.bleepingcomputer.com/news/security/check-your-gems-rubygems-fixes-unauthorized-package-takeover-bug/
https://nvd.nist.gov/vuln/detail/CVE-2022-29176
0x06 版本信息
版本 |
日期 |
修改内容 |
V1.0 |
2022-05-10 |
首次发布 |
0x07 附录
原文始发于微信公众号(维他命安全):【风险通告】RubyGems未授权访问漏洞(CVE-2022-29176)
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论