tools.exec allowlist/safe-bins evaluation could diverge from runtime execution for wrapper commands using GNU env -S/--split-string semantics. This allowed policy checks to treat a command as a benign safe-bin invocation while runtime executed a different payload.
openclaw (npm)<= 2026.2.22-2 (latest currently published npm version)2026.2.23An attacker able to influence tool command text (for example via untrusted prompt/content injection reaching an exec-capable flow) could bypass allowlist/safe-bins intent and execute unexpected commands.
Root cause was policy/runtime interpretation mismatch for dispatch wrappers:
The fix hardens exec approvals to fail closed and enforce analysis/runtime parity:
effectiveArgv + policyBlocked metadata through resolution,env wrappers and parity fixtures.a1c4bf07c6baad3ef87a0e710fe9aef127b1f606patched_versions is pre-set to the released version (2026.2.23). Patched in 2026.2.23 and published.
OpenClaw thanks @jiseoung for reporting.
{
"cwe_ids": [
"CWE-436"
],
"github_reviewed": true,
"github_reviewed_at": "2026-03-03T22:23:45Z",
"nvd_published_at": null,
"severity": "MODERATE"
}