GitHub PAT写入调试产物 · CVE-2025-24362
漏洞详情
影响摘要
在某些情况下,CodeQL Action在代码扫描工作流运行失败后上传的调试产物可能包含工作流运行时的环境变量,包括任何作为环境变量暴露给工作流的密钥。具有仓库读取权限的用户能够访问此产物,从而获取环境中的任何密钥。
对于某些受影响的工作流运行,调试产物中暴露的环境变量包括了工作流运行的有效GITHUB_TOKEN,该令牌有权访问运行工作流的仓库,并具有工作流或作业中指定的所有权限。GITHUB_TOKEN在作业完成或24小时(以先到者为准)之前保持有效。
环境变量仅在满足以下所有条件的工作流运行中暴露:
- 配置为扫描Java/Kotlin语言的代码扫描工作流
- 在包含Kotlin源代码的仓库中运行
- 在启用调试产物的情况下运行
- 使用CodeQL Action版本<= 3.28.2,以及CodeQL CLI版本>= 2.9.2(2022年5月)和<= 2.20.2
- 工作流运行在
github/codeql-action/analyze步骤中数据库最终确定之前失败 - 在任何GitHub环境中运行:GitHub.com、GitHub Enterprise Cloud和GitHub Enterprise Server
影响详情
在CodeQL CLI版本>= 2.9.2和<= 2.20.2中,CodeQL Kotlin提取器在为Kotlin代码创建CodeQL数据库的过程中,默认将所有环境变量记录到中间文件中。
这是CodeQL CLI的一部分,由CodeQL Action调用用于分析Kotlin仓库。
在Actions上,记录的环境变量包括GITHUB_TOKEN,该令牌授予对被扫描仓库的权限。
包含环境变量的中间文件在最终确定数据库时被删除,因此不会包含在成功创建的数据库中。但是,如果CodeQL Action在调试模式下调用,它会被包含在上传的调试产物中,用于失败的分析运行。
缓解措施
更新到CodeQL Action版本3.28.3或更高版本,或CodeQL CLI版本2.20.3或更高版本。
补丁
此漏洞已在CodeQL Action版本3.28.3中修复,该版本不再在调试模式下上传数据库产物。
此漏洞将在CodeQL CLI版本2.20.3中修复,在该版本中,所有语言的数据库创建默认不再记录完整环境。
严重程度
高严重性 - CVSS总体评分7.1/10
CVSS v4基础指标
可利用性指标:
- 攻击向量:网络
- 攻击复杂性:低
- 攻击要求:无
- 所需权限:低
- 用户交互:无
脆弱系统影响指标:
- 机密性:高
- 完整性:无
- 可用性:无
弱点
- CWE-215:将敏感信息插入调试代码
- CWE-532:将敏感信息插入日志文件