A wrapper-depth parsing mismatch in system.run allowed nested transparent dispatch wrappers (for example repeated /usr/bin/env) to suppress shell-wrapper detection while still matching allowlist resolution. In security=allowlist + ask=on-miss, this could bypass the expected approval prompt for shell execution.
OpenClaw’s documented model treats authenticated gateway callers as trusted operators and exec approvals as operator guardrails. This issue is still a real approval-boundary bypass and is triaged as Medium in that model.
MAX_DISPATCH_WRAPPER_DEPTH./usr/bin/env./bin/sh -c ... without fresh approval in allowlist + ask=on-miss.openclaw (npm)2026.2.23<= 2026.2.23>= 2026.2.2457c9a18180c8b14885bbd95474cbb17ff2d03f0bsystem.run invocation layers.SYSTEM_RUN_DENIED: approval required.patched_versions is pre-set to the planned next release (2026.2.24) so once npm publish is complete, advisory publication can proceed without additional version edits.
OpenClaw thanks @tdjackey for reporting.
openclaw@2026.2.24 is published on npm and contains the fix commit(s) listed above. This advisory now marks >= 2026.2.24 as patched.
{
"cwe_ids": [
"CWE-284",
"CWE-863"
],
"github_reviewed": true,
"github_reviewed_at": "2026-03-03T19:16:48Z",
"nvd_published_at": "2026-03-19T22:16:36Z",
"severity": "MODERATE"
}