AWS CodeBuild内存转储漏洞分析与防护指南

本文详细分析AWS CodeBuild服务中存在的内存转储安全漏洞(CVE-2025-8217),攻击者可通过拉取请求提取源码仓库访问令牌,导致未授权代码修改。文章提供完整的漏洞说明和防护措施建议。

AWS CodeBuild内存转储问题

公告ID: AWS-2025-016
范围: AWS
内容类型: 重要
发布日期: 2025年7月25日 下午6:00 PDT

问题描述

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

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

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

CodeBuild需要源代码仓库凭证来访问仓库内容、为自动化构建创建webhook,并代表您执行构建。如果PR提交者获取了CodeBuild的仓库凭证,他们可能获得超出其正常访问权限的提升权限。根据客户在CodeBuild中授予的权限,这些凭证可能允许提升的权限,如webhook创建(CodeBuild需要此功能来与源代码仓库集成并设置自动化构建)或向仓库提交代码。

为确定此问题是否被不受信任的贡献者利用,我们建议审查git日志(例如GitHub日志),并查找授予CodeBuild的凭证的异常活动。

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

解决方案

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

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

  • 在CodeBuild控制台中取消选中"每次代码更改推送到此仓库时重新构建"来禁用webhook构建,或
  • 设置webhook事件过滤器以不允许来自拉取请求事件的自动构建,或
  • 设置webhook参与者过滤器以仅允许来自受信任用户的拉取请求构建

如果客户对不受信任贡献者的PR使用自动构建功能,并且提供给CodeBuild环境的凭证或访问令牌具有写入权限,我们建议轮换这些凭证。通常,我们建议审查写入权限并在非绝对必要的情况下撤销它们。

参考信息

  • CVE-2025-8217
  • AWS-2025-015

致谢

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

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

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计