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-F6H3-846H-2R8W

GHSA-f6h3-846h-2r8w: Authorization Bypass in OpenClaw via Improper Recipient Validation

Alon Barad
Alon Barad
Software Engineer

Mar 4, 2026·5 min read·18 visits

Executive Summary (TL;DR)

A logic flaw in OpenClaw's authorization system allows attackers to bypass access controls for elevated commands. By sending a message to a bot that has its own ID whitelisted, the system validates the request based on the recipient's identity rather than the sender's, granting full administrative access to unauthorized users.

OpenClaw (formerly Clawdbot) contains a critical authorization bypass vulnerability in its elevated permissions module. The vulnerability arises from an overly permissive validation logic in the `isApprovedElevatedSender` function, which incorrectly includes the message recipient's identifier (the bot itself) in the authorization check. If an administrator includes the bot's own identity in the `tools.elevated.allowFrom` configuration—a common configuration pattern for self-testing—any unauthenticated remote user can execute commands with elevated privileges by simply sending a message to the bot.

Vulnerability Overview

OpenClaw serves as an AI agent gateway, processing messages from various platforms (e.g., WhatsApp, Discord) and executing tool-based actions. To protect sensitive functionality, the system implements an "elevated mode" restricted to specific users defined in the tools.elevated.allowFrom configuration setting. This setting is intended to act as an allowlist of trusted sender identifiers (phone numbers, user IDs).

The vulnerability exists within the logic that verifies whether a sender is authorized to access this elevated mode. Instead of strictly validating the sender's identity against the allowlist, the system gathered a collection of "tokens" from the message context—including the recipient's address (ctx.To)—and checked if any of these tokens appeared in the configuration. This architectural flaw means that the identity of the target (the bot) effectively vouches for the identity of the requester.

Consequently, if an administrator adds the bot's own identifier to the allowlist (often done to allow the bot to invoke its own internal tools or during testing), the authorization check effectively defaults to true for all incoming messages directed to that bot. This bypasses authentication entirely, exposing privileged tools to the public internet.

Root Cause Analysis

The root cause lies in the implementation of the isApprovedElevatedSender function located in src/auto-reply/reply/reply-elevated.ts. The function was designed to offer flexibility by matching against multiple potential identifiers for a user, such as their username, display name, or unique ID. However, the implementation was overly broad in its scope of "identity candidates."

Specifically, the logic constructed a set of tokens derived from the incoming message context (MsgContext). This set erroneously included ctx.To, which represents the recipient of the message (the OpenClaw instance itself). When the authorization loop runs, it iterates through the configured allowFrom strings and checks if any of them exist in the token set.

Furthermore, the logic failed to distinguish between immutable, verified identifiers (like SenderId or E.164 phone numbers) and mutable, user-controlled metadata (like SenderName or SenderUsername). This lack of type safety meant that even without the ctx.To flaw, an attacker could potentially spoof a trusted user's display name to gain access if the configuration relied on non-unique identifiers.

Code Analysis

The vulnerability is best understood by examining the authorization logic before and after the patch. The flawed implementation incorrectly conflated message targets with message sources.

Vulnerable Logic (Conceptual):

// The set includes the sender AND the recipient (ctx.To)
const identityTokens = [
  ctx.From,
  ctx.To, // <--- CRITICAL FLAW: The bot's own ID is included here
  ctx.SenderName,
  ctx.SenderID
];
 
// If the config allows the bot's ID, this returns true for EVERYONE
return config.allowFrom.some(allowed => identityTokens.includes(allowed));

Patched Logic (Commit 6817c0e): In the patched version, the developers removed the recipient field from the validation scope and introduced strict prefixing to bind allowlist entries to specific field types.

// 1. ctx.To is removed from the check
// 2. Strict prefixes are enforced for mutable fields
// 3. Unprefixed entries ONLY match immutable IDs
 
function isApproved(ctx, allowList) {
  for (const allowed of allowList) {
    // Implicitly pins to verified IDs if no prefix is present
    if (!allowed.includes(':')) {
       if (ctx.SenderId === allowed || ctx.From === allowed) return true;
       continue;
    }
    
    // Requires explicit opt-in for mutable fields
    if (allowed.startsWith('name:') && ctx.SenderName === allowed.slice(5)) return true;
    // ... other checks
  }
  return false;
}

The fix ensures that the allowFrom list is compared strictly against sender attributes, and ambiguous strings are treated as verified IDs by default, preventing spoofing via display names.

Exploitation Scenario

Exploitation of this vulnerability requires no specialized tools, only knowledge of the target's configuration state. The attack vector is strictly logic-based.

Prerequisites: The target OpenClaw instance must have the bot's own identifier (e.g., its WhatsApp phone number +15550199 or Discord Bot ID) present in the tools.elevated.allowFrom array in config.json.

Attack Steps:

  1. Identification: The attacker interacts with the bot to determine if it is running a vulnerable version (e.g., via generic responses or version headers if available).
  2. Triggering: The attacker sends a command that requires elevated permissions. For example: /elevated exec "cat /etc/passwd".
  3. Bypass Execution: The OpenClaw instance receives the message. It extracts the To field (e.g., +15550199). It checks allowFrom. Finding +15550199 in the allowed list, it successfully validates the request, ignoring the fact that the sender is +1999666000 (the attacker).
  4. Impact: The command executes with the permissions of the OpenClaw process, returning the output to the attacker.

Impact Assessment

