Skip to content

GHSA-jmmg-jqc7-5qf4 CVE-2026-32025

OpenClaw's browser-origin WebSocket auth hardening gap could enable loopback password brute-force chains

High npm
Severity
0.0 / 10
High · CVSS 4.0
Exploit chance (EPSS)
0.32%
Chance of exploitation in the next 30 days. Higher than 25.41% of scored vulnerabilities.
Known exploited
No
Not in CISA's catalog
Weakness
CWE-287 Improper Authentication
CWE-307 Improper Restriction of Excessive Authentication Attempts
CWE-346 Origin Validation Error
Fix
2026.2.25
Upgrade openclaw to this version or later

Description

This issue is a browser-origin WebSocket auth chain on local loopback deployments using password auth. It is serious, but conditional: an attacker must get the user to open a malicious page and then successfully guess the gateway password.

Context and Preconditions

OpenClaw’s web/gateway surface is designed for local use and trusted-operator workflows. In affected versions, a browser-origin client could combine three behaviors:

  • Origin checks not enforced for some non-Control-UI WebSocket client IDs.
  • Loopback auth attempts exempt from password-failure throttling.
  • Silent local pairing path available to browser-origin non-Control-UI clients.

Successful exploitation requires all of the following:

  • Gateway reachable on loopback (default).
  • Password auth mode in use.
  • Victim opens attacker-controlled web content.
  • Password is guessable within feasible brute-force/dictionary attempts.

Practical Impact

If the password is guessed, an attacker can establish an authenticated operator WebSocket session and invoke control-plane methods available to that role. This is not an unauthenticated internet-exposed RCE class issue by itself; it is a local browser-origin auth-hardening gap with meaningful impact under the conditions above.

Affected Packages / Versions

  • Package: openclaw (npm)
  • Affected versions: <=2026.2.24 (latest published npm version as of February 26, 2026)
  • Patched versions : >=2026.2.25

Fix Commit(s)

  • c736f11a16d6bc27ea62a0fe40fffae4cb071fdb

Fix Details

  • Enforce browser-origin checks for direct browser WebSocket clients beyond Control UI/Webchat (trusted-proxy forwarded flows remain supported).
  • Apply browser-origin auth failure throttling with loopback exemption disabled.
  • Block silent auto-pairing for non-Control-UI browser-origin clients.

Release Process Note

patched_versions is pre-set to the planned next npm release (2026.2.25) so once that release is published, the advisory is published.

OpenClaw thanks @luz-oasis for reporting.

Affected versions

npm

PackageVulnerableFixed in
openclaw
< 2026.2.25
2026.2.25

How to fix

Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.

openclaw npm → 2026.2.25

npm
npm install openclaw@2026.2.25
yarn
yarn add openclaw@2026.2.25
pnpm
pnpm add openclaw@2026.2.25

Severity breakdown

CVSS 4.0 0.0

CVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N

Attack vector
Local
Attack complexity
High
Attack requirements
Present
Privileges required
Low
User interaction
None
Confidentiality (vulnerable system)
None
Integrity (vulnerable system)
High
Availability (vulnerable system)
None
Confidentiality (subsequent systems)
None
Integrity (subsequent systems)
None
Availability (subsequent systems)
None

CVSS 3.1 7.5

CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H

Attack vector
Network
Attack complexity
High
Privileges required
None
User interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Weakness

CWE-287: Improper Authentication

When an actor claims to have a given identity, the product does not prove or insufficiently proves that the claim is correct.

How to prevent it
  • Architecture and Design: Use an authentication framework or library such as the OWASP ESAPI Authentication feature.

CWE-307: Improper Restriction of Excessive Authentication Attempts

The product does not implement sufficient measures to prevent multiple failed authentication attempts within a short time frame.

How to prevent it
  • Architecture and Design: Common protection mechanisms include: Disconnecting the user after a small number of failed attempts Implementing a timeout Locking out a targeted account Requiring a computational task on the user's part.
  • Architecture and Design: Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid [REF-1482]. Consider using libraries with authentication capabilities such as OpenSSL or the ESAPI Authenticator. [REF-45]

CWE-346: Origin Validation Error

The product does not properly verify that the source of data or communication is valid.

References

Timeline

  1. Published
  2. Last updated by the source
  3. Latest EPSS score
AdvisorySeverityWhy it's related
GHSA-3x84-qq85-fj65
OpenClaw: Browser CDP discovery could accept blocked WebSocket URLs
High Also affects openclaw
GHSA-9c3v-684m-579c
OpenClaw MCP SSE redirects could forward Authorization headers
Medium Also affects openclaw
GHSA-f397-5vjw-v2c2
OpenClaw: Shell inline-command parsing could miss an allowlist check
High Also affects openclaw
GHSA-rx78-29qr-5hq8
OpenClaw: Workspace-derived service PATH could influence trash command selection
High Also affects openclaw
GHSA-ccwh-wwpp-6wg5
OpenClaw: Host environment sanitizer missed two Node.js control variables
High Also affects openclaw
GHSA-985f-72mj-8gf7
OpenClaw: Tool group policy callers could accept unvalidated group IDs
Medium Also affects openclaw
GHSA-9v8j-9c9g-w66c
OpenClaw: Bootstrap token replay could widen pending pairing scopes
Medium Also affects openclaw
GHSA-c226-q6fx-6j6c
OpenClaw: macOS Swift exec allowlist missed combined POSIX inline flags
Medium Also affects openclaw
Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor