微软临时关闭了 70 多个自有 GitHub 仓库。

404 Media 报道称,微软在邮件声明中确认:“我们已临时移除部分仓库,以调查潜在恶意内容。”

这句话很克制。微软没有确认具体攻击路径,也没有说有多少用户凭据被盗。现在能确认的,是一批仓库被临时移除,原因和潜在恶意内容有关。

反常点在这里:研究人员称,风险可能不是等开发者下载包、运行脚本才发生,而是在 Claude Code、Gemini CLI、Cursor、VS Code 打开仓库时就开始接触本地环境。

对工程团队来说,问题从“这个依赖能不能信”,变成了“AI 工具读这个仓库时,会不会把本地凭据也带进风险里”。

73 个仓库在 105 秒内被禁用,异常在规模和对象

OpenSourceMalware 称,GitHub 在 6 月 5 日的 105 秒内禁用了 73 个微软仓库。页面提示显示,这些仓库因违反 GitHub 服务条款被 GitHub Staff 禁用。

受影响范围包括四个 GitHub 组织。公开线索里提到的对象,有整个 Azure Functions 组织、Durable Task 相关仓库,以及部分 AI 示例应用。

这里要把边界划清楚:这不等于 73 个仓库都已经感染恶意代码,也不等于 Azure 云服务整体被攻破。微软确认的是“调查潜在恶意内容”。目前看不到受害用户数量、被盗凭据数量或经济损失。

对象已知情况该怎么理解
Azure Functions 相关仓库OpenSourceMalware 称相关组织仓库被禁用依赖这些仓库或 GitHub Actions 的团队,可能遇到拉取和流水线中断
Durable Task 相关仓库被列入关闭范围和此前 durabletask PyPI 投毒线索形成交叉,需要重点核验
部分 AI 示例应用出现在受影响范围内AI 示例仓库常被开发者直接克隆、交给代理理解,风险更容易进入本地开发流
Azure 云服务本身现有材料未显示整体被攻破不应扩大解读成云平台失守

我更在意的是对象变化。

过去供应链攻击常盯着 npm、PyPI、容器镜像、CI 脚本。开发者知道这些东西危险,至少会有一点防备。

但 AI 示例仓库、配置文件、提示词、自动化说明,很多团队还会当成“文档”或“样板”。一旦交给代理式工具读取,它们就不只是静态文本了。

AI 编程代理把“打开仓库”变成了风险动作

StepSecurity 的说法更具体:恶意配置会在 Claude Code、Gemini CLI、Cursor、VS Code 打开仓库时尝试窃取凭据。

这类风险不好处理,因为它卡在效率和权限之间。

Claude Code、Gemini CLI、Cursor 这类工具要提高效率,就要读代码、理解项目、调用命令、接触终端或编辑器环境。权限给得越深,体验越顺;权限越深,出事时也越难只停留在仓库内部。

传统开发流程里,“打开一个仓库”和“执行一个脚本”是两件事。AI 编程代理普及后,这条线变得模糊。代理可能会读取隐藏文件、理解配置、建议命令,甚至在某些设置下触发自动化动作。

这才是这次事件的现实影响。

最相关的两类人,动作应该不一样。

人群眼前更该做什么不必过度做什么
使用 GitHub Actions、Azure 相关仓库的开发者暂停从被禁仓库拉取工作流;核对 pin 的 commit;检查流水线是否突然失败或改源不必直接认定 Azure 云服务不可用
使用 Claude Code、Gemini CLI、Cursor 的工程团队检查自动执行、终端调用、本地凭据读取权限;轮换可能暴露的令牌不必一刀切禁用所有 AI 编程工具,但要收紧默认权限

如果团队正在采购或扩大试点 AI 编程代理,我会建议先放慢一步。不是因为工具不能用,而是要先问清三件事:默认会读哪些文件,会不会自动执行命令,本地 token 和云端密钥如何隔离。

这不是安全部门的表格问题。它会影响研发效率、上线节奏和事故责任边界。

durabletask 旧案没有翻篇,接下来盯三个变量

这次事件和 durabletask 的旧案存在交叉。

StepSecurity 此前披露,名为 TeamPCP 的攻击者曾在 5 月发布 durabletask 的三个恶意 PyPI 版本。WIRED 报道称,TeamPCP 今年上半年已发动多起供应链攻击,影响数百个组织。

把两件事放在一起看,最值得警惕的不是“某个仓库什么时候恢复”。恢复访问只是第一层。

更关键的是:这些仓库为什么被禁,恶意内容在哪里,AI 编程工具在什么条件下会触发风险。

接下来有三个变量最该看。

变量为什么重要读者能据此判断什么
微软是否披露核查范围现在只知道临时移除和调查潜在恶意内容能判断风险是局部配置问题,还是更广的供应链污染
GitHub Actions 是否恢复稳定很多团队把仓库和流水线绑定在一起能判断是否需要临时迁移、固定版本或改用镜像
AI 工具厂商是否调整权限边界风险发生在代理读取仓库和接触本地环境的交界处能判断继续试点、延后采购,还是先做内部沙箱策略

这里有一个历史回声。早年的依赖投毒,常常藏在包名、版本号和安装脚本里。现在仓库本身也变成了入口。

门槛降低之后,攻击者不一定非要攻破云平台。只要让开发者把有问题的仓库交给足够有权限的工具,就可能把风险带进本地环境。

所以,这次微软关仓库的动作,本身不是结论。它更像一次警报。

仓库可以恢复,流水线也可以补救。但工程团队对 AI 编程代理的默认信任,不能再停在“它只是帮我读代码”这一层。