Jun 19, 2026·5 min read·4 visits
OpenClaw versions prior to 2026.5.3 authenticate Zalo users using their mutable display names rather than unique user IDs. Attackers can bypass access controls simply by changing their display name to match an authorized user's name.
CVE-2026-53857 (GHSA-8c59-hr4w-qg69) is a high-severity authentication bypass vulnerability in OpenClaw (formerly Moltbot/Clawdbot) versions prior to 2026.5.3. The vulnerability arises from an insecure authorization mechanism in the Zalo messaging platform integration. Instead of matching access-control whitelist criteria to persistent and immutable user identifiers, the OpenClaw framework evaluated permissions based on mutable, user-controlled display names. An attacker can exploit this weakness by changing their Zalo profile display name to match a legitimate identity authorized in the allowFrom policy, gaining full access to restricted agent capabilities.
The OpenClaw integration framework incorporates a flexible chatbot and autonomous agent architecture designed to operate across several messaging platforms, including the Zalo communication network. To restrict access to sensitive backend commands, LLM interactions, and proprietary workflows, administrators configure an access-control whitelist parameter known as allowFrom. This configuration directs the framework to only process incoming messages and execute agent capabilities when they originate from trusted, authorized contacts.
However, in versions preceding 2026.5.3, the system trust boundary was structured incorrectly. Rather than relying on cryptographically unique or system-assigned backend identifiers, the underlying access-control check evaluated the incoming user identity using the mutable 'Display Name' metadata provided by the Zalo API. This implementation creates a direct path for authentication bypass.
An attacker who knows the display name of any authorized user listed in the configuration can manipulate their own profile settings to adopt the target name. Because the OpenClaw integration engine matches raw string values of presentation metadata, the attacker is authorized as the legitimate target. This flaw allows unauthorized commands to be executed without triggering any structural errors in the messaging flow.
The technical failure resides in the message processing logic of the Zalo channel adapter within the OpenClaw codebase. In the Zalo platform architecture, each registered account contains two distinct identity markers: a stable, system-assigned immutable account identifier (such as a UUID or internal user hash) and a profile display name, which is fully customizable and controlled by the account owner.
When a Zalo user transmits a message to the bot, the platform dispatches a webhook event containing a structured JSON payload to the OpenClaw server. This payload contains both the user's stable unique ID and the current display name string in the sender metadata object. In vulnerable versions of the framework, the allowFrom verification function parsed the incoming event but bypassed the unique identifier entirely during policy matching.
Instead, the logic looped through the configured whitelist strings and compared them directly against the sender.display_name property. Because this property represents user-controlled metadata rather than an authenticated identity, the matching logic is unable to guarantee authenticity. Consequently, any network-adjacent user can construct an identical display name string and trigger a positive match inside the policy engine.
To understand the logic flaw, consider the implementation of the authorization checker prior to version 2026.5.3. The vulnerable verification loop processed incoming message objects by inspecting the presentation layer metadata:
// Vulnerable logic in OpenClaw < 2026.5.3
func (b *Bot) IsAuthorized(sender *ZaloSender) bool {
for _, allowed := range b.Config.AllowFrom {
// INSECURE: Comparing mutable presentation name
if sender.DisplayName == allowed {
return true
}
}
return false
}The matching comparison operates on the DisplayName string, which is vulnerable to collision and spoofing. To address this risk, the patch in version 2026.5.3 alters the schema definition and validation routine to bind authorization checks strictly to immutable system identifiers:
// Patched logic in OpenClaw >= 2026.5.3
func (b *Bot) IsAuthorized(sender *ZaloSender) bool {
for _, allowedID := range b.Config.AllowFrom {
// SECURE: Comparing system-assigned immutable identifier
if sender.UserID == allowedID {
return true
}
}
return false
}The revised architecture ensures that even if an unauthorized sender alters their local display name to match a legitimate administrator's name, the Zalo platform API continues to report the attacker's actual, distinct UserID. The policy evaluation engine fails to find this UserID in the allowFrom whitelist, successfully blocking the request.
Exploiting this vulnerability requires no specialized exploitation frameworks, binary payloads, or complex timing attacks. An attacker must first identify a valid user listed in the target's allowFrom configuration. This information can often be gathered via OSINT, public interaction logs, shared group chats, or simple trial-and-error using common administrator names.
Once a target identity is identified, the attacker opens their own Zalo profile settings and modifies their personal display name to match the target string exactly. The attacker then initiates contact with the OpenClaw bot instance. Since the Zalo API dynamically includes the updated display name string in incoming webhook payloads, the dispatched event carries the spoofed attribute.
The server receives the request, parses the payload, and compares the spoofed display name string directly against the authorized configurations. The condition evaluates to true, authorizing the attacker session to run administrative functions or access sensitive context windows.
The impact of this vulnerability is high, carrying a CVSS v4.0 score of 8.6. Because OpenClaw agents are often configured with extensive access to internal APIs, private vector databases, and system shells, bypassing the allowFrom policy exposes these integrations directly to external manipulation.
An attacker can use this bypass to extract sensitive files, query internal databases via natural language commands, or exhaust LLM API quotas. Furthermore, if the agent has been configured with execution-level toolsets (such as system shell integration or code interpreters), successful exploitation can lead to remote code execution on the hosting infrastructure.
Because the vulnerability is exploited using valid platform interactions, host-based firewalls, traditional network intrusion detection systems, and web application firewalls will not detect the attack. The request mimics a legitimate incoming chat message, rendering standard endpoint protection tools blind to the spoofing activity.
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N| Product | Affected Versions | Fixed Version |
|---|---|---|
OpenClaw OpenClaw | < 2026.5.3 | 2026.5.3 |
| Attribute | Detail |
|---|---|
| CWE ID | CWE-290 (Authentication Bypass by Spoofing) |
| Attack Vector | Network (AV:N) |
| CVSS v4.0 Score | 8.6 (High) |
| EPSS Score | 0.00213 (Percentile: 11.50%) |
| Impact | High Confidentiality, High Integrity (VC:H/VI:H) |
| Exploit Status | No public exploits or weaponized PoCs available |
| KEV Status | Not listed in the CISA KEV Catalog |
The software performs security checks based on attributes that can be spoofed, allowing attackers to bypass authentication controls.
OpenClaw versions before 2026.4.24 contain an insecure file permissions vulnerability in the configuration recovery mechanism. When a local configuration repair is triggered, the recovery path restores the primary configuration file, `openclaw.json`, with overly broad permissions. This enables low-privileged local attackers in multi-user or shared hosting environments to read sensitive system credentials, API tokens, and private assistant configurations.
A missing authorization vulnerability (CWE-862) exists within the shared memory search interface (memory-wiki) of OpenClaw prior to version 2026.4.29. The application fails to apply visibility controls to search queries targeting `/api/memory-wiki/search`. Consequently, an authenticated attacker with low-level privileges can query the global index and exfiltrate sensitive memory entries belonging to other active or historical sessions without authorization.
CVE-2026-53860 details an authorization bypass in the OpenClaw AI gateway's BlueBubbles integration. The vulnerability arises because the sender policy check validates mutable conversation-level metadata rather than verified, stable sender identities. This allows unauthorized group chat participants to manipulate metadata, match allowlist rules, and run unauthorized AI agent actions.
An incorrect authorization vulnerability in OpenClaw before 2026.5.12 allows authenticated attackers with low privileges to bypass the argument restriction policy on Linux and macOS platforms. By exploiting the omitted validation of the argPattern parameter, attackers can execute allowlisted binaries with arbitrary command line arguments, leading to unauthorized code execution and system compromise.
OpenClaw versions prior to 2026.4.29 contain an untrusted search path vulnerability in the install helper module. By loading an untrusted workspace containing a crafted .env file, the application allows overriding critical environment variables, specifically npm_execpath, leading to arbitrary command execution in the context of the running process. This vulnerability is tracked as CVE-2026-53846 and GHSA-24vr-rprv-67rf.
An authorization bypass vulnerability in OpenClaw versions prior to 2026.4.25 allows authenticated users to execute the 'focus' command without proper controlScope validation. Because the routing engine fails to enforce configured access policies on this specific command pathway, low-privilege operators can alter the gateway's global focus state, leading to potential unauthorized cross-channel or cross-session interaction depending on downstream configuration.