OpenClaw has system.run shell-wrapper env injection via SHELLOPTS/PS4 can bypass allowlist intent (RCE)
Summary
system.run allowed SHELLOPTS + PS4 environment injection to trigger command substitution during bash -lc xtrace expansion before the allowlisted command body executed.
Affected Packages / Versions
- Package:
openclaw(npm) - Affected:
<= 2026.2.21-2(includes latest published npm version at triage time) - Patched (planned next release):
2026.2.22
Impact
In allowlist mode, an attacker who can invoke system.run with request-scoped env could execute additional shell commands outside the intended allowlisted command body.
Root Cause
Host exec env sanitization blocked startup-file vectors (BASH_ENV, ENV, etc.) but did not block SHELLOPTS/PS4. For shell wrappers (bash|sh|zsh ... -c/-lc), request env overrides were passed through and bash evaluated PS4 under xtrace, enabling command substitution.
Fix
- Block
SHELLOPTSandPS4in host exec env sanitizers (Node + macOS). - For shell wrappers (
bash|sh|zsh ... -c/-lc), reduce request-scoped env overrides to an explicit allowlist (TERM,LANG,LC_*,COLORTERM,NO_COLOR,FORCE_COLOR). - Add regression tests for TS and macOS paths.
Fix Commit(s)
e80c803fa887f9699ad87a9e906ab5c1ff85bd9a
Release Process Note
patched_versions is pre-set to the planned next release (2026.2.22). Once npm release 2026.2.22 is published, advisory publication is a final state action only.
Severity Rationale
This advisory is rated medium because exploitation requires a caller that can already invoke system.run with request-scoped env.
Under OpenClaw's documented trust model (SECURITY.md), authenticated Gateway callers are treated as trusted operators, and adversarial multi-operator / prompt-injection scenarios are out of scope.
The bug remains a real allowlist-intent bypass, but it does not cross a separate trust boundary in the documented deployment assumptions.
OpenClaw thanks @tdjackey for reporting.
Software afectado
Haz clic en una tecnología para ver todas sus vulnerabilidades.
| Plataforma | Paquete | Versiones vulnerables | Corregida en |
|---|---|---|---|
| Paquete de npm | openclaw | < 2026.2.22 | 2026.2.22 |
Referencias
- https://github.com/openclaw/openclaw/security/advisories/GHSA-2fgq-7j6h-9rm4
- https://nvd.nist.gov/vuln/detail/CVE-2026-32003
- https://github.com/openclaw/openclaw/commit/e80c803fa887f9699ad87a9e906ab5c1ff85bd9a
- https://github.com/openclaw/openclaw
- https://www.vulncheck.com/advisories/openclaw-remote-code-execution-via-shellopts-ps4-environment-injection-in-system-run
- Vector CVSS
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H- Debilidad (CWE)
CWE-15, CWE-78- Plataforma
- npm
- Paquete
openclaw- Publicada
- 03.03.2026
- Actualizado
- 11.10.2026 10:22
Fuentes y licencias
OSV / GitHub Advisory Database - GHSA-2fgq-7j6h-9rm4 - CC BY 4.0
Historial de vulnerabilidades: openclaw
Todas las vulnerabilidades publicadas de este paquete (Paquete de npm), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.
- Entradas en total
- 588
- Primera → última
- 02.2026 07.2026
- Sin corrección
- 9
- Explotada en ataques
- 0
Distribución por gravedad
- Crítica 20
- Alta 215
- Media 299
- Baja 54
Divulgaciones por año
- 2026: 588
-
OpenClaw has system.run shell-wrapper env injection via SHELLOPTS/PS4 can bypass allowlist intent (RCE) esta entrada
Identifica las vulnerabilidades de tu aplicación
Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.