CVE-2026-22168: OpenClaw: cmd.exe argument smuggling evades approval log
MEDIUMOpenClaw's system.run tool lets authenticated operators submit Windows commands for human approval, but versions before 2026.2.21 only show the reviewer the leading, benign-looking portion of a cmd.exe /c invocation while silently executing attacker-supplied trailing arguments as well — a classic CWE-88 argument injection wrapped in an AI agent's approval workflow. This matters less for who can trigger it (it needs an already-authenticated operator, PR:L) than for what it breaks: the audit trail itself, since the approval log and the actual executed command diverge, meaning post-incident review of a compromised trusted node won't show what really ran. EPSS sits at just 0.4% (67th percentile) with no public exploit, no Nuclei template, and CISA SSVC scored it TRACK — this is not being mass-exploited today. Given only 4 downstream dependents and no KEV listing, prioritize this as a scheduled patch rather than an emergency one, but treat it seriously in any deployment where system.run is exposed to lower-trust operators or CI/CD-style automation: upgrade to OpenClaw >= 2026.2.21 and reconcile OS-level process logs (Sysmon) against OpenClaw's own approval log for any historical mismatches.
What is the risk?
CVSS 6.5 (Medium) reflects a network-reachable, low-complexity flaw requiring only low privileges and no user interaction, but the score (C:H/I:N/A:N) understates the practical exposure — the description confirms actual local command execution on the host, which typically implies integrity/availability impact the vector doesn't capture, likely because the scorer treated 'authorized operator with restricted approval' as the baseline. Exploitation likelihood is low today: EPSS 0.4% (top 67th percentile, not high), no public PoC, no Nuclei template, not in CISA KEV, and CISA's own SSVC decision is TRACK (monitor, not urgent remediation). The real risk driver is trust erosion: any node running an unpatched OpenClaw system.run tool cannot be fully trusted to have an accurate audit trail, which matters disproportionately for AI agent deployments where operators already have broad automation privileges.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| OpenClaw | pip | — | No patch |
Do you use OpenClaw? You're affected.
How severe is it?
What is the attack surface?
What should I do?
1 step-
Upgrade to OpenClaw 2026.2.21 or later, which addresses the underlying argument-injection flaw (see patch commit 6007941f04df1edcca679dd6c95949744fdbd4 in the GHSA advisory). Until patched, restrict which operators/roles can invoke system.run, and if possible disable or tightly allowlist cmd.exe /c invocations that accept operator-supplied trailing arguments. For detection, do not rely solely on OpenClaw's internal approval log — cross-reference OS-level process creation telemetry (Windows Sysmon Event ID 1, command-line auditing) against the approved command text for every system.run execution, flagging any divergence between the two as a potential exploitation attempt. Review historical system.run executions on trusted Windows nodes for suspicious trailing arguments following otherwise-benign approved commands.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-22168?
OpenClaw's system.run tool lets authenticated operators submit Windows commands for human approval, but versions before 2026.2.21 only show the reviewer the leading, benign-looking portion of a cmd.exe /c invocation while silently executing attacker-supplied trailing arguments as well — a classic CWE-88 argument injection wrapped in an AI agent's approval workflow. This matters less for who can trigger it (it needs an already-authenticated operator, PR:L) than for what it breaks: the audit trail itself, since the approval log and the actual executed command diverge, meaning post-incident review of a compromised trusted node won't show what really ran. EPSS sits at just 0.4% (67th percentile) with no public exploit, no Nuclei template, and CISA SSVC scored it TRACK — this is not being mass-exploited today. Given only 4 downstream dependents and no KEV listing, prioritize this as a scheduled patch rather than an emergency one, but treat it seriously in any deployment where system.run is exposed to lower-trust operators or CI/CD-style automation: upgrade to OpenClaw >= 2026.2.21 and reconcile OS-level process logs (Sysmon) against OpenClaw's own approval log for any historical mismatches.
Is CVE-2026-22168 actively exploited?
No confirmed active exploitation of CVE-2026-22168 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-22168?
Upgrade to OpenClaw 2026.2.21 or later, which addresses the underlying argument-injection flaw (see patch commit 6007941f04df1edcca679dd6c95949744fdbd4 in the GHSA advisory). Until patched, restrict which operators/roles can invoke system.run, and if possible disable or tightly allowlist cmd.exe /c invocations that accept operator-supplied trailing arguments. For detection, do not rely solely on OpenClaw's internal approval log — cross-reference OS-level process creation telemetry (Windows Sysmon Event ID 1, command-line auditing) against the approved command text for every system.run execution, flagging any divergence between the two as a potential exploitation attempt. Review historical system.run executions on trusted Windows nodes for suspicious trailing arguments following otherwise-benign approved commands.
What systems are affected by CVE-2026-22168?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, AI agent tool invocation / human-in-the-loop approval workflows, Windows-based agent automation nodes.
What is the CVSS score for CVE-2026-22168?
CVE-2026-22168 has a CVSS v3.1 base score of 6.5 (MEDIUM). The EPSS exploitation probability is 0.41%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0050 Command and Scripting Interpreter AML.T0053 AI Agent Tool Invocation AML.T0074 Masquerading AML.T0112.000 Local AI Agent Compliance Controls Affected
What are the technical details?
Original Advisory
OpenClaw versions prior to 2026.2.21 contain an approval-integrity mismatch vulnerability in system.run that allows authenticated operators to execute arbitrary trailing arguments after cmd.exe /c while approval text reflects only a benign command. Attackers can smuggle malicious arguments through cmd.exe /c to achieve local command execution on trusted Windows nodes with mismatched audit logs.
Exploitation Scenario
An authenticated but lower-privileged OpenClaw operator submits a system.run request rendering as an innocuous command (e.g., 'cmd.exe /c dir') for a human reviewer's approval. Because the approval UI only reflects the leading portion of the command string, the operator appends additional shell arguments or command chaining after the visible text — arguments the reviewer never sees. The reviewer approves what looks benign, but OpenClaw executes the full trailing string via cmd.exe on a trusted Windows node, achieving local command execution. Because the approval-integrity mismatch also affects logging, the audit trail continues to show only the sanitized, approved command, letting the attacker's actual payload evade both real-time review and later incident forensics.
Weaknesses (CWE)
CWE-88 — Improper Neutralization of Argument Delimiters in a Command ('Argument Injection'): The product constructs a string for a command to be executed by a separate component in another control sphere, but it does not properly delimit the intended arguments, options, or switches within that command string.
- [Implementation] Where possible, avoid building a single string that contains the command and its arguments. Some languages or frameworks have functions that support specifying independent arguments, e.g. as an array, which is used to automatically perform the appropriate quoting or escaping while building the command. For example, in PHP, escapeshellarg() can be used to escape a single argument to system(), or exec() can be called with an array of arguments. In C, code can often be refactored from using system() - which accepts a single string - to using exec(), which requires separate function arguments for each parameter.
- [Architecture and Design] Understand all the potential areas where untrusted inputs can enter your product: parameters or arguments, cookies, anything read from the network, environment variables, request headers as well as content, URL components, e-mail, files, databases, and any external systems that provide data to the application. Perform input validation at well-defined interfaces.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N References
Timeline
Related Vulnerabilities
CVE-2026-33579 9.9 OpenClaw: scope bypass escalates low-priv to admin
Same package: openclaw CVE-2026-32922 9.9 OpenClaw: privilege escalation to RCE via token scope bypass
Same package: openclaw CVE-2026-30741 9.8 OpenClaw: RCE via request-side prompt injection
Same package: openclaw CVE-2026-32038 9.8 OpenClaw: sandbox bypass enables container lateral movement
Same package: openclaw CVE-2026-53838 9.8 OpenClaw: approval scope bypass via reconnection state
Same package: openclaw