IPBUF安全漏洞报告
English
CVE-2026-34041 CVSS 9.8 严重

CVE-2026-34041 act环境变量注入漏洞

披露日期: 2026-03-31

漏洞信息

漏洞编号
CVE-2026-34041
漏洞类型
环境变量注入
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
act

相关标签

环境变量注入CWE-77actGitHub ActionsRCECVE-2026-34041

漏洞概述

act是一个允许在本地运行GitHub Actions的开源项目。在0.2.86版本之前,该软件无条件地处理已弃用的::set-env::和::add-path::工作流命令,而这些命令因存在环境注入风险已在官方环境中被禁用。由于该漏洞,当工作流步骤将未受信任的数据输出到标准输出时,攻击者能够注入特定的命令格式,从而为作业中随后的所有步骤设置任意环境变量或篡改PATH路径。这种环境变量注入漏洞可能导致敏感信息泄露或执行恶意操作,对系统安全性构成严重威胁。

技术细节

该漏洞的根源在于act项目对GitHub Actions旧版工作流命令的向后兼容处理不当。具体而言,GitHub曾使用::set-env::和::add-path::作为特殊的命令格式,允许工作流步骤动态设置环境变量。然而,这种机制被证实存在严重的安全隐患,因为标准输出通常包含不可信的数据。在act受影响的版本中,解析器在处理步骤输出时,未将此类命令列入黑名单或默认禁用。攻击者利用这一点,只需控制一个步骤的输出内容,插入形如::set-env:: name=GITHUB_TOKEN::secret_value的字符串。act在捕获stdout时会解析该字符串,并在当前作业的上下文中执行环境变量的修改。更危险的是修改PATH环境变量,这可能导致后续合法步骤加载并执行攻击者提供的恶意脚本或二进制文件,从而在运行act的主机上实现远程代码执行(RCE)。这属于典型的通过注入控制流指令进行的供应链攻击或本地提权场景。

攻击链分析

STEP 1
准备工作流
攻击者创建或修改一个GitHub Actions工作流文件,其中包含一个步骤,该步骤会将不受信任的数据(或特制的恶意字符串)输出到标准输出。
STEP 2
执行工作流
受害者或开发者在本地使用受影响版本的act工具运行该工作流。
STEP 3
解析输出
act工具执行工作流步骤,捕获标准输出。由于漏洞存在,act解析器将输出的字符串::set-env::或::add-path::识别为指令而非普通文本。
STEP 4
环境篡改
act执行注入的指令,为当前作业的后续步骤设置恶意环境变量或修改PATH路径。
STEP 5
达成攻击
后续步骤在修改后的环境中运行,可能加载恶意库、执行错误命令或泄露机密信息,导致系统被攻陷。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
name: POC for CVE-2026-34041 on: push jobs: vulnerable_job: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Exploit Step (Echo malicious command) run: | # Injecting a malicious environment variable via stdout echo "::set-env:: name=MALICIOUS_VAR::pwned" echo "PATH has been modified or variable set" - name: Verification Step run: | # This step will see the injected variable echo "MALICIOUS_VAR is $MALICIOUS_VAR" if [ "$MALICIOUS_VAR" == "pwned" ]; then echo "VULNERABILITY CONFIRMED" fi

影响范围

act < 0.2.86

防御指南

临时缓解措施
请立即将act工具升级到0.2.86或更高版本。在升级之前,严格审查所有GitHub Actions工作流文件,确保没有任何步骤将未经验证的用户输入或外部数据直接输出到标准输出,以防止命令注入攻击。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表