GHSA-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.
OpenClaw shell-env fallback trusted startup env and could execute attacker-influenced login-shell paths
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.
How O3 protects you
O3 Security's impact-aware SCA analyses which vulnerable code paths your application actually calls, so a match like GHSA-5h2c-8v84-qpvr can be triaged on real exposure rather than presence alone.
Tailored to GHSA-5h2c-8v84-qpvr. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.
Frequently Asked Questions
Is GHSA-5h2c-8v84-qpvr in your dependencies?
O3 Security finds GHSA-5h2c-8v84-qpvr across npm dependencies, including transitive ones, and its impact-aware SCA ranks findings by whether your code actually calls the vulnerable path.