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-9WQX-G2CW-VC7R

GHSA-9WQX-G2CW-VC7R: Authorization Bypass in OpenClaw Matrix Verification Router

Alon Barad
Alon Barad
Software Engineer

Mar 28, 2026·6 min read·23 visits

Executive Summary (TL;DR)

OpenClaw's Matrix integration fails to enforce DM policy restrictions on key verification requests, allowing unauthorized external users to interact with the bot regardless of the configured allowlist or pairing state.

The OpenClaw AI assistant contains an authorization bypass vulnerability in its Matrix protocol integration. The application fails to apply Direct Message access policies to specific Matrix Key Verification events, allowing unauthorized users to interact with the bot's verification state.

Vulnerability Overview

OpenClaw operates as a personal AI assistant that integrates with the Matrix protocol for messaging and interaction. The application implements a Direct Message (DM) policy engine to restrict which Matrix users are authorized to communicate with the bot. This engine supports multiple configuration states, including open, pairing, allowlist, and disabled, which dictate the ingress filtering rules for incoming messages.

The vulnerability, tracked as GHSA-9WQX-G2CW-VC7R, constitutes an authorization bypass within this Matrix integration. The application successfully filters standard text and command messages through the DM policy engine. However, specific protocol-level events related to encryption verification evade these checks.

By exploiting this oversight, unauthorized users bypass the intended access controls. Attackers communicate with the bot using specific Matrix Key Verification events, prompting the application to process the requests and generate responses despite the sender being excluded by the pairing or allowlist policies.

Root Cause Analysis

The root cause of this vulnerability lies in the architectural separation of standard message routing and verification event handling. OpenClaw utilizes a dedicated module, createMatrixVerificationEventRouter, to process end-to-end encryption verification flows. This router handles events such as m.key.verification.request and updates to Short Authentication String (SAS) summaries.

Standard room messages are evaluated against the DM policy engine before being processed by the application logic. The verification event router, however, operated independently of these ingress filters. When a verification event arrived, the application routed it directly to the verification handler without invoking the authorization policy checks.

This behavior exemplifies CWE-288: Authentication Bypass Using an Alternate Path or Channel. The application trusts the event type over the established session authorization state. Because the verification path lacked the requisite gating mechanisms, the system processed the payload and initiated the state machine for device verification, resulting in unauthorized interaction.

Code Analysis

The vulnerable implementation resided in extensions/matrix/src/matrix/monitor/verification-events.ts. The original functions responsible for routing verification events, specifically routeVerificationEvent and routeVerificationSummary, lacked authorization enforcement. They accepted incoming payloads and immediately processed the verification state machine without validating the sender's identity against the configured access lists.

Commit 2383daf5c4a4e08d9553e0e949552ad755ef9ec2 resolves this flaw by introducing a comprehensive gating function named isVerificationNoticeAuthorized. This function acts as a mandatory authorization checkpoint before any verification logic executes. It explicitly checks the global dmEnabled boolean and the current dmPolicy state.

The patched code evaluates the sender's identity against the configured access controls. If the policy is not set to open, the function retrieves the allowFrom list and the pairing store data. It utilizes resolveMatrixMonitorAccessState to determine if the specific sender holds authorization to interact with the bot. Unauthorized events are dropped, and a verbose log message is generated, closing the alternate execution path.

