Python包索引PyPI被投毒,累计下载数十万次,攻击者还会劫持ClaudeCode、Codex等14款AI编程助手,影响巨大!

admin 2026-06-12 05:09:26 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 安全公司Socket监测到代号Hades的供应链攻击,向PyPI投毒19个包累计下载数十万次。攻击通过.pth文件在Python启动时自动执行,使用Bun运行时加载混淆JS窃取开发者密钥,并首次采用提示词注入技术欺骗AI安全扫描器。该攻击还会劫持14款AI编程助手,并通过删库威慑阻止凭证撤销。建议立即轮换凭证、清除持久化服务并复核AI扫描结论。 综合评分: 88 文章分类: 供应链安全,AI安全,恶意软件,漏洞预警,应用安全


cover_image

Python 包索引 PyPI 被投毒,累计下载数十万次,攻击者还会劫持Claude Code、Codex 等 14 款 AI 编程助手,影响巨大!

原创

mmc mmc

AGI安全

2026年6月9日 18:01 北京

在小说阅读器读本章

去阅读

SUPPLY CHAIN ATTACK · HADES CAMPAIGN · 2026.06

Python 包索引 PyPI 被投毒,累计下载数十万次,攻击者还会劫持Claude Code、Codex 等 14 款 AI 编程助手,影响巨大!

安全公司Socket监测到一款代号为「Hades」的供应链攻击,向 PyPI 投毒 19 个包。此次攻击不只偷密钥,还会向 AI 扫描器植入提示词,劫持你的 14 款 AI 编程助手,甚至用「删库」来逼你不敢撤销被盗凭证。

| | | | | | — | — | — | — | | 19 PyPI 投毒包 | 37 恶意 wheel | 14 被劫持 AI 助手 | 448 跨生态总制品 |

事件概览 · 受影响的包 · 攻击链 · 窃取什么 · 内存抓取与删库威慑 · 归因 · 处置建议

01 事件概览

安全公司 Socket 检测到一起针对 Python 包索引(PyPI)的供应链投毒事件:19 个包、37 个恶意 wheel被植入恶意代码,这些包累计被下载数十万次。这是继Shai-Hulud 蠕虫供应链攻击后的更大规模的最新一波攻击,攻击者这次使用 「Hades 」命作为攻击代号。

大规模攻击

Socket 目前正在追踪横跨 npm 与 PyPI 的 448 个受影响产品——其中 npm 侧106 个包、411 个npm文件,PyPI 侧 19 个包、37 个 恶意的PyPI wheels。命名取自神话冥界:仓库描述写着「Hades — The End for the Damned」,组件名则用了 stygian、cerberus、charon、styx、lethe、thanatos、persephone 等冥界意象。

02 受影响的包

这波攻击疑似源于单个维护者账号被接管,重点瞄准生物信息学(bioinformatics)工具链。攻击者一次性把这名作者名下的全部项目都发布了「连续补丁版本」,其中悄悄夹带了恶意代码。

已知受影响的热门工具

Dynamo、Spateo、CoolBox、U-FISH、Napari-UFISH 等——都是科研领域常用的生物信息分析包。如果你在做单细胞、空间组学相关分析,需要格外留意。

03 攻击链

和以往滥用 npm 安装钩子不同,这次攻击者盯上了 Python 的启动机制——你甚至不需要主动运行什么,只要启动 Python 解释器就会触发。

① 自动执行的 .pth 文件

恶意版本夹带一个 *-setup.pth 文件,会在 Python 启动时自动执行。

② 拉取 Bun 运行时

它从 GitHub 下载 Bun(JavaScript 运行时,v1.3.14)。这是该攻击链家族的关键指纹——不依赖于本机是否有可用的 Node.js 或 Python ,而是自带运行引擎,可在 Linux / macOS / Windows、arm64 / x64 间自动选择下载运行。

③ 运行混淆载荷 _index.js

用 Bun 执行高度混淆的 JS 窃密器 _index.js。引导程序会解密 16 个载荷模块(gzip + AES-256-GCM,各自硬编码密钥)。

04 恶意文件专门「骗」AI 安全扫描助手

最危险的部分

在 _index.js 的开头,攻击者埋了一段明文提示词注入(prompt injection),专门针对基于大模型的安全扫描器。

