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 on main) Details: The gateway Control UI HTML respons","image":"https://o3.security/opengraph.png","datePublished":"2026-02-19T23:25:41.111Z","dateModified":"2026-11-04T02:51:07.025953931Z","url":"https://o3.security/vulnerability/CVE-2026-27009","inLanguage":"en","author":{"@id":"https://o3.security/#organization"},"publisher":{"@id":"https://o3.security/#organization"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://o3.security/vulnerability/CVE-2026-27009"},"speakable":{"@type":"SpeakableSpecification","cssSelector":["h1",".vuln-summary",".vuln-severity",".vuln-mitigation"]},"about":[{"@type":"SoftwareApplication","name":"openclaw","applicationCategory":"npm","softwareVersion":"2026.2.15"}],"citation":[{"@type":"CreativeWork","name":"NVD","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-27009"},{"@type":"CreativeWork","name":"OSV.dev","url":"https://osv.dev/vulnerability/CVE-2026-27009"},{"@type":"CreativeWork","name":"FIRST.org EPSS","url":"https://www.first.org/epss/api-data?cve=CVE-2026-27009"},{"@type":"CreativeWork","url":"https://github.com/openclaw/openclaw/releases/tag/v2026.2.15"},{"@type":"CreativeWork","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/27xxx/CVE-2026-27009.json"},{"@type":"CreativeWork","url":"https://github.com/openclaw/openclaw/security/advisories/GHSA-37gc-85xm-2ww6"}]} 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 on main) Details: The gateway Control UI HTML respons","url":"https://o3.security/vulnerability/CVE-2026-27009","identifier":"CVE-2026-27009","datePublished":"2026-02-19T23:25:41.111Z","dateModified":"2026-11-04T02:51:07.025953931Z","inLanguage":"en","license":"https://creativecommons.org/licenses/by/4.0/","keywords":["CVE-2026-27009","MEDIUM severity","CWE-79","CVE","vulnerability","security advisory"],"creator":{"@id":"https://o3.security/#organization"},"isAccessibleForFree":true,"citation":[{"@type":"CreativeWork","name":"NVD","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-27009"},{"@type":"CreativeWork","name":"OSV.dev","url":"https://osv.dev/vulnerability/CVE-2026-27009"},{"@type":"CreativeWork","name":"FIRST.org EPSS","url":"https://www.first.org/epss/api-data?cve=CVE-2026-27009"}],"variableMeasured":[{"@type":"PropertyValue","name":"CVSS Base Score","value":5.8,"description":"CVSS:3.1/AV:L/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N"},{"@type":"PropertyValue","name":"Severity","value":"MEDIUM"},{"@type":"PropertyValue","name":"EPSS Percentile","value":18}]}` could break out of the script tag and execute attacker-controlled JavaScript in the Control UI origin.\n\n## Affected Packages / Versions\n- Package: `openclaw` (npm)\n- Affected versions: `<= 2026.2.14`\n- Fixed in: `>= 2026.2.15` (next release; fix is already merged on `main`)\n\n## Details\nThe gateway Control UI HTML response previously injected `assistantName` and `assistantAvatar` directly into "}},{"@type":"Question","name":"How severe is CVE-2026-27009?","acceptedAnswer":{"@type":"Answer","text":"CVE-2026-27009 has a CVSS score of 5.8/10, rated MEDIUM. Review your exposure and patch according to your risk tolerance."}},{"@type":"Question","name":"Which packages are affected by CVE-2026-27009?","acceptedAnswer":{"@type":"Answer","text":"CVE-2026-27009 affects the following packages: openclaw (npm). Ecosystems affected: npm."}},{"@type":"Question","name":"How do I fix CVE-2026-27009?","acceptedAnswer":{"@type":"Answer","text":"Update openclaw to 2026.2.15 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2026-27009 is resolved across your whole dependency graph."}},{"@type":"Question","name":"How do I detect CVE-2026-27009 in my npm dependencies?","acceptedAnswer":{"@type":"Answer","text":"Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for openclaw, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version."}},{"@type":"Question","name":"How do I mitigate CVE-2026-27009 if there is no patch (or I can't update yet)?","acceptedAnswer":{"@type":"Answer","text":"Escape or sanitise the affected output on the server side rather than relying on client-side filtering, and add a Content-Security-Policy that blocks inline script execution so injected markup cannot run even if it reaches the page."}},{"@type":"Question","name":"Is CVE-2026-27009 actively exploited in the wild?","acceptedAnswer":{"@type":"Answer","text":"No public exploit code has been indexed for CVE-2026-27009 yet. This does not mean the vulnerability cannot be exploited — absence of public exploits does not imply safety. Apply the recommended fix and use O3 Security to monitor your exposure."}},{"@type":"Question","name":"What is the EPSS score for CVE-2026-27009?","acceptedAnswer":{"@type":"Answer","text":"CVE-2026-27009 has an EPSS (Exploit Prediction Scoring System) score of 0.3%, placing it in the 18th percentile of all CVEs. EPSS is maintained by FIRST.org and estimates the probability that a vulnerability will be exploited in the wild within the next 30 days. This score indicates relatively lower exploitation probability, though the CVSS severity should still guide your patching priority."}},{"@type":"Question","name":"What type of vulnerability is CVE-2026-27009?","acceptedAnswer":{"@type":"Answer","text":"CVE-2026-27009 is classified as Cross-site Scripting (XSS) (CWE-79). This weakness type describe the underlying flaw category, which helps determine the potential impact and the right class of mitigation. This is a high-impact weakness class that often enables remote code execution or data exposure."}},{"@type":"Question","name":"When was CVE-2026-27009 published, and has it been updated?","acceptedAnswer":{"@type":"Answer","text":"CVE-2026-27009 was published on February 19, 2026 and was last updated on November 4, 2026. Advisory data evolves as severity scores, affected ranges, and exploit intelligence are revised — always check the latest version of the advisory before acting."}}]}
NIST deprecates RSA-2048 from 2030. Find every one of them before attackers do.
📦
📦 npm
Not in CISA KEV
MEDIUM severity