async function isVerificationNoticeAuthorized(params: {
  senderId: string;
  allowFrom: string[];
  dmEnabled: boolean;
  dmPolicy: "open" | "pairing" | "allowlist" | "disabled";
  readStoreAllowFrom: () => Promise<string[]>;
  logVerboseMessage: (message: string) => void;
}): Promise<boolean> {
  if (!params.dmEnabled || params.dmPolicy === "disabled") {
    params.logVerboseMessage(
      `matrix: blocked verification sender ${params.senderId} (dmPolicy=${params.dmPolicy}, dmEnabled=${String(params.dmEnabled)})`,
    );
    return false;
  }
  if (params.dmPolicy === "open") {
    return true;
  }
  const storeAllowFrom = await params.readStoreAllowFrom();
  const accessState = resolveMatrixMonitorAccessState({
    allowFrom: params.allowFrom,
    storeAllowFrom,
    groupAllowFrom: [],
    roomUsers: [],
    senderId: params.senderId,
    isRoom: false,
  });
  if (accessState.directAllowMatch.allowed) {
    return true;
  }
  params.logVerboseMessage(
    `matrix: blocked verification sender ${params.senderId} (dmPolicy=${params.dmPolicy})`,
  );
  return false;
}

Exploitation Methodology

Exploiting this vulnerability requires network access to the Matrix federation and a valid Matrix user account. The attacker does not require prior authentication or authorization with the target OpenClaw instance. The attacker must know the Matrix ID of the target bot to initiate the communication.

The exploitation process begins with the attacker crafting a specific Matrix protocol message. Instead of sending a standard text message (m.room.message), the attacker constructs a payload with the msgtype field set to m.key.verification.request. This event signals an intent to verify the end-to-end encryption keys between the devices.

Upon receiving this crafted event, the OpenClaw Matrix integration processes the payload through the vulnerable verification router. The bot responds to the attacker with verification guidance or Short Authentication String (SAS) summaries, such as emoji or decimal strings. This interaction confirms that the attacker successfully bypassed the DM policy restrictions and elicited a state-changing response from the application.

Impact Assessment

The vulnerability carries a CVSS 3.1 base score of 5.3, categorized as Moderate severity. The associated vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N reflects a network-based attack vector requiring no privileges or user interaction, with a low impact on system integrity.

The primary consequence of this flaw is the circumvention of intended access controls. Unauthorized entities communicate with the application, forcing it to process cryptographic verification routines. This unauthorized interaction consumes application resources and alters the internal state of the verification handler, polluting the session data with unauthenticated requests.

The impact remains restricted to the Matrix communication layer. The vulnerability does not expose arbitrary command execution capabilities or grant access to the bot's core configuration files. Confidentiality is preserved, as the attacker cannot access the stored data or interaction history of legitimate, authorized users.

Remediation and Mitigation

The definitive remediation for GHSA-9WQX-G2CW-VC7R is upgrading OpenClaw to version 2026.3.26 or later. This release incorporates commit 2383daf5c4a4e08d9553e0e949552ad755ef9ec2, which integrates the isVerificationNoticeAuthorized gating function into the verification event routing pipeline.

System administrators should implement log monitoring to detect attempted exploitation. Following the patch, OpenClaw emits specific verbose log entries when dropping unauthorized verification requests. Monitoring systems should alert on the string matrix: blocked verification sender, which indicates an external entity attempting to initiate the verification flow against policy.

In environments where immediate patching is unfeasible, administrators can mitigate the risk at the network level. Restricting the bot's underlying Matrix homeserver federation to trusted domains prevents unauthorized external users from discovering and interacting with the bot's Matrix ID. This architectural defense limits the attack surface to the local, trusted homeserver population.

Official Patches

OpenClawPatch implementing verification routing authorization checks

Fix Analysis (1)

Technical Appendix

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

Affected Systems

OpenClaw Matrix Protocol IntegrationOpenClaw Verification Event Router

Affected Versions Detail

Product
Affected Versions
Fixed Version
OpenClaw
OpenClaw Project
<= 2026.3.242026.3.26
AttributeDetail
CWE IDCWE-288, CWE-284, CWE-285
Attack VectorNetwork (Matrix Protocol)
CVSS v3.1 Score5.3 (Moderate)
Exploit StatusProof of Concept available via specific Matrix events
ImpactAuthorization Bypass, State Manipulation
Patched Version2026.3.26

MITRE ATT&CK Mapping

