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-7H7G-X2PX-94HJ

GHSA-7H7G-X2PX-94HJ: Credential Exposure in OpenClaw Device Pairing

Amit Schendel
Amit Schendel
Senior Security Researcher

Mar 14, 2026·6 min read·132 visits

Executive Summary (TL;DR)

OpenClaw versions prior to v2026.3.12 expose long-lived gateway credentials in device pairing QR codes and setup strings, enabling persistent unauthorized access if intercepted.

The OpenClaw personal AI assistant ecosystem suffers from an insufficiently protected credentials vulnerability (CWE-522) during the device pairing process. The Gateway generates setup codes that embed permanent, shared authentication tokens rather than ephemeral bootstrap keys. Interception of these codes grants an attacker persistent access to the user's Gateway, exposing integrated AI service API keys, chat histories, and agent configurations. The vulnerability is resolved in version v2026.3.12 through the implementation of short-lived, per-device session credentials.

Vulnerability Overview

The OpenClaw ecosystem utilizes a central Gateway architecture to connect various interfaces, such as mobile applications, CLI tools, and web chat clients. This connection is established through a device pairing mechanism that generates setup codes or QR codes via the /pair endpoint or the openclaw pairing qr command. These codes facilitate the initial authentication handshake between the new device and the Gateway.

Prior to version v2026.3.12, the system exhibited an insufficiently protected credentials vulnerability (CWE-522) in this pairing mechanism. The generated setup codes directly embedded long-lived, shared gateway credentials instead of utilizing ephemeral, single-use bootstrap tokens. This architectural decision inherently linked the security of the permanent authentication token to the physical and logical security of the pairing QR code.

Consequently, any unauthorized actor who successfully intercepts the pairing code obtains the master configuration token for the Gateway. This allows the attacker to silently authenticate their own client interfaces and maintain persistent access to the victim's environment, exposing sensitive AI agent configurations and historical data.

Root Cause Analysis

The vulnerability stems from a failure to implement a multi-stage authentication protocol during device enrollment. When a user requests a new pairing code, the Gateway serializes the primary, persistent configuration token directly into the payload of the setup string or QR code. The system makes no distinction between an enrollment token and a session token.

This implementation violates the principle of least privilege and secure token lifecycle management. Secure pairing protocols mandate the use of short-lived bootstrap tokens that are strictly tied to a brief time window and exist solely to facilitate a cryptographic exchange. In OpenClaw's vulnerable state, the generated code bypassed this exchange entirely, distributing the root authentication material directly.

Because the embedded token is shared across the Gateway and lacks an inherent expiration mechanism, the credential remains valid indefinitely. The system provides no automatic mechanism to detect or invalidate tokens that have been exposed during the pairing phase, forcing reliance on manual administrative rotation to terminate unauthorized sessions.

Code Analysis

Analysis of the vulnerable implementation reveals that the /pair endpoint directly queried the Gateway's active configuration object and extracted the long-lived authentication token. This token was then concatenated into the pairing URI schema and rendered into the final QR code output.

// Vulnerable Implementation (Pre-v2026.3.12)
function generatePairingCode() {
  const config = getGatewayConfig();
  // Directly embedding the persistent token
  const payload = `openclaw://pair?token=${config.masterAuthToken}`;
  return QRCode.generate(payload);
}

The security patch applied in version v2026.3.12 restructures this logic to introduce a bootstrap token generator. The patch removes the extraction of masterAuthToken and replaces it with a call to generateShortLivedBootstrapToken(), which creates a cryptographic nonce tied to a strict time-to-live (TTL) parameter, typically expiring within a few minutes.

// Patched Implementation (v2026.3.12)
function generatePairingCode() {
  // Generate a 60-second ephemeral token
  const bootstrapToken = generateShortLivedBootstrapToken({ expiresIn: 60 });
  const payload = `openclaw://pair?bootstrap=${bootstrapToken}`;
  return QRCode.generate(payload);
}

