IPBUF安全漏洞报告
English
CVE-2026-42603 CVSS 8.8 高危

CVE-2026-42603 OWASP BLT 远程代码执行漏洞

披露日期: 2026-05-11

漏洞信息

漏洞编号
CVE-2026-42603
漏洞类型
远程代码执行 (RCE)
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
OWASP BLT

相关标签

RCEOWASP BLTGitHub ActionsCI/CDSupply Chain

漏洞概述

OWASP BLT是一个综合性的QA测试和漏洞披露平台。在2.1.2版本之前,该项目的GitHub Actions工作流存在严重安全配置错误。具体而言,`.github/workflows/pre-commit-fix.yaml`文件使用了具有特权的`pull_request_target`触发器,但未正确隔离代码执行环境。该工作流直接从攻击者的Fork仓库检出并执行代码,导致攻击者可通过提交恶意的Pull Request,在目标仓库的高权限上下文中执行任意命令,从而实现远程代码执行。

技术细节

该漏洞的核心在于GitHub Actions中`pull_request_target`事件的不安全使用。`pull_request_target`设计初衷是允许工作流在处理来自Fork的PR时,能够访问基础仓库的Secrets和写入权限。然而,如果工作流脚本中使用`actions/checkout`检出代码时,默认或错误地引用了PR的源代码(即攻击者的分支),则会将未受信任的代码混入受信任的运行环境中。在OWASP BLT的案例中,工作流检出了攻击者的代码并执行了其中的脚本或命令。由于工作流继承了目标仓库的GITHUB_TOKEN(通常具有写权限),攻击者可以利用此漏洞篡改仓库代码、窃取敏感信息或进行供应链投毒。

攻击链分析

STEP 1
1. 环境准备
攻击者Fork目标仓库(OWASP BLT),并在本地创建恶意分支或修改文件,植入恶意代码或脚本。
STEP 2
2. 提交Pull Request
攻击者向目标仓库提交Pull Request。虽然PR尚未合并,但这一操作会触发GitHub Actions。
STEP 3
3. 触发特权工作流
由于配置了`pull_request_target`,GitHub Actions以目标仓库的写入权限(GITHUB_TOKEN)启动工作流运行。
STEP 4
4. 检出恶意代码
工作流执行`actions/checkout`步骤,由于配置错误,它从攻击者的Fork仓库检出代码,而不是受信任的目标仓库代码。
STEP 5
5. 执行攻击载荷
工作流继续运行后续步骤(如运行脚本),此时执行的是攻击者植入的恶意代码,导致RCE。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Vulnerable Workflow Concept (.github/workflows/pre-commit-fix.yaml) name: Pre-commit Fix on: pull_request_target: # Triggers with high privileges from forked PRs jobs: run-fix: runs-on: ubuntu-latest steps: - name: Checkout PR code uses: actions/checkout@v2 with: # VULNERABILITY: Checking out code from the attacker's branch (pull_request.head.ref) # instead of the base branch. This allows executing untrusted code. ref: ${{ github.event.pull_request.head.sha }} repository: ${{ github.event.pull_request.head.repo.full_name }} - name: Execute Script run: | # The attacker can modify this script in their fork to run arbitrary commands chmod +x .github/scripts/fix.sh .github/scripts/fix.sh

影响范围

OWASP BLT < 2.1.2

防御指南

临时缓解措施
建议立即升级到2.1.2版本。若无法立即升级,应暂时禁用相关的GitHub Actions工作流文件(如`.github/workflows/pre-commit-fix.yaml`),或移除仓库对第三方Fork的自动构建触发机制,以防止被利用。

参考链接