T1133External Remote Services
Initial Access
T1548Abuse Elevation Control Mechanism
Privilege Escalation
T1078Valid Accounts
Defense Evasion
CWE-288
Authentication Bypass Using an Alternate Path or Channel

The application does not properly enforce authentication or authorization when a user accesses an alternate communication path or channel.

Vulnerability Timeline

Vulnerability disclosed and published on GitHub Advisory Database by steipete.
2026-03-26
Fix committed to openclaw/openclaw repository (commit 2383daf).
2026-03-26

References & Sources

  • [1]GitHub Advisory: GHSA-9WQX-G2CW-VC7R
  • [2]OpenClaw Repository Security Advisory
  • [3]Alibaba Cloud Security Database Entry

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-71556
7.1

CVE-2026-71556: Symbolic Link Directory Traversal in go-git

A symbolic link directory traversal vulnerability was identified in go-git, a pure Go implementation of the Git specification. This vulnerability allows an attacker to construct a repository that, when checked out or processed, bypasses directory boundaries to write or overwrite arbitrary files on the host filesystem.

Amit Schendel
Amit Schendel
8 views•5 min read
•1 day ago•CVE-2026-71557
6.3

CVE-2026-71557: Path Traversal and Configuration Overwrite in go-git Filesystem Storage Engine

CVE-2026-71557 is a path traversal vulnerability in go-git, a pure-Go implementation of Git. In vulnerable versions, the filesystem-backed storage engine fails to validate reference names before mapping them to on-disk paths. An attacker hosting a malicious Git server can advertise references containing directory traversal sequences, such as 'refs/heads/../../config', to write or overwrite files outside the intended reference storage directory.

Amit Schendel
Amit Schendel
8 views•7 min read
•1 day ago•GHSA-7C4V-FWGW-9RF7
5.3

GHSA-7c4v-fwgw-9rf7: Nuxt Dev Server Discloses Project Root and Workspace UUID via Chrome DevTools Endpoint

An information disclosure vulnerability in the Nuxt development server allows adjacent network attackers to retrieve the absolute project root directory and a persistent workspace UUID by querying the unprotected Chrome DevTools workspace endpoint. This occurs when the development server is bound to a network-reachable interface, allowing requests that bypass the header-based security verification checks.

Alon Barad
Alon Barad
7 views•7 min read
•1 day ago•CVE-2026-66062
5.3

CVE-2026-66062: Regular Expression Denial of Service (ReDoS) in SvelteKit Content Negotiation

A Regular Expression Denial of Service (ReDoS) vulnerability exists in SvelteKit's content negotiation header parser prior to version 2.70.2. An unauthenticated remote attacker can exploit this vulnerability by sending a crafted Accept header with highly repetitive malformed values. This triggers catastrophic backtracking on the single-threaded Node.js/Bun event loop, leading to CPU exhaustion and full denial of service.

Alon Barad
Alon Barad
6 views•6 min read
•2 days ago•CVE-2026-15895
8.4

CVE-2026-15895: OS Command Injection in AWS jsii-diff CLI

An OS command injection vulnerability exists in the npm package loading component of the jsii-diff CLI tool within the AWS jsii framework. Prior to version 1.131.0, when parsing package specifiers prefixed with `npm:`, the tool concatenated user-controlled inputs directly into a shell execution string via child_process.exec. This allows attackers to execute arbitrary shell commands under the context of the running Node.js process.

Amit Schendel
Amit Schendel
7 views•7 min read
•2 days ago•CVE-2026-63220
4.8

CVE-2026-63220: Trust of Untrusted Reverse Proxy Headers in CodeIgniter4

CodeIgniter4 versions prior to v4.7.4 contain a protocol-spoofing vulnerability due to improper verification of upstream reverse proxy forwarding headers. Remote, unauthenticated attackers can inject headers like X-Forwarded-Proto to deceive the framework into identifying an insecure HTTP request as a secure HTTPS connection.

Alon Barad
Alon Barad
9 views•7 min read