When a device connects using the patched implementation, it submits the bootstrapToken to the Gateway. The Gateway validates the token's expiration, issues a unique, per-device session credential, and immediately invalidates the bootstrap token. This ensures that even if the QR code is subsequently obtained by an attacker, the payload is cryptographically useless.

Exploitation

Exploitation of this vulnerability requires the attacker to intercept the setup code during the device pairing phase. This interception can occur via physical shoulder surfing, capturing a screenshot of the QR code, or intercepting the string if it is transmitted over insecure out-of-band channels. The attack does not require prior authentication or network access to the Gateway.

Once the setup code is acquired, the attacker utilizes standard OpenClaw client tools to process the payload. By scanning the intercepted QR code or manually inputting the setup string into their own OpenClaw CLI or mobile application, the attacker's client automatically extracts the persistent token and initializes a connection to the victim's Gateway.

The Gateway processes the incoming connection as a legitimate, fully authenticated session because the provided credential exactly matches the master configuration token. The attacker's client receives the same administrative capabilities as the victim's primary device, allowing immediate interaction with the connected AI services and data repositories without triggering secondary authentication prompts.

Impact Assessment

Successful exploitation compromises the confidentiality and integrity of the entire OpenClaw Gateway environment. The attacker gains unrestricted access to the user's personal AI ecosystem, which fundamentally relies on the aggregation of sensitive data to function correctly. This access is persistent and operates with the highest available privilege level within the application context.

The primary impact is the unauthorized exposure of third-party API keys integrated into the Gateway, such as those for OpenAI, Anthropic, or local LLM instances. Furthermore, the attacker gains read-access to all historical chat logs, sensitive prompt engineering data, and customized agent configurations, leading to a complete breach of data confidentiality.

The persistence mechanism significantly amplifies the severity of the vulnerability. Because the attacker holds the long-lived master credential, their access survives application restarts, client disconnections, and legitimate device additions. Unless the victim explicitly monitors active pairings via the CLI and manually rotates the primary configuration token, the attacker maintains covert access indefinitely.

Remediation

To remediate this vulnerability, administrators and users must upgrade the openclaw npm package to version v2026.3.12 or later. This update replaces the flawed pairing logic with the secure, short-lived bootstrap token exchange mechanism. The upgrade process is straightforward and can be executed via standard package managers (npm install -g openclaw@latest).

Upgrading the software alone is insufficient to secure previously compromised deployments. Because the vulnerability exposed the long-lived token itself, users must manually initiate a credential rotation on the Gateway after applying the patch. This action invalidates the old master configuration token and terminates any existing unauthorized sessions that rely on it.

As an ongoing operational security practice, users must execute the device pairing process exclusively in secure, private environments. Generating and displaying QR codes in public spaces or transmitting setup strings over unencrypted communication channels introduces unnecessary risk, even with the updated ephemeral token architecture in place.

Technical Appendix

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

Affected Systems

OpenClaw GatewayOpenClaw CLIopenclaw npm package

Affected Versions Detail

Product
Affected Versions
Fixed Version
openclaw
OpenClaw
< v2026.3.12v2026.3.12
AttributeDetail
Vulnerability TypeInsufficiently Protected Credentials (CWE-522)
Attack VectorPhysical / Adjacent / Network (via intercepted setup payload)
ImpactPersistent Unauthorized Gateway Access
Exploit StatusProof of Concept (PoC)
CVSS Score5.3 (Moderate)
CISA KEVNot Listed

MITRE ATT&CK Mapping

T1552Unsecured Credentials
Credential Access
T1555Credentials from Web Browsers/Applications
Credential Access
CWE-522
Insufficiently Protected Credentials

The application does not sufficiently protect credentials, such as passwords or authentication tokens, while they are stored or transmitted.

Vulnerability Timeline

Bug reports concerning pairing loops and token mismatches initiated in repository.
2026-02-20
GitHub Advisory GHSA-7H7G-X2PX-94HJ published.
2026-02-24
Version v2026.3.12 released incorporating short-lived bootstrap token patch.
2026-02-24

