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



CVE-2026-53852

CVE-2026-53852: Scope Containment Bypass in OpenClaw Device Re-pairing

Amit Schendel
Amit Schendel
Senior Security Researcher

Jun 19, 2026·8 min read·44 visits

Executive Summary (TL;DR)

An authorization bypass in OpenClaw allows authenticated operators to retain elevated privileges during device re-pairing by submitting an empty scope array, skipping containment guards.

OpenClaw versions prior to 2026.4.25 are subject to a scope containment bypass vulnerability in the device re-pairing component. When processing re-pairing requests, the application backend fails securely, allowing authenticated operators to bypass authorization containment policies. By submitting a re-pairing payload with an empty or omitted scope array, an operator can skip containment checks and retain broader, previously established administrative privileges. This vulnerability is classified under CWE-636: Not Failing Securely ('Failing Open').

Vulnerability Overview

OpenClaw is an open-source platform designed to facilitate connection management, authorization, and message routing for client devices within a Node.js runtime environment. Within this architecture, device sessions are governed by distinct authorization scopes that enforce the principle of least privilege. Under normal operating conditions, client devices authenticate and obtain a specific set of active scopes, which are then validated against backend access control lists during subsequent API requests. This containment strategy limits the lateral capability of individual devices on the network.

During lifecycle operations, client devices frequently undergo a process known as re-pairing. Re-pairing is used to rotate cryptographic key material, update connection parameters, or renegotiate active session scopes. The design of OpenClaw permits a client to request a subset of its allowed scopes to dynamically reduce its exposure during specific operations. This subset negotiation is handled by dedicated authorization guards that evaluate incoming requests to ensure they do not exceed the scope boundary established during initial device provisioning.

CVE-2026-53852 describes a scope containment bypass vulnerability residing in the device re-pairing routine of OpenClaw. The flaw is classified under CWE-636: Not Failing Securely ('Failing Open'). When an authenticated operator submits a re-pairing request containing an empty or falsy scope parameter, the system's authorization guard fails open. Instead of restricting the session to an empty set of permissions, the validation logic is bypassed entirely, allowing the caller to retain or restore a broader set of administrative permissions than intended. This exposes the application to unauthorized actions from otherwise restricted device sessions.

Root Cause Analysis

The technical root cause of CVE-2026-53852 lies within the conditional validation logic of the pairing module, specifically when parsing the requestedScopes array. In secure systems, input validation must verify that requested access privileges are a strict subset of the user's allocated permissions. If the input is empty or omitted, the default safe state must be to grant zero active scopes, thus failing closed. The vulnerability arises because OpenClaw's implementation treats an empty array ([]) or a null value as an indication that no modification to the active session scopes is required, skipping the containment check entirely.

When a device issues a re-pairing request, the application backend processes the request via an authorization handler. The handler evaluates whether the client-supplied requestedScopes contains values. The check is implemented using a conditional statement that only initiates the validation and scope-updating routine if the array exists and has a length greater than zero. If the array is empty, control flows directly to the completion routine without executing the subset constraint logic or modifying the active scope array.

This behavior allows the session to preserve its pre-existing, higher-privileged authorization state. Because the system does not overwrite the active session scopes with the requested empty list, the containment mechanism is effectively bypassed. The failure to handle empty inputs securely violates the principle of complete mediation, wherein every access request must be checked for authority. This logic error allows lower-privileged, contained operators to escape their restriction boundaries.

Code Analysis

The vulnerability is illustrated by analyzing the logical flow within the pairing verification component. The vulnerable code pattern fails to handle empty inputs securely, relying on an improper existence check that permits the bypass of downstream assignments. Under this implementation, the backend does not enforce the restricted scope set when the payload's scopes property is empty.

// Vulnerable Code Pattern
export async function processRepairingRequest(device, requestedScopes: string[]) {
  // Bypassing guard: If requestedScopes is empty, the check is skipped entirely
  if (requestedScopes && requestedScopes.length > 0) {
    for (const scope of requestedScopes) {
      if (!device.allowedScopes.includes(scope)) {
        throw new Error(`Unauthorized scope: ${scope}`);
      }
    }
    device.activeScopes = requestedScopes;
  } else {
    // FAIL OPEN: An empty scope set skips the restriction guard
    logger.warn("Re-pairing request received with empty scope set. Retaining previous active scopes.");
  }
  await device.save();
  return { status: "success", scopes: device.activeScopes };
}

The patched implementation resolves the vulnerability by removing the conditional bypass and standardizing the incoming array. If the requestedScopes parameter is null or undefined, the system defaults to an empty array. The containment guard then iterates over this array, ensuring that any elements present are validated. Crucially, the assignment device.activeScopes = scopesToAuthorize is executed unconditionally, forcing the session to accept the empty set if no valid scopes are provided.

// Repaired Code Pattern
export async function processRepairingRequest(device, requestedScopes: string[]) {
  // Standardize the input array: default to an empty list rather than skipping
  const scopesToAuthorize = requestedScopes || [];
 
  // Containment guard: always validates every scope requested
  for (const scope of scopesToAuthorize) {
    if (!device.allowedScopes.includes(scope)) {
      throw new Error(`Scope containment violation: ${scope} is not allowed.`);
    }
  }
 
  // Assign the exact restricted subset (even if empty)
  device.activeScopes = scopesToAuthorize;
  await device.save();
  return { status: "success", scopes: device.activeScopes };
}

