CVE-2026-53831: OpenClaw's POSIX node system.run safe-bin allowlist could be widened by shell expansion
On POSIX nodes, OpenClaw's `system.run` safe-bin check approved a command before shell expansion changed its meaning. An authenticated operator or agent flow could make an approved safe-bin command read a node-local file the policy never allowed. Fixed in openclaw 2026.5.18.
Published Jul 2, 2026 · Updated Aug 25, 2026 · Analysis Oct 25, 2026
What an attacker can do
OpenClaw can auto-approve system.run commands through a safe-bin or allowlist-style exec policy. The check validated the argv as written. The shell then expanded a value, so something that looked like one safe-bin argument turned into extra shell words and became a file operand. This is a check-then-use gap (CWE-367) in argv validation.
The attacker needs a foothold: a paired POSIX node, and an operator or agent flow that can reach system.run under a safe-bin policy. The advisory says this is not an unauthenticated node takeover. The CVSS 3.1 vector reflects it with low privileges and high attack complexity.
The gain is file read. Depending on what the node process can access, the output may expose OpenClaw configuration data or other node-local information, such as tokens. For teams that let agents run commands on nodes, the risk is that a prompt-influenced agent turns an auto-approved command into a read of a file nobody approved. The advisory states this is a policy gap, not a claim that every safe-bin command is unsafe.
Who is affected
The npm package openclaw before 2026.5.18, on deployments where all of these hold:
- a POSIX node is paired to the gateway
system.runis reachable by an authenticated operator or agent flow- exec policy uses safe-bin or allowlist-based auto-approval
- the approved command contains shell-expanded values that can change argv shape
npm ls openclawCheck the gateway and every node host. Versions below 2026.5.18 are affected.
openclaw
- Ecosystem
- npm
- Affected
- < 2026.5.18
- Fixed in
- 2026.5.18
- Check
npm ls openclaw
How to fix it
Upgrade to [email protected] or later, the first stable patched version:
npm install [email protected]Before you can upgrade, the advisory says to avoid broad safe-bin auto-approval for commands that can read arbitrary paths, and to prefer explicit approval for node commands that touch local files.
How to tell if you were hit
Review system.run history on POSIX nodes for approved safe-bin commands whose arguments contain shell metacharacters or variable and command substitutions, such as $, backticks or globs. Look for safe-bin commands such as file readers that touched OpenClaw config paths or other files outside the expected working directory. The sources give no specific log string. Beam records agent shell commands and file access on the machine, and its rules can flag reads of credential-like files.
Original advisory
From the GitHub Advisory Database (CC BY 4.0).
Summary
On POSIX nodes, OpenClaw's system.run safe-bin checks could approve a command before shell expansion changed how the command was interpreted. A value that appeared to be a safe-bin argument could expand into additional shell words and become a file operand.
This issue is limited to paired POSIX node execution through system.run with safe-bin or allowlist-style auto-approval. It is not an unauthenticated node takeover.
Affected configurations
This affects deployments where:
- a POSIX node is paired to the gateway
system.runis reachable by an authenticated operator or agent flow- exec policy uses safe-bin or allowlist-based auto-approval
- the approved command contains shell-expanded values that can change argv shape
Impact
A lower-privilege operator flow could cause an approved safe-bin command to read a node-local file that was not intended by the policy. Depending on the local files available to the node process, this could expose OpenClaw configuration data or other node-local information.
The issue is a policy-enforcement gap in argv validation, not a general statement that every safe-bin command is unsafe.
Patched Versions
The first stable patched version is 2026.5.18.
Mitigations
Upgrade to [email protected] or later. Before upgrading, avoid broad safe-bin auto-approval for commands that can read arbitrary paths, and prefer explicit approval for node commands that touch local files.
Credited to cantinagen, Ellahinator.
Questions
- Can an unauthenticated attacker take over a node with this?
No. The advisory says it is not an unauthenticated node takeover. It requires a paired POSIX node and an authenticated operator or agent flow that can reach
system.run.- Which versions are fixed?
openclaw 2026.5.18 is the first stable patched version. Anything older is affected.
- Does it allow code execution?
The sources describe file read: an approved safe-bin command reads a node-local file the policy did not intend. They do not describe code execution as the impact.
References
How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. The analysis is written by an AI model from the sources listed above and checked by automated rules before it is published. Check versions against the vendor's advisory before you act. Methodology
More OpenClaw vulnerabilities
All OpenClaw entriesCVE-2026-62197
OpenClaw: Browser CDP discovery could accept blocked WebSocket URLs
medium8.5Oct 21, 2026CVE-2026-35630
OpenClaw: QQBot native approval buttons did not enforce configured approver identity
high8.0Jul 2, 2026CVE-2026-53806
OpenClaw: Combined POSIX shell options could confuse exec revalidation
high8.8Jul 2, 2026CVE-2026-53809
OpenClaw: Embedded runner policy could be confused by provider aliases
medium3.8Jul 2, 2026CVE-2026-53810
OpenClaw's marketplace runtime extension metadata could point at unscanned payloads
high8.8Jul 2, 2026CVE-2026-53811
OpenClaw: Matrix allowFrom could bind to mutable display names
high8.8Jul 2, 2026
