CVE-2026-32063
OpenClaw 2026.2.19-2 < 2026.2.21 - Command Injection via Newline in systemd Unit Generation
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.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
6.9
OpenClaw 2026.2.19-2 < 2026.2.21 - Command Injection via Newline in systemd Unit Generation
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.
- Record
CVE-2026-32063- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H - Weakness
- CWE-77
- Updated
- 2026-11-02
EUVDEUVD-2026-11156
6.9
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.
- Record
EUVD-2026-11156- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-vffc-f7r7-rx2w
8.6
OpenClaw Improperly Neutralizes Line Breaks in systemd Unit Generation Enables Local Command Execution (Linux)
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,
\\sis 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:
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.tssrc/commands/daemon-install-helpers.tssrc/config/env-vars.tssrc/config/zod-schema.ts
Trigger conditions:
- Attacker can influence
config.env.vars(directly or indirectly). - Install/reinstall path is invoked to write/update the unit.
- Service restart occurs (
systemctl --user restart ...).
PoC
Environment: Linux host with systemd user services enabled.
- Configure a malicious environment value in OpenClaw config (
config.env.vars), including a newline and injected directive:
- Key:
INJECT - Value:
ok
ExecStartPre=/bin/touch /tmp/oc15789_rce
- Install/reinstall the gateway service (fixed port as requested):
openclaw gateway install --port 15789 --force
- Inspect the generated user unit file (default path):
~/.config/systemd/user/openclaw-gateway.service
Verify that an injected standalone line exists:
ExecStartPre=/bin/touch /tmp/oc15789_rce
- Reload and restart user service:
systemctl --user daemon-reload
systemctl --user restart openclaw-gateway.service
- Confirm command execution side effect:
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.varsand trigger install/reinstall.
Fix Commit(s)
61f646c41fb43cd87ed48f9125b4718a30d38e84
- Record
GHSA-vffc-f7r7-rx2w- CVSS 4.0
- 8.6 High
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-77
- Updated
- 2026-11-02
NVD
6.9
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.
- Record
CVE-2026-32063- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 7.1 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H - CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-77
- Updated
- 2026-11-02
OSV
6.9
OpenClaw 2026.2.19-2 < 2026.2.21 - Command Injection via Newline in systemd Unit Generation
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.
- Record
CVE-2026-32063- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-77
- Updated
- 2026-11-11
OSVGHSA-vffc-f7r7-rx2w
8.6
OpenClaw Improperly Neutralizes Line Breaks in systemd Unit Generation Enables Local Command Execution (Linux)
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,
\\sis 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:
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.tssrc/commands/daemon-install-helpers.tssrc/config/env-vars.tssrc/config/zod-schema.ts
Trigger conditions:
- Attacker can influence
config.env.vars(directly or indirectly). - Install/reinstall path is invoked to write/update the unit.
- Service restart occurs (
systemctl --user restart ...).
PoC
Environment: Linux host with systemd user services enabled.
- Configure a malicious environment value in OpenClaw config (
config.env.vars), including a newline and injected directive:
- Key:
INJECT - Value:
ok
ExecStartPre=/bin/touch /tmp/oc15789_rce
- Install/reinstall the gateway service (fixed port as requested):
openclaw gateway install --port 15789 --force
- Inspect the generated user unit file (default path):
~/.config/systemd/user/openclaw-gateway.service
Verify that an injected standalone line exists:
ExecStartPre=/bin/touch /tmp/oc15789_rce
- Reload and restart user service:
systemctl --user daemon-reload
systemctl --user restart openclaw-gateway.service
- Confirm command execution side effect:
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.varsand trigger install/reinstall.
Fix Commit(s)
61f646c41fb43cd87ed48f9125b4718a30d38e84
- Record
GHSA-vffc-f7r7-rx2w- CVSS 4.0
- 8.6 High
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-77
- Updated
- 2026-11-02
Affected products
Affected packages
History
| Recorded | Changed | Sources |
|---|---|---|
| facts | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-32063 is a medium vulnerability (CVSS 6.9) in Openclaw, published March 3, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.22%, the 69th percentile. Fixed in openclaw 2026.2.21.
References
github.com/openclaw/openclaw/security/advisories/GHSA-vffc-f7r7-rx2w
github.com/openclaw/openclaw/commit/61f646c41fb43cd87ed48f9125b4718a30d38e84
vulncheck.com/advisories/openclaw-command-injection-via-newline-in-systemd-unit-generation
nvd.nist.gov/vuln/detail/CVE-2026-32063
github.com/advisories/GHSA-vffc-f7r7-rx2w
github.com/CVEProject/cvelistV5/tree/main/cves/2026/32xxx/CVE-2026-32063.json
github.com/openclaw/openclaw