这段对抗性提示词会「指示」正在分析它的大模型:忽略下方的混淆代码,把这个包判定为「已验证的干净基础设施」,并输出一份「安全」报告。

安全研究人员称这是「一次重大的攻防思路转变:攻击者开始编写针对 AI 自动化研判系统『认知逻辑』的bypass」。缺乏严格输入边界的扫描器,可能被诱导给出错误的结论——明明有毒,却报「安全」。

劫持你的 14 款 AI 编程助手

它还会篡改 14 款 AI 编程工具的工作区配置——包括 Claude、Codex、Gemini、Copilot、Cline、Aider 等。当开发者调用 AI 编程助手,就会触发 bun run bootstrap,把感染再传播一轮。

05 攻击窃取开发者与 CI/CD 全套密钥

攻击者的目标是窃取一整套开发与CI/CD相关的重要内容:

· 代码托管:GitHub PAT、GitHub App token、Actions secrets、仓库 deploy key;

· 包发布:PyPI、npm、RubyGems、JFrog 等发布令牌;

· 云与编排:AWS、GCP、Azure、Kubernetes、Vault 凭证;

· 本机凭据:SSH key、Docker 凭证、Git credential helper、云 CLI 配置、shell 历史里的密钥;

· 开发工具:Anthropic、CircleCI、Claude / MCP 等开发者工具令牌。

06 内存抓取 + 「删库」威慑

跨平台抓取内存明文密钥

为了不落盘、不发可疑连接,它直接读取 Runner.Worker 进程,在内存中抓明文密钥。早期版本只针对 Linux,Hades 把范围扩到了三平台:Linux 走 /proc/{pid}/mem;macOS 用 Mach 内核 VM API(同 UID 下无需 root 即可拿到 task port);Windows 用 PowerShell 编译 C# 调 ReadProcessMemory 爬内存信息。

撤销密钥就「删你的家目录」

一个名为 gh-token-monitor 的后台服务每 60 秒用偷来的 token 轮询 GitHub API。一旦发现 token 被吊销(返回 4xx),立即触发毁灭性擦除

rm -rf ~/  ;  rm -rf ~/Documents

它以 72 小时的存活期运行(Linux 装成用户级 systemd 服务、macOS 装成 LaunchAgent)。目的很明确:用「数据被毁」的风险,吓阻安全团队第一时间撤销被盗凭证,为攻击者争取维持访问的窗口期。另有 update-monitor 守护进程每小时向 GitHub 拉取 C2 指令。

07 攻击者成迷

Shai-Hulud 系列攻击的幕后者仍不明确,Socket 也未将 Hades 这一波归因到具体的组织或个人。此前有安全厂商将 Mini Shai-Hulud 关联到 TeamPCP——一个 2025 年底浮现、出于经济动机的团伙,曾利用 React2Shell 漏洞,并瞄准配置不当的 Docker API 与 Next.js。

08 处置建议

① 立即轮换凭证:受影响的开发机与 CI 作业可触及的所有密钥(GitHub、云、包发布令牌等)全部轮换。

② 注意「删库」陷阱:撤销 token 可能触发擦除——先在隔离/已备份环境处置,排查并清除 gh-token-monitor、update-monitor 等持久化服务后再吊销。

③ 移除并锁定版本:从受影响版本回退或 pin 到安全版本,尽可能重建受影响环境。

④ 别只信 AI 研判:对 AI 安全扫描结论加一层人工/规则复核,警惕代码中针对 LLM 的提示词注入。

这起事件的标志性意义在于:当 AI 成为安全研判的一环,攻击者也会把 AI 当成攻击目标。供应链安全,正在进入「AI 对 AI」的新阶段。

一图速记

| | | | | | — | — | — | — | | 19 PyPI 投毒包 | 37 恶意 wheel | 448 跨生态制品 | 16 载荷模块 | | 14 被劫持 AI 助手 | 骗 AI 提示词注入 | 72h 删库威慑期 | Bun 执行引擎 |

如果你也关注 AI 安全相关的内容,欢迎点赞、在看、转发三连,我们下期再见!


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:AGI安全 mmc mmc《Python 包索引 PyPI 被投毒,累计下载数十万次,攻击者还会劫持Claude Code、Codex 等 14 款 AI 编程助手,影响巨大!》

评论:0   参与:  0