` 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 gatew","image":"https://o3.security/opengraph.png","datePublished":"2026-02-18T22:44:33Z","dateModified":"2026-02-20T17:02:59.385901Z","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/security/advisories/GHSA-37gc-85xm-2ww6"},{"@type":"CreativeWork","url":"https://github.com/openclaw/openclaw/commit/3b4096e02e7e335f99f5986ec1bd566e90b14a7e"},{"@type":"CreativeWork","url":"https://github.com/openclaw/openclaw/commit/adc818db4a4b3b8d663e7674ef20436947514e1b"},{"@type":"CreativeWork","url":"https://github.com/openclaw/openclaw/releases/tag/v2026.2.15"}]}` 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 gatew","url":"https://o3.security/vulnerability/CVE-2026-27009","identifier":"CVE-2026-27009","datePublished":"2026-02-18T22:44:33Z","dateModified":"2026-02-20T17:02:59.385901Z","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":15}]}` 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 GHSA-37gc-85xm-2ww6?","acceptedAnswer":{"@type":"Answer","text":"GHSA-37gc-85xm-2ww6 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 GHSA-37gc-85xm-2ww6?","acceptedAnswer":{"@type":"Answer","text":"GHSA-37gc-85xm-2ww6 affects the following packages: openclaw (npm). Ecosystems affected: npm."}},{"@type":"Question","name":"How do I fix GHSA-37gc-85xm-2ww6?","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 GHSA-37gc-85xm-2ww6 is resolved across your whole dependency graph."}},{"@type":"Question","name":"How do I detect GHSA-37gc-85xm-2ww6 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 GHSA-37gc-85xm-2ww6 if there is no patch (or I can't update yet)?","acceptedAnswer":{"@type":"Answer","text":"If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands."}},{"@type":"Question","name":"How does O3 Security protect against GHSA-37gc-85xm-2ww6?","acceptedAnswer":{"@type":"Answer","text":"O3 Security's impact-aware SCA analyses which vulnerable code paths your application actually calls, so a match like GHSA-37gc-85xm-2ww6 can be triaged on real exposure rather than presence alone."}},{"@type":"Question","name":"Is GHSA-37gc-85xm-2ww6 actively exploited in the wild?","acceptedAnswer":{"@type":"Answer","text":"No public exploit code has been indexed for GHSA-37gc-85xm-2ww6 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 GHSA-37gc-85xm-2ww6?","acceptedAnswer":{"@type":"Answer","text":"GHSA-37gc-85xm-2ww6 has an EPSS (Exploit Prediction Scoring System) score of 0.2%, placing it in the 15th 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 GHSA-37gc-85xm-2ww6?","acceptedAnswer":{"@type":"Answer","text":"GHSA-37gc-85xm-2ww6 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 GHSA-37gc-85xm-2ww6 published, and has it been updated?","acceptedAnswer":{"@type":"Answer","text":"GHSA-37gc-85xm-2ww6 was published on February 18, 2026 and was last updated on February 20, 2026. Advisory data evolves as severity scores, affected ranges, and exploit intelligence are revised — always check the latest version of the advisory before acting."}}]}
Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
📦
📦 npm
Not in CISA KEV
MEDIUM severity

GHSA-37gc-85xm-2ww6 openclaw

MEDIUMFix: openclaw/openclaw@3b4096e

GHSA-37gc-85xm-2ww6 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 asCVE-2026-27009
Published
Feb 18, 2026
Updated
Feb 20, 2026
Affected
1 pkg
Patched
1 / 1
Exploits
None indexed
Exploitation data as of Sep 18, 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 GHSA-37gc-85xm-2ww6.

EPSS Exploitation Probability

via FIRST.org ↗
0.2%probability of exploitation in next 30 days
Lower Risk0.00%
Lower risk than most CVEs15th percentile — riskier than 15% of all scored CVEsHighest risk

EPSS (Exploit Prediction Scoring System) is a daily probability model maintained by FIRST.org. It estimates the likelihood a CVE will be exploited in production environments within the next 30 days, derived from real-world threat intelligence signals.

How urgent is this, really

GHSA-37gc-85xm-2ww6 plotted by exploitation likelihood (EPSS) against impact (CVSS). The shaded corner — EPSS 50%+ and CVSS 7.0+ — is where this CVE doesn't sit, though severity or exploitability alone can still warrant action.

Where this sits among everything scored

Of 376,715 CVEs with a current EPSS score, this one falls in the < 10% band (highlighted). Real counts from FIRST.org, not a sample — log-scaled since the landscape is heavily right-skewed.

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
3.1Mdownloads / 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

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 GHSA-37gc-85xm-2ww6 is resolved across your whole dependency graph.

  3. Workarounds

    If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.

  4. How O3 protects you

    O3 Security's impact-aware SCA analyses which vulnerable code paths your application actually calls, so a match like GHSA-37gc-85xm-2ww6 can be triaged on real exposure rather than presence alone.

Tailored to GHSA-37gc-85xm-2ww6. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.

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 GHSA-37gc-85xm-2ww6 in your dependencies?

O3 Security finds GHSA-37gc-85xm-2ww6 across npm dependencies, including transitive ones, and its impact-aware SCA ranks findings by whether your code actually calls the vulnerable path.

GHSA-37gc-85xm-2ww6: XSS (Medium 5.8) | O3 Security