GHSA-qjpc-qf9m-xwmr: OpenClaw: Trusted-proxy Control UI WebSocket accepted client-declared scopes before pairing
With `gateway.auth.mode: "trusted-proxy"`, OpenClaw before 2026.5.18 accepted the operator scopes a Control UI WebSocket client declared before tying them to a server-approved pairing. A restricted proxy user could get `operator.admin` on a live connection. Fixed in openclaw 2026.5.18.
Published Jul 2, 2026 · Analysis Oct 25, 2026
What an attacker can do
In trusted-proxy mode the Gateway trusts the reverse proxy for who the user is, and pairing for which device they use. In affected versions, the Control UI WebSocket took the scopes the client asked for before those scopes were bound to a pairing or to a trusted-proxy authorization baseline. A client could present a fresh, unpaired device identity and request elevated scopes.
The attacker is a restricted user who already passes the trusted proxy and can open the Control UI WebSocket. They declare operator.admin in the connection. The Gateway caches that authority on the live connection, and the client can then call admin-gated Gateway RPCs until the connection closes or is revalidated. The CVSS vector reflects full impact with low privileges.
This does not touch shared-secret Control UI sessions, which are trusted operator sessions by design. Teams that expose the Control UI to several users through an SSO proxy and give some users limited scopes are the ones at risk. The advisory does not say what revalidation involves.
Who is affected
The npm package openclaw before 2026.5.18, only for deployments that use gateway.auth.mode: "trusted-proxy" for Control UI access, where a restricted proxy user can open a Control UI WebSocket.
npm ls openclawUse npm ls -g openclaw for a global install, and check your Gateway config for the trusted-proxy auth mode. Shared-secret Control UI deployments are not affected by this flaw.
openclaw
- Ecosystem
- npm
- Affected
- < 2026.5.18
- Fixed in
- 2026.5.18
- Check
npm ls openclaw
How to fix it
Upgrade to [email protected] or later, the first stable patched version:
npm install [email protected]Before upgrading, the advisory says to restrict trusted-proxy Control UI access to users who should hold the scopes they can request. It also says to restart the Gateway after you change trusted-proxy authorization policy, which closes live connections that may hold cached authority.
How to tell if you were hit
Review Gateway logs for Control UI WebSocket connections from restricted proxy users that used unpaired device identities, and for admin-gated RPC calls made by those users. Compare the admin actions in your logs with the users who should have operator.admin. Check for config, plugin or allowlist changes that no admin made. The advisory gives no log line.
Original advisory
From the GitHub Advisory Database (CC BY 4.0).
Summary
In trusted-proxy Control UI mode, OpenClaw accepted a WebSocket client's declared operator scopes before those scopes were bound to a server-approved pairing or trusted-proxy authorization baseline.
This issue affects trusted-proxy Control UI deployments. It does not apply to shared-secret Control UI sessions, which are treated as trusted operator sessions by design.
Affected configurations
This affects deployments using gateway.auth.mode: "trusted-proxy" for Control UI access where a restricted trusted-proxy user could open a Control UI WebSocket and present a fresh, unpaired device identity with elevated requested scopes.
Impact
An unpaired or restricted trusted-proxy Control UI client could obtain cached operator.admin authority on its live WebSocket connection. That authority could then be used for admin-gated Gateway RPCs until the connection was closed or revalidated.
Patched Versions
The first stable patched version is 2026.5.18.
Mitigations
Upgrade to [email protected] or later. Before upgrading, restrict trusted-proxy Control UI access to users who should have the scopes they can request, and restart the gateway after changing trusted-proxy authorization policy.
Credited to adactum, handmilkingsoftware.
Questions
- Does this affect shared-secret Control UI sessions?
No. The advisory says it applies to trusted-proxy Control UI deployments only. Shared-secret sessions are trusted operator sessions by design.
- How long does the elevated access last?
Until the WebSocket connection is closed or revalidated, per the advisory. Restarting the Gateway ends live connections.
- Which version fixes it?
openclaw 2026.5.18. No CVE is assigned; it is tracked as GHSA-qjpc-qf9m-xwmr.
References
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. The analysis is written by an AI model from the sources listed above and checked by automated rules before it is published. Check versions against the vendor's advisory before you act. Methodology
More OpenClaw vulnerabilities
All OpenClaw entriesCVE-2026-62197
OpenClaw: Browser CDP discovery could accept blocked WebSocket URLs
medium8.5Oct 21, 2026CVE-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, 2026
