2026 年 6 月初,微软官方 GitHub 账号下 73 个开源包被 GitHub 自动系统拦截并禁用。研究人员称,这些包里出现了 Miasma 凭据窃取蠕虫。微软的公开说法更克制:已临时移除部分仓库,正在调查“潜在恶意内容”。

这件事反常的地方在于,攻击不是从一个陌生包名开始,而是从可信账号、合法发布流程和 AI 编程代理的工作路径里钻出来。

如果开发者只是手动下载一个可疑包,很多团队还有机会停一下。可当 Claude Code、Gemini CLI、Cursor、VS Code 这类 AI 编程代理打开、读取、索引甚至执行项目文件时,触发点就变了。

主线很清楚:供应链风险正在从“你装了什么包”,扩展到“谁替你打开和运行了这个包”。

为什么 73 个微软包会被判定恶意

GitHub 对外使用的是平台处置语言,比如违反服务条款。它没有公开把这 73 个包定性为恶意包。

研究人员的判断更具体:相关包中包含可自我复制的 Miasma 载荷。包被打开后,载荷可尝试窃取云账号、本地开发配置和各类凭据,并向其他项目或环境传播。

这不是一个普通用户“点错链接”的问题。它直接打到开发者和企业 DevSecOps 团队的工作台上。

关键信息已知情况对开发者和企业的影响
时间2026 年 6 月初相关仓库和依赖需要回溯排查
范围微软官方 GitHub 账号下 73 个包可信账号会降低人工警惕
平台处置GitHub 自动系统拦截并禁用不能只等平台通知,内部也要查
研究人员判断包内含 Miasma 凭据窃取蠕虫应按凭据可能外泄处理
可窃取对象AWS、Azure、GCP、Kubernetes、密码管理器,以及 90 多类开发工具配置云权限、发布权限、CI/CD 权限都要纳入排查
触发场景Claude Code、Gemini CLI、Cursor、VS Code 等 AI 编程代理打开包AI 工具的读取和执行边界要重新设定

还有一个背景不能忽略。

数周前,同一微软 GitHub 账号已卷入过一次供应链事件。5 月,微软 durabletask Python SDK 在 PyPI 上曾被攻陷。该包用于构建容错工作流和编排任务,月下载量约 40 万次。安全公司 StepSecurity 当时称,攻击者通过微软发布凭据污染了包版本。

这里不能直接下结论说微软完整入侵路径已经查明。原文也没有给出确定答案。

但连续两次指向同一类问题,至少说明一件事:开发者不能再把“大厂官方账号”当成最后一道安全边界。门牌是真的,不代表货物就一定干净。

这次风险为什么比普通恶意包更难拦

OIDC 和 SLSA 不是漏洞。

OIDC 的价值,是让 CI/CD 流程少用长期密钥。SLSA provenance 的价值,是证明构建过程和来源。它们本来是供应链安全的基础设施。

真正的问题是信任模型被滥用了。一旦攻击者拿到合法维护者身份,系统看到的可能就是一次合规发布:可信账号、可信流程、可信来源证明。

这和早年的恶意包套路不太一样。

攻击类型常见做法防护重点这次的麻烦
拼写相似包用近似包名骗安装包名审核、下载源控制较容易通过命名和来源发现异常
依赖混淆让构建系统拉到攻击者包私有源优先级、版本锁定重点在依赖解析规则
可信账号被滥用用合法凭据发布污染包账号、发布权限、CI/CD 身份治理包来源本身看起来可信
AI 代理触发代理打开、读取、索引或执行项目文件代理权限边界、终端监控、凭据隔离人未必手动运行,代理可能替人跨过一步

Miasma 还会生成每次感染不同的加密载荷。这会削弱基于哈希的 IOC 检测。

换句话说,安全团队如果只拿固定文件哈希去扫,可能会漏。更现实的做法,是看行为:异常访问云凭据、读取密码管理器配置、触碰 Kubernetes 配置、调用包发布权限、在多个项目目录间复制自身。

AI 编程代理让这个问题更棘手。

过去,很多团队的默认假设是:代码被执行前,总有人按下回车。现在代理可能会读项目、总结代码、安装依赖、运行测试、调用命令。效率提高是真的,安全边界变模糊也是真的。

我更在意的是,这类攻击不需要说服开发者“信一个陌生人”。它只需要让开发者继续相信自己平时已经相信的东西:官方仓库、自动构建、来源证明、AI 助手。

使用过相关包的团队该怎么处理

目前看不清完整入侵路径。可能是 5 月事件后的凭据没有彻底轮换,也可能是新的开发者环境被窃取了凭据。现有信息不足以把原因钉死。

但处置不能等到原因完全查明。对使用过这 73 个包的开发者和企业,更稳妥的判断是:按已失陷处理。

最相关的两类人要立刻改动作。

一类是使用 GitHub、npm、PyPI,并让 AI 编程代理接触项目目录的开发者。短期内,应暂停让代理处理来源不明或刚被披露的问题包,检查本机是否暴露云凭据、包发布 token、Kubernetes 配置和密码管理器相关文件。

另一类是企业 DevSecOps 和云安全团队。不要只查“谁安装了包”。还要查 AI 代理、IDE、终端、CI runner 有没有读取或执行相关目录。

可以按这张表收口:

排查项具体动作现实限制
云凭据轮换 AWS、Azure、GCP 访问密钥,审计近期异常调用轮换会影响自动化任务,需要先标出关键服务
GitHub 与包发布权限检查 GitHub Actions、发布 token、npm/PyPI 权限和最近发布记录不要只看主账号,机器人账号也要查
Kubernetes检查 kubeconfig、服务账号 token、异常 API 调用很多团队把 kubeconfig 放在开发机上,风险容易被低估
密码管理器与开发工具查看相关配置是否被访问,检查 90 多类开发工具配置是否暴露不一定有完整访问日志,只能结合终端和 EDR 行为判断
AI 编程代理限制代理可读目录、命令执行权限和凭据访问范围会牺牲便利性,需要给不同项目分级

采购和平台团队也会受影响。

如果企业已经在评估 AI 编程代理,采购决策不一定要停,但安全验收要前移。过去问的是“模型好不好用、代码补全准不准”。现在还要问:代理能读哪些目录,能不能执行命令,日志能不能审计,是否默认接触云凭据。

这不是把 AI 编程代理妖魔化。现实约束是,很多团队已经离不开它。更可行的做法,是把代理当成一个能操作终端的开发者账号,而不是一个无害的文本工具。

接下来最该看的不是还会不会爆出更多包。那个数字当然重要,但不是根因。

更关键的变量有三个:微软和平台能否说明凭据滥用链路;GitHub、PyPI 等生态能否把“可信发布”和“可信行为”分开判断;企业能否把 AI 代理纳入终端、身份和 CI/CD 的统一审计。

回到开头那 73 个包,真正刺眼的不是数量。刺眼的是它们看起来本该被信任。