While this fix is effective against the specific vector of empty arrays, overall security remains dependent on strict type-checking at the API gateway layer. If the API parser allows non-array objects or nested structures to reach this logic, further bypass variants might arise. To achieve complete remediation, input schemas must enforce strict validation of the requestedScopes field, rejecting payloads that deviate from a flat array of strings.

Exploitation Methodology

Exploitation of CVE-2026-53852 requires the attacker to possess authenticated operator credentials with at least low-privilege access to the target OpenClaw deployment. The attacker must also have access to an active session associated with a specific device identifier. The objective of the attack is to bypass containment restrictions and retain or elevate the active privileges associated with the device session.

The attack begins with the interception or construction of a legitimate device re-pairing request. Typically, these requests are transmitted via HTTP POST to the pairing endpoints, such as /api/device/repair or /api/v1/auth/repairing. A normal request specifies a list of reduced scopes in the payload. To execute the bypass, the attacker modifies this payload, substituting the requested scopes array with an empty array [] or a null value.

Upon receiving the malformed JSON payload, the vulnerable backend executes the processRepairingRequest routine. Because the requestedScopes array contains zero elements, the application bypasses the scope update logic entirely. The database session remains configured with the broader, pre-existing administrative scopes. The attacker can then issue requests to high-privilege endpoints, executing administrative actions that should have been restricted by the re-pairing containment policy. This permits full lateral movement within the compromised scope boundaries.

Security Impact Assessment

The security impact of CVE-2026-53852 is characterized by the loss of session isolation and the failure of privilege containment mechanisms. Although the National Vulnerability Database assigns a CVSS v3.1 score of 5.4 (Medium), and the CNA assigns a CVSS v4.0 score of 2.3 (Low), the flaw represents a fundamental breakdown of the system's access control architecture. In multi-tenant or multi-tier deployments, the ability to bypass scope restrictions undermines the trust boundaries established between low-privilege operators and high-privilege control resources.

The difference between the CVSS v3.1 and v4.0 ratings lies in the evaluation of environmental requirements and attack attributes. The CVSS v4.0 vector introduces the "Attack Requirements" metric, set to Present (AT:P). This reflects the dependency on a pre-existing configuration state: the target system must have previously granted broader scopes to the session for the bypass to yield elevated access. If the session never possessed high-privilege scopes, submitting an empty array will not escalate permissions.

As of the current assessment, there is no evidence of active exploitation in the wild, and the EPSS score remains low at 0.00164, representing a 0.164% probability of exploitation within 30 days. Despite the low public exploit maturity, organizations deploying OpenClaw in production environments must treat this vulnerability as significant, particularly if their operations rely on device-level scope confinement to isolate untrusted or external networks.

Remediation and Detection Guidance

Remediation of CVE-2026-53852 requires upgrading all affected OpenClaw deployments to version 2026.4.25 or higher. This release contains the updated pairing logic that ensures empty scope requests default to a closed state, effectively removing the bypass vector. Administrators must verify that the deployment successfully transitions to the patched codebase and that no beta-level versions before 2026.4.25 remain active.

If immediate upgrading is not feasible, temporary mitigation can be achieved through the implementation of Web Application Firewall (WAF) rules or API gateway policies. These rules must inspect incoming traffic to the /api/device/repair and /api/v1/auth/repairing endpoints. Any request containing an empty array or missing parameter for the scopes field must be blocked or rejected with an HTTP 400 Bad Request response before the request is processed by the application layer.

In addition to input filtering, security teams must audit application logs for historical pairing requests. Search queries should target payloads where the scopes parameter is empty or null, followed by requests to administrative endpoints from the same session. This forensic analysis is critical for identifying potential past exploitation attempts and assessing whether unauthorized actions were executed prior to the application of the patch. Proper schema validation schemas, such as Joi or Zod, should be integrated into the route handler to enforce non-empty arrays where appropriate.

Official Patches

OpenClawVendor Security Advisory

Technical Appendix

CVSS Score
5.4/ 10
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
EPSS Probability
0.16%
Top 94% most exploited

Affected Systems

OpenClaw (Node.js environments)

Affected Versions Detail

Product
Affected Versions
Fixed Version
OpenClaw
OpenClaw
< 2026.4.252026.4.25
AttributeDetail
CWE IDCWE-636
Attack VectorNetwork
CVSS v3.1 Score5.4 (Medium)
CVSS v4.0 Score2.3 (Low)
EPSS Score0.00164 (0.164% probability)
Exploit StatusNone (No public PoC)
CISA KEV StatusNot Listed

MITRE ATT&CK Mapping

T1548Abuse Elevation Control Mechanism
Privilege Escalation
CWE-636
Not Failing Securely ('Failing Open')

The system 'fails open' when validation is skipped or defaults to a high-privilege configuration upon receiving empty or unexpected input.

Vulnerability Timeline

