Advisory details:
github_osv / GHSA-796m-2973-wc5q
| Advisory ID | github_osv/GHSA-796m-2973-wc5q |
| Aliases | |
| Summary | OpenClaw has exec allowlist/safeBins policy-runtime mismatch via env -S wrapper interpretation ### Summary `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. ### Affected Packages / Versions - Package: `openclaw` (npm) - Vulnerable versions: `<= 2026.2.22-2` (latest currently published npm version) - Patched version (released): `2026.2.23` ### Impact An 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. ### Technical Details Root cause was policy/runtime interpretation mismatch for dispatch wrappers: - analysis resolved an effective executable from wrapper-unwrapped argv, - execution could still run original wrapper argv semantics, - safe-bin short-flag handling also allowed unknown short options in clusters. ### Remediation The fix hardens exec approvals to fail closed and enforce analysis/runtime parity: - introduce wrapper execution planning with semantic-wrapper blocking, - carry planned `effectiveArgv` + `policyBlocked` metadata through resolution, - evaluate allowlist/safe-bins against planned argv, - enforce canonical rebuilt shell command from planned argv for allowlist auto-paths, - use planned argv for node-host/mac exec-host invocation paths, - reject unknown short safe-bin flags, - add regression tests for semantic `env` wrappers and parity fixtures. ### Fix Commit(s) - `a1c4bf07c6baad3ef87a0e710fe9aef127b1f606` ### Release Process Note `patched_versions` is pre-set to the released version (`2026.2.23`). Patched in `2026.2.23` and published. OpenClaw thanks @jiseoung for reporting. |
| Status | Published |
| Exploitability | 0.5 |
| Weighted Severity | 5.1 |
| Risk | 2.5 |
| Affected and Fixed Packages | Package Details |
| Introduced and Fixed Package Commit Patches | Package Commit Patches Details |
| CWE-436 | Interpretation Conflict |
| System | Score | Found at |
|---|---|---|
| cvssv4 | 5.7 | https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/03/GHSA-796m-2973-wc5q/GHSA-796m-2973-wc5q.json |
| generic_textual | MODERATE |
| Reference id | Reference type | URL |
|---|---|---|
| https://github.com/openclaw/openclaw | ||
| https://github.com/openclaw/openclaw/security/advisories/GHSA-796m-2973-wc5q | ||
| a1c4bf07c6baad3ef87a0e710fe9aef127b1f606 | Other | https://github.com/openclaw/openclaw/commit/a1c4bf07c6baad3ef87a0e710fe9aef127b1f606 |
No EPSS data available for this advisory.
| Patch URL | |
|---|---|
| There are no known patches. | |
| Attack Vector (AV) | Attack Complexity (AC) | Attack Requirements (AT) | Privileges Required (PR) | User Interaction (UI) | Vulnerable System Impact Confidentiality (VC) | Vulnerable System Impact Integrity (VI) | Vulnerable System Impact Availability (VA) | Subsequent System Impact Confidentiality (SC) | Subsequent System Impact Integrity (SI) | Subsequent System Impact Availability (SA) |
|---|---|---|---|---|---|---|---|---|---|---|
network adjacent local physical |
low high |
none present |
none low high |
none passive active |
high low none |
high low none |
high low none |
high low none |
high low none |
high low none |
There are no SSVC decisions available.