The impact of this vulnerability is critical as it constitutes a complete authentication bypass for the most privileged functionality within the application. OpenClaw is designed to interface with LLMs and execute tools; granting unauthorized access to the "elevated" toolset typically exposes the underlying host.

  • Remote Code Execution (RCE): If the elevated tools include shell execution or script running capabilities (common in AI agent deployments), an attacker can execute arbitrary commands on the server.
  • Data Exfiltration: Attackers can access sensitive data accessible to the bot, including conversation logs, API keys stored in environment variables, or connected database credentials.
  • Bot Hijacking: The attacker can use the compromised bot to send fraudulent messages to other users, potentially leveraging the bot's trusted status for social engineering or phishing campaigns.

Given the ease of exploitation and the high probability of the vulnerable configuration (adding the bot to the allowlist for self-testing is a common pattern), this issue represents a severe risk to deployments.

Official Patches

OpenClawCommit fixing the authorization bypass logic

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

Affected Systems

OpenClaw (formerly Clawdbot/Moltbot)

Affected Versions Detail

Product
Affected Versions
Fixed Version
OpenClaw
OpenClaw
< 2026.3.22026.3.2
AttributeDetail
CWECWE-285: Improper Authorization
CVSS v3.19.8 (Critical)
Attack VectorNetwork (Remote)
Privileges RequiredNone
User InteractionNone
Patch StatusReleased (2026-02-22)

MITRE ATT&CK Mapping

T1078Valid Accounts
Defense Evasion
T1068Exploitation for Privilege Escalation
Privilege Escalation
CWE-285
Improper Authorization

The software does not perform or incorrectly performs an authorization check when an actor attempts to access a resource or perform an action.

Vulnerability Timeline

Initial research into OpenClaw vulnerabilities published by ZeroPath
2026-02-02
Internal security audit identifies allowFrom logic flaws
2026-02-18
Fix committed to openclaw/openclaw repository
2026-02-22
Disclosure of GHSA-F6H3-846H-2R8W
2026-02-23

References & Sources

  • [1]GitHub Advisory GHSA-F6H3-846H-2R8W
  • [2]ZeroPath Blog: OpenClaw Credential Theft
  • [3]OpenClaw Security Documentation

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

•25 minutes ago•GHSA-JF24-8G2H-2WG7
7.2

GHSA-JF24-8G2H-2WG7: Remote Code Execution in LibreNMS AboutController via Binary Path Substitution

A critical security flaw in LibreNMS allows authenticated administrators to execute arbitrary commands by modifying the configured binary path for snmpget and accessing the About page. This occurs due to insufficient verification of the executable file's identity and integrity prior to executing it with shell_exec.

Amit Schendel
Amit Schendel
0 views•6 min read
•about 1 hour ago•GHSA-7CJ5-V4PP-V632
4.8

GHSA-7cj5-v4pp-v632: Stored Cross-Site Scripting in LibreNMS Graph Descriptions

LibreNMS versions prior to 26.7.0 are vulnerable to a stored Cross-Site Scripting (XSS) vulnerability. An authenticated administrator can inject arbitrary HTML or JavaScript into graph descriptions via specific administrative configuration endpoints. When another authenticated user views the affected graph, the unescaped payload executes within their browser context.

Alon Barad
Alon Barad
1 views•5 min read
•about 2 hours ago•GHSA-7GWW-X7FH-JF9J
8.1

GHSA-7GWW-X7FH-JF9J: SSRF-Driven Stored Cross-Site Scripting in LibreNMS Oxidized Integration

An injection vulnerability in LibreNMS's Oxidized integration component allows administrative or network-positioned attackers to achieve stored cross-site scripting (XSS). By setting a malicious oxidized.url endpoint, the server makes outbound queries and processes returned JSON fields containing malicious HTML or JavaScript. These payloads are outputted directly in the web UI without appropriate output encoding.

Amit Schendel
Amit Schendel
2 views•6 min read
•about 3 hours ago•CVE-2026-17106
7.1

CVE-2026-17106: Container-to-Host Arbitrary File Write in moby/go-archive (CopyEscape)

CVE-2026-17106 (CopyEscape) is a container-to-host arbitrary file-write vulnerability within Docker's archiving and extraction library moby/go-archive. By utilizing a Time-of-Check to Time-of-Use (TOCTOU) race condition during the file-walking stage inside a running container, a malicious container process can force the host engine to produce a compromised tar stream. During client-side extraction, the Docker CLI resolves directory entries through absolute symbolic links, resulting in arbitrary file creation or modification on the host system.

Amit Schendel
Amit Schendel
4 views•6 min read
•about 4 hours ago•CVE-2026-73974
5.5

CVE-2026-73974: Local Path Traversal and Privilege Escalation in Linuxfabrik Monitoring Plugins

CVE-2026-73974 is a local path traversal vulnerability in linuxfabrik-lib and Linuxfabrik Monitoring Plugins. Under standard monitoring configurations running with elevated privileges via sudo, this flaw can be exploited by an unprivileged local user to read arbitrary root-only files, resulting in local privilege escalation.

Alon Barad
Alon Barad
4 views•5 min read
•about 5 hours ago•CVE-2026-71417
7.3

CVE-2026-71417: Authorization Bypass Leading to Unauthorized TLS Certificate Revocation in Netflix Lemur

CVE-2026-71417 is an authorization bypass vulnerability (CWE-639) in Netflix Lemur, an open-source TLS certificate management framework. In versions prior to 1.9.3, a low-privileged authenticated user can bypass role and certificate-level permission boundaries to revoke arbitrary managed TLS certificates at the upstream Certificate Authority (CA). This vulnerability stems from an architectural issue where Lemur evaluates authorization against internal database row ownership rather than the unique, cryptographic identity of the certificate. An attacker can exploit this flaw by uploading a duplicate record of a target certificate and requesting its revocation, triggering a downstream CA-side revocation and a subsequent denial-of-service (DoS) condition for services relying on the target certificate.

Amit Schendel
Amit Schendel
6 views•6 min read