Vulnerability patched and official security advisory GHSA-8mg9-j9cf-54cj released
2026-06-16
CVE-2026-53852 registered and published
2026-06-16
NVD record updated with CVSS assessment
2026-06-17

References & Sources

  • [1]GitHub Security Advisory GHSA-8mg9-j9cf-54cj
  • [2]VulnCheck Intelligence Advisory
  • [3]Official CVE Record

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

•about 9 hours ago•CVE-2026-12411
8.4

CVE-2026-12411: Cross-Guest Volume Hijack via DevLXD Device PATCH in Canonical LXD

CVE-2026-12411 is a broken access control vulnerability in the DevLXD interface of Canonical LXD versions 6.6 through 6.8. The flaw resides in the devLXDInstancePatchHandler component, which fails to verify storage volume ownership when an instance attaches a new disk device via the /dev/lxd guest socket. When the security.devlxd.management.volumes configuration option is enabled, an untrusted guest or DevLXD identity can issue a crafted HTTP PATCH request referencing another tenant's custom storage volume. The LXD host daemon subsequently mounts the target volume into the requesting guest, permitting unauthorized cross-tenant read and write operations.

Amit Schendel
Amit Schendel
6 views•10 min read
•about 10 hours ago•CVE-2026-105769
9.3

CVE-2026-105769: Azure Entra ID Token Exfiltration in Kaniko via Unanchored ACR Hostname Regex

CVE-2026-105769 (GHSA-5q7h-w9jf-cx97, GO-2026-6225) is an origin validation error and credential exfiltration vulnerability affecting Kaniko prior to version 1.25.20. The flaw stems from an unanchored regular expression in the integrated Azure Container Registry (ACR) credential helper (github.com/chrismellard/docker-credential-acr-env). When Kaniko processes a Dockerfile containing an image reference hosted on a lookalike domain containing an ACR suffix as a substring (e.g., x.azurecr.io.attacker.com), the credential helper acquires a Microsoft Entra ID access token for Azure Resource Manager and transmits it via HTTP POST to the attacker-controlled host.

Amit Schendel
Amit Schendel
10 views•11 min read
•about 11 hours ago•CVE-2026-62300
6.5

CVE-2026-62300: Uncontrolled Resource Consumption in filecoin-pin Daemon

CVE-2026-62300 is an uncontrolled resource consumption vulnerability (CWE-400) affecting the daemon mode of filecoin-pin in versions up to and including 1.1.0. The daemon implements the IPFS Pinning Service API to store content on Filecoin's Proof of Data Possession (PDP) service. Due to the absence of rate limits, concurrency caps, execution timeouts, and Directed Acyclic Graph (DAG) traversal limits, an authenticated user—or an unauthenticated user when authentication is disabled—can exhaust system resources via crafted POST /pins requests.

Amit Schendel
Amit Schendel
8 views•11 min read
•about 12 hours ago•CVE-2026-61536
7.5

CVE-2026-61536: Remote Code Execution via Unsafe Reflection in masci/banks CompletionExtension

CVE-2026-61536 is a high-severity Remote Code Execution (RCE) vulnerability in the masci/banks Python library prior to version 2.4.3. The flaw exists within the CompletionExtension component, which parses JSON-serialized Tool definitions directly from rendered Jinja template bodies inside {% completion %} blocks. When handling tool calls returned by an LLM, the library dynamically resolves the target callable using importlib.import_module() and getattr() based on an unvalidated import_path string. An attacker who can supply or modify prompt templates can inject a malicious Tool JSON object pointing to arbitrary Python functions (such as os.system), bypassing the Jinja SandboxedEnvironment introduced in version 2.4.2 and achieving arbitrary code execution when the LLM invokes the tool.

Alon Barad
Alon Barad
7 views•10 min read
•1 day ago•CVE-2026-93363
4.3

CVE-2026-93363: Improper Access Control in Payload CMS Storage Upload Route

Payload CMS contains a missing authorization vulnerability (CWE-862) in its client-side upload instructions endpoint and the `@payloadcms/storage-vercel-blob` storage adapter. Two distinct logic defects allow authenticated users lacking collection-level `create` or `update` permissions to generate signed upload tokens and upload arbitrary files directly to external cloud storage.

Alon Barad
Alon Barad
7 views•9 min read
•1 day ago•CVE-2026-55098
6.5

CVE-2026-55098: Cross-Database Authorization Bypass via DuckDB Table-Valued I/O Functions in Basekick-Labs Arc

CVE-2026-55098 (GHSA-93cm-2v4m-c56c) is an authorization bypass and sensitive information disclosure vulnerability in Basekick-Labs Arc prior to version 26.06.2. The flaw stems from an incomplete remediation of CVE-2026-47735, which failed to restrict the full suite of DuckDB table-valued filesystem I/O functions and quoted-identifier invocations. Because Arc's query parser ignores function calls during table reference extraction, authenticated users with minimal or empty permissions can invoke functions like parquet_scan(), glob(), and read_blob() to read, enumerate, and extract telemetry data across all tenant databases residing within the shared local storage root.

Alon Barad
Alon Barad
7 views•10 min read