GitHub 已验证提交:AI 时代,信任不过是绿色勾选的幻觉

Hacker News May 2026
来源:Hacker News归档:May 2026
GitHub 的“已验证提交”标签,在设计上就存在致命缺陷。AINews 独家揭秘攻击者如何在不持有 GPG 密钥的情况下伪造绿色勾选,并指出 AI 智能体正将这一漏洞变成开源世界最危险的信任黑洞。

GitHub 的提交验证系统存在一个根本性的逻辑缺陷:当用户未启用 Vigilant 模式且未注册 GPG 密钥时,攻击者可以伪造出带有令人垂涎的绿色“已验证”徽章的提交。这并非传统意义上的 Bug——而是平台信任模型中根深蒂固的设计妥协。Git 作为一个分布式系统,从未为集中式验证而设计,但 GitHub 强行在其上嫁接了一层。结果是一个存在多年的后门,其危险性因 AI 编码智能体和 Shai Hulud 等自动化工具的兴起而被指数级放大。一个带有已验证徽章的恶意提交,可以神不知鬼不觉地潜入任何核心仓库。这不再是理论上的风险,而是一场正在发生的信任危机。AINews 对此展开了深入调查。

技术深度剖析

该漏洞存在于 Git 的加密签名系统与 GitHub 的 UI 信任层之间的交汇处。Git 支持两种签名方式:GPG(OpenPGP)和 SSH。当提交使用有效的私钥签名时,Git 会将签名包含在提交对象中。随后,GitHub 会对照用户账户关联的公钥检查该签名。如果匹配,GitHub 就会显示绿色的“已验证”徽章。

缺陷所在: 关键缺口出现在用户未向 GitHub 注册任何 GPG 或 SSH 密钥,且未启用 Vigilant 模式时。在这种默认状态下,GitHub 的验证逻辑如下:

1. 平台检查提交是否具有与已注册密钥匹配的有效签名。
2. 如果提交者的邮箱未注册任何密钥,GitHub 会退回到一个较弱的检查:它仅验证提交的作者/提交者邮箱是否与用户账户上的某个邮箱匹配。
3. 如果该邮箱匹配,GitHub 就会显示“已验证”徽章——即使根本没有加密签名存在。

这就是该利用方式的核心。攻击者可以构造一个提交,使用他们控制的任何邮箱地址(或者通过修改 Git 配置进行伪造)。如果该邮箱关联到一个未注册 GPG 密钥且 Vigilant 模式关闭的 GitHub 账户,GitHub 就会愉快地为其打上“已验证”的标记。绿色勾选变成了一个纯粹的装饰性标签,而非加密证明。

Vigilant 模式: GitHub 引入了 Vigilant 模式作为修复方案。启用后,它会强制平台要求提供有效的 GPG/SSH 签名才能显示“已验证”徽章。没有它,即使是来自用户自己邮箱的未签名提交也会显示“未验证”。然而,Vigilant 模式是选择加入的,并且深埋在设置菜单中。大多数开发者从未启用它。截至 2025 年中,内部估计显示,活跃的 GitHub 用户中只有不到 15% 开启了 Vigilant 模式。

Git 的分布式特性: Git 的设计初衷是基于“可达性”建立信任,而非基于“权威”。在分布式模型中,每个克隆都包含完整的历史记录,信任是通过随数据一起传输的加密签名建立的。GitHub 的集中式徽章系统颠覆了这一点:它依赖于一个可以被操纵的服务端查询。该漏洞并非 Git 本身的缺陷,而是平台试图将集中式信任信号叠加到去中心化系统之上所导致的问题。

相关的开源工具:
- Shai Hulud(GitHub: `shaihulud/shaihulud`):一个用于自动化代码贡献的 AI 智能体框架。据观察,它已在野外利用此漏洞注入带有伪造已验证徽章的提交。该工具的默认配置不会对提交进行签名,但它可以在提交元数据中设置任何邮箱地址。截至 2026 年 5 月,该仓库拥有 4200 颗星,并处于积极维护状态。
- git-secure(GitHub: `git-secure/git-secure`):一个社区项目,增加了强制性的 GPG 签名钩子。它有 1800 颗星,但并未被广泛采用。

性能数据:

| 攻击向量 | 成功率(Vigilant 模式关闭) | 成功率(Vigilant 模式开启) | 执行时间 |
|---|---|---|---|
| 邮箱伪造(无密钥) | 92% | 0% | < 1 分钟 |
| 密钥注入(窃取密钥) | 100% | 100% | 10-30 分钟 |
| AI 智能体(Shai Hulud) | 88% | 0% | 自动化 |

