Hoch

OpenClaw Improperly Neutralizes Line Breaks in systemd Unit Generation Enables Local Command Execution (Linux)

  • Veröffentlicht: 03.03.2026
  • Aktualisiert: 11.10.2026 10:22

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:
ok
ExecStartPre=/bin/touch /tmp/oc15789_rce
  1. Install/reinstall the gateway service (fixed port as requested):
bash
openclaw gateway install --port 15789 --force
  1. 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
  1. Reload and restart user service:
bash
systemctl --user daemon-reload
bash
systemctl --user restart openclaw-gateway.service
  1. 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

Betroffene Software

Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.

PlattformPaketAnfällige VersionenBehoben in
npm-Paket openclaw < 2026.2.21 2026.2.21

Verweise

CVSS-Wert -
CVSS-Vektor
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
Schwäche (CWE)
CWE-77
Plattform
npm
Paket
openclaw
Veröffentlicht
03.03.2026
Aktualisiert
11.10.2026 10:22

Quellen und Lizenzen

OSV / GitHub Advisory Database - GHSA-vffc-f7r7-rx2w - CC BY 4.0

Schwachstellenhistorie: openclaw

Alle veröffentlichten Schwachstellen dieses Pakets (npm-Paket), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.

Alle (588) im Archiv
Einträge insgesamt
588
Erste → letzte
02.2026 07.2026
Ohne Fix
9
In Angriffen ausgenutzt
0

Verteilung nach Schweregrad

  • Kritisch 20
  • Hoch 215
  • Mittel 299
  • Niedrig 54

Veröffentlichungen pro Jahr

  1. 2026: 588
Schweregrad:
  1. OpenClaw Improperly Neutralizes Line Breaks in systemd Unit Generation Enables Local Command Execution (Linux) dieser Eintrag
    Hoch CVE-2026-32063 < 2026.2.21 2026.2.21
  2. Hoch · 8.8 CVE-2026-53811 < 2026.5.7 2026.5.7
  3. Hoch · 8.8 CVE-2026-53806 < 2026.5.12 2026.5.12
  4. Hoch · 7.8 CVE-2026-53813 < 2026.4.25 2026.4.25
  5. Hoch · 7.5 CVE-2026-53834 < 2026.4.27 2026.4.27
  6. Kritisch CVE-2026-34507 < 2026.4.29 2026.4.29
  7. Hoch CVE-2026-53823 < 2026.5.3 2026.5.3
  8. Hoch · 8.4 CVE-2026-53814 < 2026.5.20 2026.5.20
  9. Hoch · 6.5 CVE-2026-53815 < 2026.5.19 2026.5.19
  10. Hoch · 8.1 CVE-2026-53849 < 2026.5.7 2026.5.7
  11. Hoch · 8.1 CVE-2026-53857 < 2026.5.3 2026.5.3
  12. Hoch · 8.1 CVE-2026-53866 < 2026.5.12 2026.5.12
  13. Hoch · 8.1 CVE-2026-53864 < 2026.5.26 2026.5.26
  14. Kritisch · 9.8 CVE-2026-44109 < 2026.4.15 2026.4.15
  15. Kritisch · 8.1 CVE-2026-43585 < 2026.4.15 2026.4.15
  16. Hoch · 8.8 CVE-2026-43530 >= 2026.2.23, < 2026.4.12 2026.4.12
  17. Hoch · 8.8 CVE-2026-42434 >= 2026.4.5, < 2026.4.10 2026.4.10
  18. Hoch · 7.5 CVE-2026-42437 >= 2026.4.9, < 2026.4.10 2026.4.10
Mehr anzeigen (20) 61 von 235 angezeigt

Erkennen Sie Schwachstellen in Ihrer Anwendung

Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.

Anwendung verbinden
DockRay Newsletter

Anwendungssicherheit in Ihrem Postfach

Wichtige Schwachstellen, konkrete Empfehlungen und praktische Tipps für Ihre Anwendungen. Wählen Sie Ihre Technologien und verfolgen Sie, was für Ihr Projekt relevant ist.

  • Eine tägliche Zusammenfassung neuer Schwachstellen, auch kritischer.
  • Benachrichtigungen über wichtige Updates.
  • Praktische Tipps zur Sicherheit und Überwachung von Anwendungen.

Leer lassen, um Meldungen zu allen Technologien zu erhalten.

Kostenlos anmelden. In jeder E-Mail mit einem Klick abmelden.