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



GHSA-QW99-GRCX-4PVM
9.85.00%

OpenClaw, Open Door: When 0.0.0.0 Equals Localhost

Amit Schendel
Amit Schendel
Senior Security Researcher

Feb 17, 2026·5 min read·1 visit

PoC Available

Executive Summary (TL;DR)

OpenClaw's code thought '0.0.0.0' was a safe loopback address. It wasn't. This logic error exposed the Chrome DevTools Protocol to the network, allowing remote attackers to hijack browsers and steal credentials.

OpenClaw (formerly Clawdbot), a personal AI assistant, contained a critical network binding vulnerability where the application incorrectly treated wildcard IP addresses (0.0.0.0) as loopback addresses. This allowed the sensitive Chrome extension relay service—intended only for local communication—to be exposed to the entire network, granting remote attackers control over the victim's browser via the Chrome DevTools Protocol.

The Hook: Your AI Assistant is a Double Agent

Personal AI assistants are the new shiny toys. We give them access to our calendars, our emails, and, via browser extensions, our active web sessions. OpenClaw (formerly Clawdbot) is one such tool, designed to automate your digital life by bridging the gap between a desktop agent and your Chrome browser. To make this magic happen, it spins up a local relay server.

Ideally, this relay is a whisper—a private conversation between the agent and the browser running on localhost. It utilizes the Chrome DevTools Protocol (CDP), a powerful interface that allows for deep inspection and control of the browser. If you control the CDP, you control the user.

But in OpenClaw's case, the implementation of "privacy" was strictly optional. Due to a fundamental misunderstanding of network interfaces, this private whisper was turned into a broadcast, inviting anyone on the local network (or the internet, if you're unlucky enough to be on a public IP) to drive your browser like a stolen car.

The Flaw: The 'Mr. Worldwide' of Checks

The root cause here is a classic developer face-palm moment: confusing binding addresses with security boundaries. The application needed a way to verify if the host it was about to bind to was "local" and therefore safe. To do this, they implemented a utility function called isLoopbackHost.

In networking 101, 127.0.0.1 (loopback) means "me," and 0.0.0.0 (wildcard) means "everyone." If you bind a server to 0.0.0.0, the operating system listens on every available network interface. If you bind to 127.0.0.1, it only listens to internal traffic.

OpenClaw's developers decided that 0.0.0.0 looked close enough to localhost to be considered safe. They wrote a whitelist that explicitly authorized the wildcard address as a loopback equivalent. This is akin to locking your front door (127.0.0.1) but deciding that leaving all the windows and the back door wide open (0.0.0.0) is basically the same thing because they are all part of the house.

The Code: Hardcoded Hubris

Let's look at the smoking gun. This function was used to validate configuration inputs. If this returned true, the application assumed it was binding to a safe, local-only environment. Note the inclusion of both 0.0.0.0 and the IPv6 equivalent ::.

The Vulnerable Code (src/browser/extension-relay.ts context):

function isLoopbackHost(host: string) {
  const h = host.trim().toLowerCase();
  return (
    h === "localhost" ||
    h === "127.0.0.1" ||
    h === "0.0.0.0" || // <--- HERE IS THE CRIME
    h === "[::1]" ||
    h === "::1" ||
    h === "[::]" ||   // <--- AND HERE (IPv6)
    h === "::"        // <--- AND HERE
  );
}

Because of this list, if a user or a container configuration specified 0.0.0.0 as the host (common in Docker or VPS setups to ensure connectivity), OpenClaw would happily oblige, thinking it was still in "private mode."

The fix, introduced in commit 8d75a496bf5aaab1755c56cf48502d967c75a1d0, finally acknowledges that 0.0.0.0 is definitely not loopback. They switched to a more robust check that actually parses the IP.

The Fix (src/gateway/net.ts):

export function isLoopbackHost(host: string): boolean {
  if (!host) return false;
  const h = host.trim().toLowerCase();
  if (h === "localhost") return true;
  // ... stripping brackets ...
  // explicitly uses a library or logic that knows 0.0.0.0 != 127.0.0.1
  return isLoopbackAddress(unbracket);
}

The Exploit: Driving the Browser via WebSocket

So, how do we weaponize this? If an OpenClaw instance is running and bound to 0.0.0.0, it exposes a WebSocket server used for the Chrome extension relay. This isn't some custom, obscure protocol—it's standard Chrome DevTools Protocol (CDP).

An attacker on the same LAN (or WAN, if no firewall exists) simply scans for the OpenClaw port. Once found, they initiate a WebSocket connection. There is no heavy authentication gatekeeping this specific relay connection in vulnerable versions because the system assumed the connection was local.

Once connected, the attacker can send JSON payloads to execute arbitrary JavaScript in the context of the victim's browser.

This bypasses the need for phishing or malware on the victim's machine. The victim just needs to have the "helpful" AI assistant running.

The Impact: Total Digital Compromise

The impact of this vulnerability is catastrophic for the user's privacy. We aren't just talking about crashing the application; we are talking about full session hijacking.

Because the attacker gains access to the CDP, they can:

  1. Steal Cookies: access session tokens for email, banking, and corporate VPNs.
  2. Read Local Files: If the browser has access to local file URIs.
  3. Control the Agent: The attacker can essentially "become" the AI, triggering whatever tools or skills the agent has access to (e.g., "Hey OpenClaw, read me the last 50 Discord messages").

For an AI assistant marketed as a "second brain," this vulnerability effectively gives that brain a lobotomy and replaces it with a malicious actor.

The Fix: Verification Over Assumption

The remediation is straightforward: stop lying to your code about what an IP address means. The patch removes the wildcard addresses from the isLoopbackHost allowlist.

If you are running OpenClaw, you must upgrade to v2026.2.12 immediately.

If you cannot patch for some reason (why?), you must ensure your host firewall (iptables, Windows Firewall) strictly blocks external access to the ports OpenClaw uses. Never rely on the application layer to enforce network segmentation when the application layer thinks 0.0.0.0 is a secure local address.

Official Patches

OpenClawRelease notes for v2026.2.12 containing the fix

Fix Analysis (1)

Technical Appendix

CVSS Score
9.8/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
EPSS Probability
5.00%
Top 15% most exploited

Affected Systems

OpenClaw Personal AI AssistantClawdbotMoltbot

Affected Versions Detail

Product
Affected Versions
Fixed Version
OpenClaw
OpenClaw
< 2026.2.122026.2.12
AttributeDetail
CWE IDCWE-1327
Attack VectorNetwork
CVSS9.8 (Critical)
ImpactRemote Code Execution / Session Hijacking
Affected ComponentChrome Extension Relay / CDP Endpoint
StatusPatched

MITRE ATT&CK Mapping

T1555Credentials from Password Stores
Credential Access
T1185Browser Session Hijacking
Collection
T1021Remote Services
Lateral Movement
CWE-1327
Binding to an Unrestricted IP Address

Vulnerability Timeline

Vulnerability Disclosed by ZeroPath Research
2026-02-02
Patch Committed (v2026.2.12)
2026-02-10
Patched Version Released
2026-02-12

References & Sources

  • [1]GHSA Advisory
  • [2]ZeroPath Research Blog