References & Sources

  • [1]GitHub Advisory GHSA-7H7G-X2PX-94HJ
  • [2]OpenClaw Security Policy
  • [3]Release Notes (v2026.3.12)
  • [4]Aliyun Vulnerability Database AVD-2026-1859837

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

•38 minutes ago•CVE-2026-63405
5.9

CVE-2026-63405: Insufficient Verification of Data Authenticity in AnyCable Pusher REST API

AnyCable is a real-time communication server. Prior to version 1.6.15, its Pusher-compatible REST API suffered from an authentication bypass vulnerability because it failed to verify that the request body matched the signature-validated body_md5 parameter. This allows attackers to perform replay attacks with modified body contents.

Amit Schendel
Amit Schendel
2 views•5 min read
•about 2 hours ago•CVE-2026-64847
6.8

CVE-2026-64847: Indefinite Denial of Service via Undrained Stderr in AnyIO Process Pool Workers

A denial-of-service vulnerability exists in AnyIO prior to version 4.14.2. Standard error streams of process-pool workers are connected to an operating system pipe that is never drained by the parent process. This allows a worker to fill the pipe buffer and deadlock indefinitely.

Amit Schendel
Amit Schendel
5 views•6 min read
•about 3 hours ago•CVE-2026-63349
7.0

CVE-2026-63349: Privilege Dropping Bypass and Denial of Service in AnyIO Subprocess Module

CVE-2026-63349 is a critical privilege-dropping bypass vulnerability in the AnyIO asynchronous framework (versions 4.14.0 and 4.14.1) on POSIX platforms. Due to a variable assignment typo, supplementary groups specified by the developer are not correctly propagated to the execution backend, resulting in subprocesses retaining the parent process's elevated supplementary group permissions.

Alon Barad
Alon Barad
7 views•5 min read
•about 4 hours ago•CVE-2026-63406
5.9

CVE-2026-63406: Information Disclosure via Insecure Telemetry and Hardcoded Credentials in AnyCable-Go

CVE-2026-63406 is an information disclosure vulnerability in AnyCable-go prior to version 1.6.15. The built-in telemetry client is enabled by default with a hardcoded public authentication token ('secret'). This client digests highly sensitive configuration parameters and command-line arguments, including JWT secrets and RPC secrets, into a stable SHA-256 fingerprint. This fingerprint is sent over public networks, exposing those administrative secrets to offline dictionary and brute-force attacks if intercepted.

Alon Barad
Alon Barad
5 views•5 min read
•about 5 hours ago•CVE-2026-84992
6.1

CVE-2026-84992: Cross-Site Scripting (XSS) via Fenced Code Block Parsing in md-editor-v3

CVE-2026-84992 is a Cross-Site Scripting (XSS) vulnerability affecting md-editor-v3 before version 6.5.4. It occurs because the fenced-code block language parser directly interpolates unescaped language metadata into unquoted HTML attributes inside the custom rendering callback. This bypasses the built-in XSSPlugin which runs during the parsing phase, before rendering.

Amit Schendel
Amit Schendel
8 views•6 min read
•about 6 hours ago•CVE-2026-81505
7.1

CVE-2026-81505: Broken Object Level Authorization (BOLA) in Convoy Webhook Source Retrieval

CVE-2026-81505 is a high-severity Broken Object Level Authorization (BOLA) / Insecure Direct Object Reference (IDOR) vulnerability in Convoy, a cloud-native webhooks gateway. In affected versions prior to 26.6.8, the single-item Source retrieval API endpoint authorizes project access but fails to confirm if the requested Source belongs to that specific project. This logical flaw allows authenticated users or project-scoped API key holders to bypass tenant isolation boundaries and retrieve unredacted, plaintext message broker credentials for Apache Kafka, Amazon SQS, RabbitMQ, and Google Cloud Pub/Sub belonging to other tenants. This issue is fully patched in version 26.6.8.

Amit Schendel
Amit Schendel
9 views•5 min read