OpenClaw shell-env fallback trusted startup env and could execute attacker-influenced login-shell pathsGHSA-5h2c-8v84-qpvr
MEDIUMFix: openclaw/openclaw@9363c32GHSA-5h2c-8v84-qpvr is a medium-severity (CVSS 5.3) vulnerability in openclaw. A fix is available for openclaw — see the affected versions and patch details below.
Real-World Exposure
How broadly this vulnerability is actually deployed: weekly install volume shows current usage, and reverse-dependency count shows how many other packages break if it stays unpatched.
openclawnpmDescription
Summary
OpenClaw shell-env fallback trusted startup environment values and could execute attacker-influenced login-shell startup paths before loading env keys.
Affected Packages / Versions
- Package:
openclaw(npm) - Affected versions:
>= 2026.1.5and<= 2026.2.21-2 - Fixed on
main:9363c320d8ffe29290906752fab92621da02c3f7 - Planned patched release version (pre-set):
2026.2.22
Details
The vulnerable chain was in the shell-env fallback path:
src/infra/shell-env.ts
resolveShell(env)trustedenv.SHELLwhen set.execLoginShellEnvZero(...)executed${SHELL} -l -c "env -0"with inherited runtime env.
src/config/io.ts
- Config env values were applied before shell fallback execution.
src/config/env-vars.ts/ env policy coverage
SHELLhandling was hardened, but startup-path selectors (HOME,ZDOTDIR) still needed explicit blocking in config env ingestion and sanitization for shell fallback execution.
With env/config influence, this could trigger unintended command execution in shell startup processing on the OpenClaw host process context.
Fix
Mainline hardening now:
- blocks
SHELL,HOME, andZDOTDIRduring config env ingestion used by runtime fallback, - sanitizes shell fallback execution env, pinning
HOMEto the real user home and droppingZDOTDIR+ dangerous startup vars, - adds regression tests for config env ingestion and shell fallback/path-probe sanitization.
Fix Commit(s)
9363c320d8ffe29290906752fab92621da02c3f7
Impact
- Local code-execution risk in environments where attacker-controlled env/config input can reach shell-env fallback.
- Under OpenClaw trust assumptions (
SECURITY.md), this is not a public-remote issue and depends on crossing local trusted-operator boundaries.
Release Process Note
patched_versions is intentionally pre-set to the planned next release (2026.2.22) so once npm release is out, maintainers can publish advisory immediately.
OpenClaw thanks @tdjackey for reporting.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 📦npm | openclaw | all versions | 2026.2.22npm install openclaw@2026.2.22 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for openclaw, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update openclaw to 2026.2.22 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-5h2c-8v84-qpvr is resolved across your whole dependency graph.
Workarounds
If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.
Frequently Asked Questions
Is GHSA-5h2c-8v84-qpvr in your dependencies?
Find it across npm, including transitive dependencies.