就差两个字符!亚马逊云科技自家 GitHub 仓库险被攻破,供应链安全亮红灯

  • 2026-01-30
    北京
  • 本文字数:1353 字

    阅读完需:约 4 分钟

亚马逊云科技近日发布了一则安全公告,确认其部分由亚马逊云科技管理的热门开源 GitHub 仓库存在配置问题。该高危漏洞被命名为 CodeBreach,可能导致恶意代码被引入仓库,甚至使依赖 AWS CodeBuild 的仓库遭到接管。

Wiz Security 的研究团队发现,一部分仓库在为 AWS CodeBuild 配置 Webhook 过滤规则时,使用了正则表达式来限制可信的触发者 ID,但这些过滤规则并不充分,导致攻击者可以利用可预测获取的 actor ID 获得管理员权限。此次受影响、并对 AWS Console 供应链构成风险的仓库共有四个,分别是:AWS SDK for JavaScript v3、通用加密库 aws-lcamazon-corretto-crypto-provider,以及 awslabs/open-data-registry(一个可通过 AWS 资源访问的公开数据集仓库)。

Wiz 的漏洞研究员 Yuval Avrahami 与 Wiz 漏洞研究负责人 Nir Ohfeld 解释称:

该漏洞源于仓库中 AWS CodeBuild CI 流水线在处理构建触发条件时存在一个极其细微的缺陷。正则表达式过滤规则中仅仅缺失了两个字符,就足以让未认证的攻击者进入构建环境,并泄露高权限凭据。

具体而言,用于校验哪些 GitHub 用户可以触发构建的 ACTOR_ID 过滤规则,缺少了起始符号(^)和结束符号($),这使得任何只要在用户 ID 中“包含”受信任 ID 作为子串的用户,都可以绕过限制。由于 GitHub 用户 ID 是按顺序分配的,研究人员通过创建自动化的 GitHub App,从构建缓存中捕获凭据,最终获得了受影响仓库的完整管理员权限。鉴于 AWS SDK for JavaScript 被打包进 AWS Console,一旦攻击成功,可能会危及无数 AWS 账户所依赖的控制台供应链。

亚马逊云科技在确认漏洞存在并感谢 Wiz Security 研究团队发现该问题的同时表示,其他由亚马逊云科技 管理的开源仓库并不存在类似的错误配置。受影响仓库中的问题在首次披露后的 48 小时内即已完成修复。Avrahami 与 Ohfeld 进一步指出:

这一问题延续了近年来多起供应链攻击中常见的模式,例如 Nx S1ngularity 事件:细微的 CI/CD 配置错误,却可能引发影响巨大的攻击。就在去年 7 月,一名威胁行为者还曾滥用类似的 CodeBuild 问题,对 Amazon Q VS Code 扩展的用户发起供应链攻击。

随着此类攻击日益频繁,Wiz 呼吁各组织进一步加固自身的 CI/CD 流水线,确保所有基于 ACTOR_ID 的访问控制都经过严格限定与正确配置,仅允许白名单中的身份触发构建。Reddit 用户 hashkent 评论道:

现在感觉要保护源代码变得越来越难了,外面的世界真的有点吓人。

这一事件以及近期的其他攻击,再次凸显了一个重要原则:绝不能让不受信任的贡献触发具有高权限的 CI/CD 流水线。The Duckbill Group 首席云经济学家 Corey Quinn 也评论称:

这是过去一年里第二起重大的 CodeBuild 安全失误了。那边是不是“水土有问题”?友情提示:如果连亚马逊云科技都没能把自家安全配置好,你可能更应该好好检查一下自己的。

据披露,CodeBreach 漏洞最早由 Wiz 于 8 月 25 日向亚马逊云科技报告。亚马逊云科技随后在 8 月 27 日为存在问题的 actor ID 过滤规则补齐了锚点,并吊销了 aws-sdk-js-automation 的个人访问令牌。9 月,亚马逊云科技 还进一步加固了安全措施,以防止非特权构建通过内存转储方式访问项目凭据。不过,该事件直到 1 月 15 日才正式对外公开。

原文链接:

https://www.infoq.com/news/2026/01/aws-github-vulnerability/