2026年4月30日,lightning PyPI包中发现供应链被攻击——版本2.6.2和2.6.3。该项目的GitHub账户存在被攻击的迹象,相关攻击报告的问题被可疑回复迅速关闭。
2026年4月30日,lightning PyPI包中发现供应链被攻击——版本2.6.2和2.6.3。该项目的GitHub账户存在被攻击的迹象,相关攻击报告的问题被可疑回复迅速关闭。
这是一个持续更新的报道。
导入时,一个守护线程静默地从GitHub下载Bun JavaScript运行时并执行 router_runtime.js——一个11 MB高度混淆的有效载荷。恶意软件窃取令牌、凭证、环境变量和云端密钥;滥用GitHub API使用受害者的凭证将窃取的数据提交到仓库;并感染开发者机器上的npm包tarball。该项目的GitHub账户存在被攻击的迹象,相关攻击报告的问题被可疑回复迅速关闭。
我们分析了这两个wheel包。最后一个干净版本是 2.6.1,发布于2026年1月30日。完整有效载荷分析正在进行中,随着更多细节披露本文将持续更新。
背景:什么是 lightning?
lightning 包(Lightning AI,前身为PyTorch Lightning)是Python生态系统中使用最广泛的深度学习框架之一。它提供了训练PyTorch模型的高级接口,是研究环境、MLOps管道和生产AI系统中的常见依赖,每天收到数万次下载。运行 lightning 的环境通常持有GPU集群凭证、云IAM令牌、Hugging Face API密钥、Weights & Biases令牌以及其他与模型训练基础设施相关的高价值密钥——使其成为凭证窃取攻击的高价值目标。
入口点:隐藏的 _runtime 目录
两个被篡改的wheel包都捆绑了一个隐藏的 _runtime/ 目录,包含两个文件:
_runtime/start.py— 从GitHub下载Bun JavaScript运行时二进制文件_runtime/router_runtime.js— 一个11 MB高度混淆的JavaScript有效载荷
攻击在包被导入的瞬间触发,通过一个被压制stdout和stderr的守护线程。除安装外无需任何用户操作。线程在后台静默运行,受害者的进程正常继续,无错误或可见输出。
Shai-Hulud模式: 在执行时下载外部运行时来运行大型混淆有效载荷是Shai-Hulud供应链攻击家族的标志,该攻击于2025年11月首次在npm被攻击事件中记录,影响了780多个包。因为凭证窃取逻辑完全存在于运行时获取的混淆JS文件中,单独对Python wheel包进行静态分析无法揭示有效载荷的能力。
有效载荷能力
对 router_runtime.js 的静态分析发现了703多处 process 和环境变量引用,463多处令牌和认证材料引用,以及336多处仓库引用。有效载荷的已确认能力包括:
- 凭证窃取: 令牌、API密钥、认证材料、环境变量和云端密钥
- GitHub API滥用: 使用受害者的GitHub凭证将编码的窃取数据提交到仓库
- npm tarball投毒: 向开发者机器上的npm包tarball注入恶意代码,使攻击能够传播到下游npm使用者
GitHub账户被攻击
Lightning AI GitHub仓库显示出与恶意发布同时发生的账户被攻击迹象。Issue #21689暴露了攻击,但被可疑回复迅速关闭。这种模式与攻击者同时持有PyPI发布凭证和GitHub令牌一致——这是一次基于令牌的接管,而非直接破坏构建系统。
StepSecurity如何提供帮助
Harden-Runner 在进程层检测到此攻击。这类攻击使用Python子进程扫描 /proc 中的GitHub Actions Runner.Worker 进程,并通过 /proc/{pid}/mem 转储其可读内存,提取存储在运行器地址空间中的密钥。Harden-Runner的进程监控器将此未经授权的内存访问标记为可疑进程事件。