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 runners功能,因为它不受此问题影响。
要禁用来自不受信任贡献者的PR的自动构建,请采取以下任一方法:
- 在CodeBuild控制台中取消选中“每次代码更改推送到此仓库时重建”来禁用Webhook构建,或
- 设置Webhook事件过滤器以不允许来自拉取请求事件的自动构建,或
- 设置Webhook参与者过滤器以仅允许来自受信任用户的拉取请求构建
如果客户对不受信任的贡献者使用PR的自动构建功能,并且提供给CodeBuild环境的凭证或访问令牌具有写入权限,我们建议轮换这些凭证。通常,我们建议审查写入权限并撤销它们,除非绝对必要。
参考
- CVE-2025-8217
- AWS-2025-015
致谢
我们要感谢中国科学院信息工程研究所的研究人员通过协调漏洞披露流程在此问题上的合作。
如有任何安全问题或疑虑,请发送电子邮件至aws-security@amazon.com。