跳至主要内容

AWS CodeBuild 存在内存转储问题

公告 ID:AWS-2025-016
范围:AWS
内容类型:重要
发布日期:2025 年 7 月 25 日下午 6:00(太平洋夏令时)

描述

AWS CodeBuild 是一项完全托管的按需持续集成服务,可编译源代码、运行测试以及生成可供部署的软件包。

安全研究人员报告了 CodeBuild 的一个问题,在缺乏足够的存储库控制和凭证范围界定的情况下,威胁行为者可以利用该问题漏洞来进行未经批准的代码修改。研究人员演示了威胁行为者如何提交拉取请求(PR),如果通过自动 CodeBuild 构建流程执行该请求,则可能会在 CodeBuild 构建环境中通过内存转储提取源代码存储库(如 GitHub、BitBucket 或 GitLab)的访问令牌。如果该访问令牌具有写入权限,则威胁行为者可以向该存储库提交恶意代码。CodeBuild 的所有区域都存在此问题。

在调查过程中,我们发现一位威胁行为者利用该技术提取了 AWS Toolkit for Visual Studio Code 和适用于 .NET 的 AWS SDK 存储库的源代码存储库访问令牌。我们已为此问题分配了编号 CVE-2025-8217,有关更多信息,请参阅 AWS 安全公告 AWS-2025-015

CodeBuild 需要源代码存储库凭证来访问存储库内容、为自动构建创建 Webhooks 以及代表您执行构建。如果 PR 提交者获取了 CodeBuild 的存储库凭证,他们可能会获得超出正常访问级别的高级权限。根据客户在 CodeBuild 中授予的权限,这些凭证可能允许创建 Webhook 等高级权限(CodeBuild 需要该权限才能与源代码存储集成并设置自动构建或向存储库提交代码)。

要确认此问题是否被不受信任的贡献者利用,建议您查看 git 日志(如 GitHub 日志),并留意授予 CodeBuild 的凭证是否存在异常活动。

如果我们有其他信息要分享,我们将更新此公告。

解决方案

CodeBuild 已在使用非特权模式的容器构建中增加了针对内存转储的额外防护措施。但是,由于构建执行的是贡献者在构建环境中提交的代码,因此他们能够访问构建环境可访问的所有资源。因此,我们强烈建议客户不要使用来自不受信任的存储库贡献者的自动 PR 构建。对于希望继续支持自动构建不受信任的贡献的公共存储库,建议使用 CodeBuild 中的自托管 GitHub Actions 运行器功能,因为此功能不受此问题影响。

要禁用来自不受信任的贡献者的 PR 自动构建,可采取以下任一方法:

  1. 在 CodeBuild 控制台中取消勾选“每次将代码变更推送到存储库时重新构建”,以禁用 Webhook 构建;或
  2. 将 Webhook 事件筛选器设置为不允许来自拉取请求事件的自动构建;或
  3. 将 Webhook 参与者筛选器设置为仅允许来自可信用户的拉取请求构建

如果客户对不受信任的贡献者的拉取请求使用自动构建功能,且提供给 CodeBuild 环境的凭证或访问令牌具有写入权限,建议轮换这些凭证。一般情况下,建议审查写入权限,除非绝对必要,否则应撤销这些权限。

参考

CVE-2025-8217
AWS-2025-015

致谢

感谢中国科学院信息工程研究所的研究人员通过协调漏洞披露流程就此问题开展合作。

如有任何安全问题或疑虑,请发送电子邮件至 aws-security@amazon.com