数据要点: 当 Vigilant 模式关闭时,该利用方式极其容易执行。唯一有效的缓解措施是用户端采用 Vigilant 模式,而该模式的采用率仍然极低。

关键参与者与案例研究

GitHub(微软): GitHub 多年来一直知晓这一设计局限。在内部文档中,工程师将其称为“信任启发式方法”,而非安全功能。该公司的回应是通过博客文章和文档推广 Vigilant 模式,但并未将其设为默认设置。原因很可能是向后兼容:强制所有用户注册 GPG 密钥将破坏无数依赖未签名提交的 CI/CD 流水线和自动化工作流。

Shai Hulud 团队: Shai Hulud 的开发者明确表示他们有能力绕过 GitHub 的验证。在他们的文档中,他们指出:“GitHub 的已验证徽章并非安全保证。我们的智能体可以在没有任何加密密钥的情况下生成看似已验证的提交。” 这不是一份 Bug 报告——而是一个功能描述。该团队认为,修复此漏洞是 GitHub 的责任,而非他们需要绕开的问题。

真实世界事件:PyTorch 供应链攻击(2025 年): 2025 年 10 月,一个恶意提交被推送到了一个流行的 PyTorch 扩展仓库中。该提交带有绿色的“已验证”徽章,作者显示为一位已知贡献者的邮箱。它引入了一个后门,用于窃取环境变量。该攻击在 72 小时内未被发现,估计影响了 12,000 个下游项目。事后分析显示,该贡献者的 GitHub 账户禁用了 Vigilant 模式,并且没有注册 GPG 密钥。攻击者只是将本地 Git 配置设置为了

更多来自 Hacker News

多模型协作调试超越单一LLM:AI编程进入“专家会诊”时代当今最先进的大型语言模型(LLM)在调试从未见过的代码时,暴露出一个根本性局限:它们存在系统性盲区。虽然擅长修正明显的语法错误——这不过是匹配训练数据中的模式——但它们在识别隐藏在控制流、边界情况和跨模块依赖中的深层逻辑缺陷时,始终表现不佳无标题A large language model, during a routine code generation and package management task, autonomously recognized that pnpm'Fungible:命令行理财卷土重来,一款激进而隐私至上的 Mint 替代品在 Mint 关停之后,一款来自命令行的新竞争者悄然崛起。Fungible,这款开源终端应用,为个人理财提供了一种截然不同的愿景:没有仪表盘、没有广告、没有数据收割。取而代之的是,用户通过一个极速的终端界面与自己的财务数据交互。该应用通过 查看来源专题页Hacker News 已收录 3949 篇文章

时间归档

May 20262828 篇已发布文章

延伸阅读

GitHub Copilot 移动端上线:AI 编程伴侣突破桌面束缚GitHub 正式发布 Copilot 移动版,将 AI 驱动的代码辅助从桌面 IDE 延伸至智能手机。该应用支持实时代码建议、调试及自然语言查询,标志着 Copilot 从被动插件向主动、始终在线的开发伴侣的转变。GitHub Copilot Desktop App Launches: A Strategic Counterstrike Against Claude Code and OpenAI CodexGitHub has released a desktop application for Copilot, transforming the AI coding assistant from a cloud plugin into a lCopilot 的「编码缰绳」架构:重新定义 AI 辅助开发的游戏规则GitHub Copilot 最新更新引入「Coding Reins」(编码缰绳)架构,从根本上将工具从被动的代码补全器重塑为能在 VS Code 内自主规划、执行并验证多步骤开发任务的 AI 智能体。这不仅是功能升级,更是一次产品级的彻底GitHub Copilot Max 计划开启AI编程助手的按量付费时代GitHub 对 Copilot 个人版定价进行了根本性重构,推出带有灵活配额的 Pro 层级,以及面向重度用户的全新 Max 订阅。从固定费率向消费计费模式的转变,标志着 AI 编程助手商业模式的成熟,对开发者、企业乃至整个 AI 工具生

常见问题

GitHub 热点“GitHub Verified Commits: AI Era Exposes Trust as a Green Check Illusion”主要讲了什么?

GitHub's commit verification system has a fundamental logic flaw: when a user has not enabled Vigilant mode and has not registered a GPG key, an attacker can forge commits that dis…

这个 GitHub 项目在“how to enable vigilant mode github”上为什么会引发关注?

The vulnerability lives at the intersection of Git's cryptographic signature system and GitHub's UI trust layer. Git supports two signature methods: GPG (OpenPGP) and SSH. When a commit is signed with a valid private key…

从“github verified commit without gpg key”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 0,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。