CVE-2026-27009: OpenClaw affected by Stored XSS in Control UI via unsanitized assistant name/avatar in inline script injection
Summary Stored XSS in the OpenClaw Control UI when rendering assistant identity (name/avatar) into an inline tag without script-context-safe escaping. A crafted value containing could break out of the script tag and execute attacker-controlled JavaScript in the Control UI origin. Affected Packages / Versions - Package: openclaw (npm) - Affected versions: = 2026.2.15 (next release;
Published Feb 18, 2026 · Updated Feb 20, 2026
Affected packages
openclaw
- Ecosystem
- npm
- Affected
- < 2026.2.15
- Fixed in
- 2026.2.15
- Check
npm ls openclaw
Advisory details
From the GitHub Advisory Database (CC BY 4.0).
Summary
Stored XSS in the OpenClaw Control UI when rendering assistant identity (name/avatar) into an inline <script> tag without script-context-safe escaping. A crafted value containing </script> could break out of the script tag and execute attacker-controlled JavaScript in the Control UI origin.
Affected Packages / Versions
- Package:
openclaw(npm) - Affected versions:
<= 2026.2.14 - Fixed in:
>= 2026.2.15(next release; fix is already merged onmain)
Details
The gateway Control UI HTML response previously injected assistantName and assistantAvatar directly into an inline <script> block using JSON.stringify(...). JSON.stringify does not prevent </script> from terminating the script element, enabling stored XSS if an operator/admin sets the assistant identity to a malicious string.
OpenClaw’s Control UI is intended for local use only (see SECURITY.md); this advisory’s CVSS reflects a loopback-only/local-access deployment assumption.
Impact
An attacker with the ability to set assistant identity values (config or agent identity) could cause JavaScript execution for Control UI visitors, enabling token/session theft and privileged actions in the UI.
Fix
- Removed inline script injection and serve bootstrap config from a JSON endpoint.
- Added a restrictive Content Security Policy for the Control UI (
script-src 'self', no inline scripts).
Fix Commit(s)
adc818db4a4b3b8d663e7674ef20436947514e1b3b4096e02e7e335f99f5986ec1bd566e90b14a7e
Release Process Note
This advisory pre-sets the patched version to the planned next release (2026.2.15). Once that version is published to npm, this advisory can be published without further edits.
Thanks @Adam55A-code for reporting.
Credited to Adam55A-code.
References
- https://github.com/openclaw/openclaw/security/advisories/GHSA-37gc-85xm-2ww6
- https://github.com/openclaw/openclaw/commit/3b4096e02e7e335f99f5986ec1bd566e90b14a7e
- https://github.com/openclaw/openclaw/commit/adc818db4a4b3b8d663e7674ef20436947514e1b
- https://github.com/openclaw/openclaw/releases/tag/v2026.2.15
- https://nvd.nist.gov/vuln/detail/CVE-2026-27009
- https://github.com/advisories/GHSA-37gc-85xm-2ww6
How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. No analysis has been written for this entry yet. Methodology
More OpenClaw vulnerabilities
All OpenClaw entriesCVE-2026-35630
OpenClaw: QQBot native approval buttons did not enforce configured approver identity
high8.0Jul 2, 2026CVE-2026-53806
OpenClaw: Combined POSIX shell options could confuse exec revalidation
high8.8Jul 2, 2026CVE-2026-53809
OpenClaw: Embedded runner policy could be confused by provider aliases
medium3.8Jul 2, 2026CVE-2026-53810
OpenClaw's marketplace runtime extension metadata could point at unscanned payloads
high8.8Jul 2, 2026CVE-2026-53811
OpenClaw: Matrix allowFrom could bind to mutable display names
high8.8Jul 2, 2026CVE-2026-53812
OpenClaw's browser act interactions could bypass private-network navigation checks
medium7.7Jul 2, 2026
