文章总结: AWSCodeBuild配置错误引发供应链攻击风险,Wiz命名为CodeBreach。由于webhook过滤器正则缺少起止锚点,攻击者可利用可预测的GitHub用户ID触发构建,窃取管理员令牌并篡改代码库,威胁全球AWS环境。AWS已修复漏洞并轮换凭证,建议加强CI/CD流水线权限控制与正则校验。 综合评分: 85 文章分类: 漏洞分析,供应链安全,云安全
AWS CodeBuild 配置错误使 GitHub 代码库面临潜在的供应链攻击风险
原创
ZM ZM
暗镜
2026年1月21日 08:00 北京
Amazon Web Services (AWS) CodeBuild的一个严重配置错误可能导致云服务提供商自己的 GitHub 存储库(包括其 AWS JavaScript SDK)被完全接管,从而使每个 AWS 环境都面临风险。
该漏洞被云安全公司 Wiz 命名为CodeBreach。AWS在 2025 年 8 月 25 日负责任地披露该漏洞后,于 2025 年 9 月修复了该问题。
研究人员 Yuval Avrahami 和 Nir Ohfeld 在一份与 The Hacker News 分享的报告中表示:“通过利用 CodeBreach 漏洞,攻击者可以注入恶意代码,从而发起平台范围的入侵,这不仅可能影响无数依赖于 SDK 的应用程序,还可能影响控制台本身,从而威胁到每个 AWS 账户。”
Wiz 指出,该缺陷是持续集成 (CI) 管道中的一个弱点造成的,该弱点可能使未经身份验证的攻击者能够入侵构建环境,泄露 GitHub 管理员令牌等特权凭据,然后使用这些凭据将恶意更改推送到受感染的存储库,从而为供应链攻击创造途径。
换句话说,这个问题破坏了AWS 引入的Webhook 过滤器,这些过滤器旨在确保只有特定事件才会触发 CI 构建。例如,AWS CodeBuild 可以配置为仅当代码更改提交到特定分支,或者 GitHub 或 GitHub Enterprise Server 帐户 ID(也称为 ACTOR_ID 或 actor ID)与正则表达式模式匹配时才触发构建。这些过滤器用于防止不受信任的拉取请求。
此次配置错误影响了以下由 AWS 管理的开源 GitHub 存储库,这些存储库配置为在收到拉取请求时运行构建 –
- aws-sdk-js-v3
- aws-lc
- 亚马逊 Corretto 加密提供商
- awslabs/开放数据注册表
这四个项目都实现了 ACTOR_ID 过滤器,但它们存在一个“致命缺陷”:它们缺少两个字符——起始符 ^ 和结束符 $——这两个字符是生成精确正则表达式 (regex) 匹配所必需的。因此,该正则表达式模式允许任何 GitHub 用户 ID(只要是已批准 ID 的超字符串,例如 755743)绕过过滤器并触发构建。
由于 GitHub 按顺序分配数字用户 ID,Wiz 表示,他们能够预测新的用户 ID(目前为 9 位数)大约每五天就会“超越”一位受信任维护者的六位数 ID。这一洞察,结合使用GitHub Apps来自动化创建应用(进而创建一个相应的机器人用户),使得通过触发数百个新的机器人用户注册来生成目标 ID(例如 226755743)成为可能。
有了攻击者 ID,攻击者现在可以触发构建并获取 aws-sdk-js-v3 CodeBuild 项目的 GitHub 凭证,即属于 aws-sdk-js-automation 用户的个人访问令牌 (PAT),该用户对该存储库拥有完全的管理权限。
攻击者可以利用这种提升的访问权限,直接将代码推送到主分支,批准拉取请求,并窃取存储库的机密信息,最终为供应链攻击铺平道路。
AWS在今天发布的一份公告中表示: “上述存储库为 AWS CodeBuild webhook 过滤器配置的正则表达式旨在限制受信任的参与者 ID,但这些正则表达式不足,导致可预测地获取的参与者 ID 能够获得受影响存储库的管理权限。”
“我们可以确认,这些是这些存储库的 webhook actor ID 过滤器中特定于项目的配置错误,而不是 CodeBuild 服务本身的问题。”
亚马逊还表示,已修复已发现的问题,并实施了额外的缓解措施,例如凭证轮换以及采取措施保护包含 GitHub 令牌或内存中任何其他凭证的构建流程。亚马逊进一步强调,没有发现任何证据表明 CodeBreach 漏洞已被实际利用。
为了降低此类风险,必须确保不受信任的贡献不会触发特权 CI/CD 流水线,方法是启用新的Pull Request Comment Approval构建门,使用CodeBuild 托管的运行器通过 GitHub 工作流管理构建触发器,确保 webhook 过滤器中的正则表达式模式已锚定,为每个 CodeBuild 项目生成唯一的 PAT,将 PAT 的权限限制为所需的最低权限,并考虑使用专用的非特权 GitHub 帐户进行 CodeBuild 集成。
Wiz 的研究人员指出:“这个漏洞是攻击者为何瞄准 CI/CD 环境的典型案例:一个不易察觉的细微缺陷,却能被利用造成巨大影响。复杂性、不受信任的数据以及特权凭证的结合,为无需事先访问即可发动高影响攻击创造了完美的条件。”
这并非 CI/CD 流水线安全首次受到关注。去年,Sysdig 的一项研究详细阐述了如何利用与pull_request_target 触发器关联的不安全 GitHub Actions 工作流,通过从 fork 发起的单个 pull request 泄露特权 GITHUB_TOKEN,从而未经授权访问数十个开源项目。
Orca Security 在 2025 年 9 月发布的一份类似的两部分 分析报告发现,谷歌、微软、英伟达和其他财富 500 强公司的项目中存在易受攻击的pull_request_target 工作流,攻击者可以利用这些漏洞运行任意代码、窃取敏感信息,并将恶意代码或依赖项推送到受信任的分支。这种现象被称为 pull_request_nightmare(pull_request_nightmare)。
安全研究员 Roi Nisimi 指出:“通过滥用 pull_request_target 触发的错误配置的工作流,攻击者可以从不受信任的派生拉取请求升级到在 GitHub 托管的甚至自托管的运行器上执行远程代码 (RCE)。
“使用 pull_request_target 的 GitHub Actions 工作流绝不应该在未进行适当验证的情况下检出不受信任的代码。一旦检出,它们就面临完全被攻破的风险。”
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:暗镜 ZM ZM《AWS CodeBuild 配置错误使 GitHub 代码库面临潜在的供应链攻击风险》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论