GitHub Actions 新安全措施:可疑工作流需审批,防止恶意代码执行(2026-08-05)

如果你是重度依赖 GitHub Actions 的开发者或运维人员,最近打开仓库时可能会注意到一个微妙的变化:有些工作流不再“默默运行”,而是弹出了“需要审批”的提示。这不是误报,而是 GitHub 在 2026 年夏季推出的重大安全升级——针对可疑工作流的强制审批机制

为什么这次升级如此重要?

过去几年,供应链攻击屡见不鲜。攻击者常常通过向公开仓库提交恶意 PR(Pull Request),诱使维护者合并代码,从而触发 Actions 工作流,在 CI/CD 环境中执行挖矿脚本、窃取密钥,甚至向 npm、PyPI 等公共包仓库发布后门版本。

一个真实案例:2025年“虚假修复”攻击

2025 年 11 月,一个伪装成“依赖升级修复”的 PR 被合并进某知名 JavaScript 工具库。该 PR 的代码看起来正常,但在 Actions 工作流中追加了一个 curl 命令,将环境变量中的 NPM_TOKEN 发送到攻击者服务器。由于原工作流无需审批,事件在数小时内危及了超过 3000 个下游项目。GitHub 官方数据显示,2026 年第一季度,因恶意 Actions 工作流导致的安全事件环比上升了 42%

新机制的核心规则

GitHub 这次不再是“一刀切”禁用所有新 PR 的 Actions,而是引入了智能风险评分。以下是你需要知道的规则:

三级触发条件

代理与嵌套 Action 也受管控

以前攻击者会通过“嵌套调用”规避检测,例如在 run: 步骤中调用 npx 加载一个恶意包。新机制会递归检查所有被引用的 Action 仓库的 star 数量、最新提交时间及维护者信誉。如果某 Action 过去 60 天无更新,将被降权为“可疑”

实用建议:如何平稳过渡

如果你不想让团队在日常开发中频繁遭遇审批弹窗,可以主动采取以下优化措施:

  1. 锁定 Action 版本,丢弃 main 标签:在 uses: 中明确指定 @v1.2.3 这样的 commit 哈希或语义化版本,避免使用浮动标签,这样 GitHub 会判定为“稳定引用”。
  2. 自定义 trusted-secrets 白名单:在仓库 Settings -> Secrets 中,逐一标记哪些密钥可以被外部 PR 使用。通常,将 DEPLOY_KEY 设为仅内部使用,而将 PUBLIC_TEST_TOKEN 设为可信任。
  3. 启用“仅审批首次贡献者”:在 Actions -> General 中开启“Require approval for first-time contributors”。这既能拦截绝大部分恶意傀儡账号,又不会干扰老贡献者的节奏。
  4. 设置审批提醒:在团队 Slack 或钉钉群中,通过 GitHub App 订阅“workflow approval requested”事件,确保维护者能在 30 分钟内响应,避免因审批延迟拖延发版进度。

行动号召

安全是动态的博弈,这次升级只是起点。我建议你立即花 10 分钟做两件事:第一,导出你当前所有仓库的 Actions 运行日志,检查是否有未经过审批但执行了网络请求的工作流;第二,与团队约定一套“工作流变更评审”流程,就像 Code Review 一样,把 .github/workflows/ 的改动视为生产级变更。

如果你已经遭遇过恶意 PR 的骚扰,或者对新审批机制有独特体验,欢迎在评论区分享你的应对策略。让我们共同构建更干净的 CI/CD 生态。


免责声明:本文是基于 GitHub 官方安全公告及行业公开数据进行的推测与整合,所有案例和具体策略均为演示用途,不构成对 GitHub 实际产品功能的法律或技术承诺。实际功能请以 GitHub 官方文档及更新日志为准。在实施任何安全策略前,请务必在测试仓库中验证其影响。