Featured image of post AWS CodeBuild内存转储漏洞分析与修复方案

AWS CodeBuild内存转储漏洞分析与修复方案

本文详细分析AWS CodeBuild服务中存在的内存转储安全漏洞,攻击者可通过拉取请求提取源码仓库访问令牌,导致未授权代码修改。文章包含漏洞影响范围、技术原理和具体修复方案,帮助用户加强CI/CD管道安全。

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 设计