Jun 19, 2026·5 min read·29 visits
A missing authorization check (CWE-862) in the OpenClaw 'focus' command allows authenticated low-privilege users to change the gateway's focus state, bypassing configured controlScope isolation boundaries.
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.
OpenClaw functions as an open-source personal AI assistant gateway designed to route command executions across multiple user sessions, applications, and messaging channels. To enforce security boundaries between these disparate environments, the application implements an access control mechanism referred to as 'controlScope'. The controlScope configuration dictates which commands a given user, channel, or token can execute within the gateway's runtime environment.
A flaw exists in the command registration and routing component of OpenClaw. Specifically, the 'focus' command pathway does not perform validation against the caller's controlScope. This exposes an unauthorized execution path for any caller possessing authenticated access to the gateway interface.
While OpenClaw relies on a trusted-operator model for standard operations, this flaw allows low-privilege callers to transcend their designated scope. The exposure remains confined to environments where multiple logical boundaries share a single gateway node, and where untrusted or restricted operators can execute basic gateway commands.
The fundamental flaw resides in the lack of explicit authorization checks within the command router for the 'focus' feature, classified under CWE-862 (Missing Authorization). During initialization, the gateway registers commands alongside their required access parameters. However, the registration parameters for 'focus' omitted the validation hook that checks the caller's active context against the target scope.
When a command is issued, the routing logic processes the payload and maps it to the registered execution callback. If the command implementation lacks an explicit declaration to verify the incoming scope, the routing engine executes the state transition unconditionally. The 'focus' command is designed to update state parameters such as active windows, current database schemas, or active user contexts.
Consequently, an authenticated user restricted to a low-trust context can issue a 'focus' command that alters the active state of a high-trust context. The router validates that the user is authenticated, but it fails to confirm whether the user is authorized to perform state modifications on the specified target, allowing unauthorized cross-scope state manipulation.
The following flowchart illustrates the difference between secure command execution pathways and the insecure 'focus' command execution pathway that led to CVE-2026-53850.
This workflow demonstrates that while standard restricted commands must clear the validation gate, the 'focus' execution path bypasses the access-control filter entirely, leading directly to state modification.
An examination of the command registration and execution layers in vulnerable versions reveals how the verification step was bypassed. Below is an illustrative representation of the vulnerable routing logic compared with the corrected implementation.
// In vulnerable versions, command declarations did not enforce controlScope restrictions systematically
router.register('focus', async (context, args) => {
// VULNERABILITY: No check is performed to see if context.user.scope satisfies args.targetScope
state.setFocus(args.target);
return { status: 'success', currentFocus: args.target };
});// In version 2026.4.25, the registration explicitly validates the caller context
router.register('focus', async (context, args) => {
// FIX: Validate the caller's controlScope against the target system resource
if (!context.controlScope.canAccess(args.target)) {
throw new AuthorizationError('Inadequate privilege level for the specified target');
}
state.setFocus(args.target);
return { status: 'success', currentFocus: args.target };
});By adding explicit verification against the target parameter, the gateway prevents unauthorized actors from targeting assets outside their administrative domain. This mitigation completely resolves the bypass, provided that the authorization helper is applied to all active commands.
To exploit this vulnerability, an attacker must first obtain a valid channel or session key allowing command input to the gateway. The exploit does not require administrator privileges, only standard operator access. Once authenticated, the attacker submits a structured command containing the target parameter they wish to manipulate.
The attacker assesses the active workspace to identify administrative targets. This is accomplished by reviewing accessible public directories or metadata exposed within the standard user interface.
The attacker sends the command payload targeting a restricted context. An example command sequence is structured as follows:
{
"command": "focus",
"arguments": {
"target": "admin-session-04",
"workspace": "restricted-management-zone"
}
}The routing engine processes the instruction. Since no controlScope checks are enforced, the engine shifts the gateway's global active focus parameter to admin-session-04. Subsequent automated actions, context queries, or assistant logs are directed to or evaluated against this administrative channel, leaking information or executing subsequent commands in the context of the hijacked session.
The primary impact of CVE-2026-53850 is a loss of integrity. The CVSS v3.1 score is calculated as 5.5 (Medium), with a vector of CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N. Because the focus state dictates where subsequent instructions or queries are targeted, manipulating this parameter allows a low-privilege operator to redirect processing workflows into high-privilege zones.
The vulnerability does not directly expose variables or system files (Confidentiality: None), nor does it crash the gateway process (Availability: None). However, the alteration of execution scope can be chained with other processing tools to execute unauthorized operations. If the assistant gateway is configured with sensitive downstream plugins (such as local file execution or database write privileges), altering the focus state can cause the assistant to process malicious inputs inside a privileged zone.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N| Product | Affected Versions | Fixed Version |
|---|---|---|
openclaw OpenClaw | < 2026.4.25 | 2026.4.25 |
| Attribute | Detail |
|---|---|
| CWE ID | CWE-862 (Missing Authorization) |
| Attack Vector | Local (AV:L) |
| CVSS v3.1 Base Score | 5.5 |
| CVSS v4.0 Base Score | 6.8 |
| EPSS Score | 0.00093 (0.71st percentile) |
| Impact Class | Integrity (High) |
| Exploit Status | No public functional exploit or proof-of-concept exists |
| CISA KEV Status | Not listed |
The acquisition or verification of permissions is not performed on an active execution path, enabling an actor to access resources or modify state without matching authorization privileges.
CVE-2026-105795 (GHSA-6gw6-rv2g-25mg) is a critical path traversal vulnerability in Microsoft Kiota, an OpenAPI-based HTTP client and plugin manifest generator. In affected versions (1.25.1 to < 1.35.0), Kiota propagates the unvalidated `x-ai-capabilities.response_semantics.oauth_card_path` vendor extension directly into generated API plugin manifests, leading to potential path traversal exploitation by downstream consumers.
CVE-2026-105805 is an authorization bypass and information disclosure vulnerability in Payload CMS. Before version 3.88.0, user-controlled sorting was executed at the database level before field-level access control rules and data redaction were applied. This allowed unauthorized users to reconstruct restricted field values through a sorting side-channel.
Payload CMS is subject to an information disclosure vulnerability where users with query permissions can bypass field-level access controls. By leveraging polymorphic join filters, an attacker can perform blind-inference queries to retrieve restricted or hidden fields such as password reset tokens.
An open redirect vulnerability exists in Payload CMS within its Next.js-based authentication routing components. The sanitization utility fails to properly account for control characters and ambiguous encodings, allowing unauthenticated attackers to redirect users to external malicious domains after successful authentication.
A critical SQL Injection and access control bypass vulnerability was identified in Payload CMS database adapters (SQLite and PostgreSQL using Drizzle ORM internally). The vulnerability arises from case-sensitive logical operator checks during path validation and unvalidated sort queries. This allows remote attackers to bypass access control rules, execute unauthorized queries, and retrieve sensitive data through blind SQL injection side channels.
A critical prototype pollution vulnerability in the import-export plugin of Payload CMS allows unauthenticated remote attackers to bypass access controls and achieve remote code execution.