PyPI 上一个被篡改的 LiteLLM 1.107.0 版本安装了凭证窃取程序和远程代码执行后门。该版本的全部七个 wheel 包(涵盖 Linux、macOS 和 Windows)都会将三个文件安装到 site-packages 中。其中两个文件会在主机上任何 Python 进程启动时运行,即使该进程从未导入 litellm。上游 GitHub 源代码中并不包含这些文件,PyPI 随后已移除该版本。1.106.2、1.107.0rc1 和 1.107.0rc2 版本是干净的,配套包 litellm-proxy-extras==0.4.110 和 litellm-enterprise==0.1.78 同样干净。
该窃取程序 cook.py 会收集 SSH 密钥、云凭证、CI/CD 密钥、AI 工具令牌、浏览器密码,以及存储在 LiteLLM 代理数据库中的 LLM 提供商密钥。它会对数据加密后发送至 www.litellm[.]dev。第二个文件 sitecustomize.py 会启动一个每小时运行一次的后台守护进程。该守护进程从 GitHub 文件中读取服务器地址,重新运行窃取程序,并从该服务器下载并执行代码。
该植入程序是通过 1.107.0 源码分发包构建配置中新增的一行代码引入的。该行会把一个隐藏文件夹复制到 wheel 中,而该文件夹在源码分发包中并不存在。此外,该发布版本与其标签 v1.107.0 不匹配,也没有任何公开的 GitHub Actions 运行构建或发布过它。Safe Dep 以中高置信度评估认为,Berri AI 的私有发布流水线是基于被攻击者修改过的源码构建了这些 wheel。只有该公司的流水线日志能够证实此次入侵的具体经过。
来源: Hacker News · 由HeadlinesBriefing整理摘要