CVE-2026-32063
highpriority · track · 31EPSS 0.011 · 65 %ileDEEUUSEPSS · scored 2026-10-27
OpenClaw version 2026.2.19-2 prior to 2026.2.21 contains a command injection vulnerability in systemd unit file generation where attacker-controlled environment values are not validated for CR/LF characters, allowing newline injection to break out of Environment= lines and inject arbitrary systemd directives. An attacker who can influence config.env.vars and trigger service install or restart can execute arbitrary commands with the privileges of the OpenClaw gateway service user.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode⚠ sources disagree · medium–high · 4.5–7.8
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
affected products (5)
Products and version ranges known to be affected.
advisories (2)
Vendor and ecosystem advisories describing this.
- WID-SEC-W-2026-0472OpenClaw: Mehrere SchwachstellenDeutsch2026-02-22csaf · cert_bundDE
Ein Angreifer kann mehrere Schwachstellen in OpenClaw ausnutzen, um beliebigen Programmcode auszuführen, sich erhöhte Berechtigungen zu verschaffen, Daten zu manipulieren, einen Denial-of-Service-Zustand auszulösen, Sicherheitsmaßnahmen zu umgehen, vertrauliche Informationen offenzulegen oder andere nicht näher spezifizierte Angriffe durchzuführen.
- GHSA-vffc-f7r7-rx2wOpenClaw Improperly Neutralizes Line Breaks in systemd Unit Generation Enables Local Command Execution (Linux)2026-03-03ghsa · osvUS
### Summary A command injection vulnerability exists in OpenClaw’s Linux systemd unit generation path. When rendering `Environment=` entries, attacker-controlled values are not rejected for CR/LF, and `systemdEscapeArg()` uses an incorrect whitespace-matching regex. This allows newline injection to break out of an `Environment=` line and inject standalone systemd directives (for example, `ExecStartPre=`). On service restart, the injected command is executed, resulting in local arbitrary command execution (local RCE) under the gateway service user. --- ### Details The issue is in `src/daemon/systemd-unit.ts`: - `renderEnvLines(...)` builds: - `Environment=${systemdEscapeArg(`${key}=${value}`)}` - No CR/LF validation is enforced for environment keys/values before writing unit lines. - `systemdEscapeArg(...)` uses: - `/[\\s"\\\\]/` - In this regex, `\\s` is interpreted as a literal backslash + `s`, not a whitespace character class. As a result, whitespace detection/quoting behavior is incorrect. Because systemd parses unit files line-by-line, a newline inside an environment value can inject an additional directive line. Example rendered output: ```ini Environment=INJECT=ok ExecStartPre=/bin/touch /tmp/oc15789_rce ``` At restart time, systemd executes `ExecStartPre`, enabling command execution. Relevant code path/components involved in exploitation chain: - `src/daemon/systemd-unit.ts` - `src/commands/daemon-install-helpers.ts` - `src/config/env-vars.ts` - `src/config/zod-schema.ts` Trigger conditions: 1. Attacker can influence `config.env.vars` (directly or indirectly). 2. Install/reinstall path is invoked to write/update the unit. 3. Service restart occurs (`systemctl --user restart ...`). --- ### PoC Environment: Linux host with systemd user services enabled. 1. Configure a malicious environment value in OpenClaw config (`config.env.vars`), including a newline and injected directive: - Key: `INJECT` - Value: ```text ok ExecStartPre=/bin/touch /tmp/oc15789_rce ``` 2. Install/reinstall the gateway service (fixed port as requested): ```bash openclaw gateway install --port 15789 --force ``` 3. Inspect the generated user unit file (default path): ```bash ~/.config/systemd/user/openclaw-gateway.service ``` Verify that an injected standalone line exists: ```ini ExecStartPre=/bin/touch /tmp/oc15789_rce ``` 4. Reload and restart user service: ```bash systemctl --user daemon-reload ``` ```bash systemctl --user restart openclaw-gateway.service ``` 5. Confirm command execution side effect: ```bash ls -l /tmp/oc15789_rce ``` --- ### Impact This is a local command execution vulnerability in OpenClaw’s systemd unit generation during install/reinstall flows. - **Type:** Command injection via newline/directive injection in unit file generation. - **Execution context:** Runs with the same privileges as the OpenClaw gateway service user. - **Affected users:** Linux deployments using systemd user services where an attacker can control `config.env.vars` and trigger install/reinstall. ## Fix Commit(s) - `61f646c41fb43cd87ed48f9125b4718a30d38e84`
also known as (3)
Other names and identifiers for this entity.
sources
Which sources assert this record, and when.
references (10)
External citations — patches, advisories, analysis.
- https://github.com/openclaw/openclaw/commit/61f646c41fb43cd87ed48f9125b4718a30d38e84cnnvd
- https://github.com/openclaw/openclaw/releasesPatchcnnvd
- https://github.com/openclaw/openclaw/security/advisories/GHSA-vffc-f7r7-rx2wcnnvd
- https://www.vulncheck.com/advisories/openclaw-command-injection-via-newline-in-systemd-unit-generationcnnvd
- https://github.com/openclaw/openclaw/commit/61f646c41fb43cd87ed48f9125b4718a30d38e84enisa_euvd
- https://github.com/openclaw/openclaw/security/advisories/GHSA-vffc-f7r7-rx2wenisa_euvd
- https://www.vulncheck.com/advisories/openclaw-command-injection-via-newline-in-systemd-unit-generationenisa_euvd
- https://github.com/openclaw/openclaw/commit/61f646c41fb43cd87ed48f9125b4718a30d38e84Patchnvd
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan