你以为检测依赖漏洞只能靠安全扫描?今天 GitHub 用一个权限把这件事彻底最小化了

写过 CI 的人都踩过这个坑——Dependabot 告警每次都要开 security-events 写权限才能读,今天 GitHub 用一个权限把这件事彻底最小化了。

这个问题困扰了团队很久

你写了一个 CI workflow,想在每次构建时顺便检查一下项目有没有已知漏洞。按理说这是一件纯读的操作——Dependabot 告诉你哪里有风险,你只需要知道就够了。

但以前不是这样的。

以前你只能给 GITHUB_TOKEN 加上 security-events: write 权限。不是 read,是 write。这意味着这个 workflow 不仅能读漏洞数据,还能写、关闭、甚至忽略安全事件。

write 权限的 workflow token 理论上可以被攻击者利用来做更多事情。GitHub 自己都建议能用 read 就不要用 write,但以前你没得选。

今天这件事变了

GitHub 给 GITHUB_TOKEN 新增了一个 vulnerability-alerts 权限,read 值,2026-09-03 正式公告。

现在你可以这样写:

permissions:
  vulnerability-alerts: read

workflow 就可以读 Dependabot 的漏洞数据,但不能写入任何安全事件。写权限?那不存在了。

实际影响

最直接受益的是做依赖安全检查的 workflow。

以前最小权限配置大概是:

permissions:
  security-events: write  # 过大了

现在可以精确到:

permissions:
  vulnerability-alerts: read

只拿你需要的那一个,读完就走。GitHub 官方文档明确说,这个权限就是给只关心是否存在漏洞、但不关心如何处理的 workflow 准备的。

另外,vulnerability-alerts: none 也是一个合法值。如果你的 workflow 根本不需要碰 Dependabot 数据,显式声明 none 比什么都不写更安全。

企业视角:这个改动说明什么

GitHub 一直在推最小权限原则,从 actions: writeid-token: write 再到现在的 vulnerability-alerts。趋势很明显:安全策略正在往更细粒度的 token 级别收敛,不再是二选一的局面。

下一步

  1. 打开你的 .github/workflows/ 目录
  2. 搜索 security-events: write 的 workflow 文件
  3. 判断这个 workflow 是否只是读漏洞数据、但不修改任何安全事件
  4. 如果是,替换成 vulnerability-alerts: read

官方公告:github.blog/changelog/2026-09-03

评论区

0 条评论

登录后可评论。