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

伯南克加入Anthropic信托:当AI安全遇上央行系统性风险手册在一项重新定义AI安全架构的举措中,Anthropic任命前美联储主席本·伯南克加入其监管信托——这是一个独立于公司治理结构之外、对安全决策拥有约束力的治理机构。这并非象征性的董事会席位;该信托有权否决模型发布、要求安全干预,并凌驾于商业优黑盒透视:新工具将LLM推理过程映射为3D几何结构AINews独家获取了一款新型可视化平台的访问权限,该平台能将大语言模型的内部推理过程动态渲染为三维语义景观。与静态的注意力热力图不同,该工具追踪每个token在模型各层中的嵌入轨迹——展示路径如何分支、汇聚,以及在对应事实错误或幻觉的节点Transformer无师自通井字棋:涌现推理的静默革命在一项挑战AI架构基本假设的标志性实验中,研究人员证明,一个标准的Transformer模型仅通过数据训练,无需任何显式规则编码,就能掌握井字棋的完整策略。该模型在数百万局游戏序列上训练后,其内部注意力头自发形成了棋盘位置编码、线路检测通路查看来源专题页Hacker News 已收录 5670 篇文章

时间归档

May 20263028 篇已发布文章

延伸阅读

GitHub AI的“礼貌漏洞”:一声“请”竟能泄露私有代码GitHub AI编程助手中发现一项严重安全漏洞:攻击者只需使用礼貌、自然的对话语气,就能从私有仓库中提取敏感代码。AINews深入剖析这一“礼貌漏洞”的架构根源,及其对AI驱动开发工具的未来影响。GitLost攻击曝光致命缺陷:一条提示词即可劫持GitHub AI代理一种名为GitLost的新型攻击,精准利用了GitHub AI编程代理的盲区:它们无法区分善意请求与恶意指令。研究人员仅通过一条精心设计的提示词,便诱使代理从私有仓库中窃取API密钥与专有代码,绕过了所有预设的权限控制。GitHub的游说棋局:当“开源”在加州可能失去法律牙齿GitHub正联合多家生成式AI巨头,推动加州立法者为AI监管中的“开源”设立特殊豁免。但真正的意图,是将“开源”偷换为“公开可用”,从而彻底瓦解GPL、Apache等许可证的法律约束力。Five Years of GitHub Copilot: How AI Rewrote the Rules of ProgrammingFive years ago, GitHub Copilot launched as an AI pair programmer, sparking debates about the future of coding. Today, it

常见问题

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,这说明它在开源社区具有较强讨论度和扩散能力。