CVE-2026-27009 — openclaw

MEDIUMFix: openclaw/openclaw@3b4096e

CVE-2026-27009 is a medium-severity (CVSS 5.8) Cross-site Scripting (XSS) vulnerability in openclaw. A fix is available for openclaw — see the affected versions and patch details below.

OpenClaw affected by Stored XSS in Control UI via unsanitized assistant name/avatar in inline script injection

Also known asGHSA-37gc-85xm-2ww6
Published
Updated
Affected
1 pkg
Patched
1 / 1
Exploits
None indexed
Exploitation data as of Nov 4, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

Exploitation Status

No confirmed exploitation observed yet

  • A successful exploit gives an attacker total control of the affected component, not partial access.
  • CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.

Exploitation and automatability from CISA’s SSVC triage for CVE-2026-27009.

EPSS Exploitation Probability

via FIRST.org ↗
0.3%probability of exploitation in next 30 days
Lower Risk0.00%
Lower risk than most CVEs18th percentile — riskier than 18% of all scored CVEsHighest risk
0.00%0.25%0.51%0.76%0.0%0.3%May 26Sep 26Nov 26

Probability of exploitation in the next 30 days, from FIRST.org EPSS.

How urgent is this, really

Where this sits among everything scored

Real-World Exposure

1 pkg affected

How broadly this vulnerability is actually deployed: weekly install volume shows current usage, and reverse-dependency count shows how many other packages break if it stays unpatched.

133other npm packages depend on this — each one inherits the vulnerability until it's patched upstream
openclawnpm
2.4Mdownloads / week

Description

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 on main)

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)

  • adc818db4a4b3b8d663e7674ef20436947514e1b
  • 3b4096e02e7e335f99f5986ec1bd566e90b14a7e

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.

Affected Packages

1 total 1 fixed
EcosystemPackageVulnerable rangeFix
📦npmopenclawall versions2026.2.15npm install openclaw@2026.2.15

Affected Products

1 product · 1 configurations
Application
openclawopenclaw
< 2026.2.15
range

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for openclaw, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    Update openclaw to 2026.2.15 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2026-27009 is resolved across your whole dependency graph.

  3. Workarounds

    Escape or sanitise the affected output on the server side rather than relying on client-side filtering, and add a Content-Security-Policy that blocks inline script execution so injected markup cannot run even if it reaches the page.

Frequently Asked Questions

## 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 on `main`) ## Details The gateway Control UI HTML response previously injected `assistantName` and `assistantAvatar` directly into
O3 Security · Impact-Aware SCA

Is CVE-2026-27009 in your dependencies?

Find it across npm, including transitive dependencies.

CVE-2026-27009: openclaw XSS — Fixed in 2026.2.15