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-XRQ9-JM7V-G9H7

CVE-2026-41909: Incorrect Authorization in OpenClaw Device Pairing

Amit Schendel
Amit Schendel
Senior Security Researcher

Apr 26, 2026·5 min read·52 visits

Executive Summary (TL;DR)

OpenClaw versions prior to 2026.4.20 fail to properly scope pairing RPC methods, allowing any device token with the `operator.pairing` scope to globally list, approve, or reject pairing requests for unrelated devices.

The OpenClaw Agent Platform before version 2026.4.20 contains an incorrect authorization vulnerability (CWE-863) in its gateway pairing management module. A failure to distinguish between administrative operator sessions and device-level sessions allows compromised or malicious devices to view and manipulate pairing requests belonging to other devices within the same gateway scope.

Vulnerability Overview

The OpenClaw Agent Platform exposes a gateway module responsible for managing device lifecycles and pairing requests. CVE-2026-41909 identifies a critical authorization flaw (CWE-863) within this module, specifically affecting how the gateway processes remote procedure calls (RPC) associated with device pairing.

In affected versions, the gateway fails to isolate device-level sessions from administrative sessions when evaluating authorization scopes. Specifically, the system grants broad access to the operator.pairing scope without verifying the context of the caller.

This architectural oversight allows an attacker with low-privileged network access and a single valid device token to impact the integrity and confidentiality of the entire gateway's pairing process. The vulnerability manifests across three specific RPC methods: device.pair.list, device.pair.approve, and device.pair.reject.

Root Cause Analysis

The gateway architecture assigns functional scopes to active sessions, relying heavily on the operator.pairing scope to gate access to pairing workflows. This scope explicitly permits the execution of three global RPC methods designed for managing pending device connections.

Both administrative operator sessions (authenticated via shared secrets) and device-level sessions (authenticated via device-specific tokens) can legitimately hold this scope. The backend authorization logic evaluates the presence of the scope string but ignores the underlying session context type.

Furthermore, the vulnerable RPC method handlers do not validate that the deviceId or requestId supplied in the payload corresponds to the caller's identity. The handlers execute the requested state mutation globally against the gateway's internal device registry.

This creates a horizontal authorization bypass. Any entity holding the operator.pairing scope inherits global administrative control over all pairing actions, entirely circumventing the intended resource isolation model.

Code Analysis

The vulnerable implementation checked only for the presence of the operator.pairing scope without asserting ownership over the target requestId. This allowed any authenticated session with the scope to traverse the entire pending request list.

Commit 5a12f30441d5b0b151f550daa2c5c9e8db61e2e6 remediates this by introducing an isDeviceTokenAuth flag into the session context. This boolean explicitly differentiates limited device tokens from administrative shared secrets during request processing.

The device.pair.list handler was updated to evaluate this new flag. If the session utilizes a device token and lacks the overarching operator.admin scope, the gateway now filters the result set to include only entries where request.deviceId === authz.callerDeviceId.

For the state-mutating methods (approve and reject), the patch introduces a strict pre-flight lookup using getPendingDevicePairing(requestId). The updated handler logic asserts that the deviceId associated with the pending request strictly matches the session's callerDeviceId, securely enforcing resource ownership before executing the mutation.

Exploitation

Exploitation requires the attacker to possess a valid device token with the operator.pairing scope. In standard deployments, this implies the attacker has either compromised an existing paired device or extracted a valid token from network traffic.

The attacker initiates the exploit chain by sending an RPC request to the device.pair.list endpoint. Because the vulnerable gateway does not filter the response based on the caller's identity, the server returns an array of all pending pairing requests currently tracked by the system.

The response leaks sensitive metadata for unrelated devices attempting to join the network, including their specific requestId, deviceId, and cryptographic publicKey.

Armed with a valid requestId, the attacker can issue a device.pair.reject call to perform a targeted denial of service, permanently blocking the joining device. Alternatively, the attacker can submit their own rogue pairing request and use their existing compromised token to call device.pair.approve, bypassing the manual administrative approval workflow.

Impact Assessment

The primary impact of CVE-2026-41909 is a severe authorization bypass that compromises the integrity and confidentiality of the device pairing lifecycle. It effectively neutralizes the trust model required for onboarding new hardware.

Confidentiality is directly impacted because attackers can passively enumerate the metadata and public keys of all devices attempting to join the network. This intelligence can facilitate secondary attacks, such as device spoofing or targeted cryptographic analysis.

Integrity is compromised because attackers hold arbitrary control over the approval queue. The ability to approve rogue devices allows attackers to permanently embed persistent backdoor hardware into the trusted network tier.

While the CVSS v3.1 score is evaluated at 5.4 (Medium) due to the strict prerequisite of obtaining a valid device token, the practical risk is significant for IoT and edge computing environments where strict device segmentation forms the primary security boundary.

Remediation

The definitive remediation is to upgrade the OpenClaw npm package to version 2026.4.20 or later. This version enforces strict identity verification and resource ownership checks for all pairing-related remote procedure calls.

Organizations must audit their existing device deployments immediately. Administrators should review all recently paired devices to identify any unrecognized hardware that may have bypassed the administrative approval workflow during the window of vulnerability.

As a defense-in-depth measure, administrators should audit the assignment of the operator.pairing scope across all active device profiles. This scope must be restricted exclusively to nodes that legitimately require the capability to manage network onboarding, removing it from standard edge devices.

Official Patches

OpenClawGitHub Security Advisory
OpenClawRemediation Commit

Fix Analysis (1)

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.03%
Top 93% most exploited

Affected Systems

OpenClaw Agent Platform Gateway

Affected Versions Detail

Product
Affected Versions
Fixed Version
OpenClaw
OpenClaw
< 2026.4.202026.4.20
AttributeDetail
CVE IDCVE-2026-41909
CWE IDCWE-863
CVSS v3.1 Score5.4 (Medium)
Attack VectorNetwork
Privileges RequiredLow
EPSS Score0.00025
Exploit MaturityProof of Concept

MITRE ATT&CK Mapping

T1068Exploitation for Privilege Escalation
Privilege Escalation
CWE-863
Incorrect Authorization

The software performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check.

Vulnerability Timeline

Fix commit 5a12f30441d5b0b151f550daa2c5c9e8db61e2e6 pushed to main branch
2026-04-20
GHSA-XRQ9-JM7V-G9H7 published by GitHub
2026-04-21
CVE-2026-41909 assigned and published
2026-04-23

References & Sources

  • [1]GitHub Security Advisory: GHSA-xrq9-jm7v-g9h7
  • [2]OpenClaw Fix Commit
  • [3]NVD Record for CVE-2026-41909
  • [4]VulnCheck Advisory

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 1 hour ago•CVE-2026-59864
9.3

CVE-2026-59864: Critical Out-of-Package Local File Inclusion in Microsoft Kiota

CVE-2026-59864 is a critical path traversal vulnerability in Microsoft Kiota occurring when custom OpenAPI extensions specify a nested static template file. Lack of input sanitization allows malicious inputs to write directory traversal sequences directly into plugin manifests, causing out-of-package local file disclosure in downstream environments like Microsoft 365 Copilot.

Amit Schendel
Amit Schendel
3 views•7 min read
•about 16 hours ago•GHSA-X445-F3H2-J279
7.5

GHSA-X445-F3H2-J279: OAuth Provider Confusion in Auth.js and NextAuth.js

A critical logical security flaw exists in Auth.js (formerly NextAuth.js) where signed anti-CSRF check cookies (state, nonce, and PKCE code_verifier) are not bound to the specific Identity Provider that initiated the authorization flow. In multi-provider environments, this allows an attacker to replay valid, cryptographically signed cookies minted during a flow with one provider against a callback handling a different provider. This vulnerability can lead to session hijacking, identity theft, or unauthorized account linking.

Alon Barad
Alon Barad
7 views•7 min read
•about 17 hours ago•GHSA-7RQJ-J65F-68WH
8.1

GHSA-7RQJ-J65F-68WH: Account Takeover via Homoglyph Bypass in NextAuth.js Email Normalization

A security vulnerability in the email normalization logic of NextAuth.js and Auth.js allows remote attackers to bypass email validation constraints and achieve Account Takeover (ATO) through Unicode homoglyph smuggling. Under standard conditions, Unicode compatibility characters represent visually similar symbols that are normalized downstream to ASCII equivalents, facilitating structural validation bypasses. This issue specifically affects passwordless email authentication flows.

Alon Barad
Alon Barad
8 views•6 min read
•about 18 hours ago•GHSA-XMF8-CVQR-RFGJ
7.5

GHSA-XMF8-CVQR-RFGJ: Denial of Service via Uncaught Exception and Session Confusion in Auth.js

Auth.js (formerly NextAuth.js) contains a denial of service vulnerability due to an uncaught URIError in the getToken() token parser when processing malformed percent-encoded sequences in bearer tokens. Additionally, the library was vulnerable to session state confusion and replay attacks because OAuth check cookies (state, nonce, and PKCE) were not properly bound to specific providers, permitting cross-provider token reuse.

Amit Schendel
Amit Schendel
6 views•6 min read
•about 19 hours ago•CVE-2026-53467
5.3

CVE-2026-53467: Heap Information Disclosure via Uninitialized Pixel Cache in ImageMagick MNG Decoder

CVE-2026-53467 is a heap information disclosure vulnerability in the Multiple-image Network Graphics (MNG) decoder of ImageMagick. The vulnerability arises from a failure to zero-initialize newly allocated pixel cache memory buffers. A remote attacker can exploit this by submitting a crafted sparse MNG image file to trigger uninitialized memory preservation. The resulting output contains residual heap bytes, potentially leaking sensitive process memory or assisting in ASLR bypass.

Amit Schendel
Amit Schendel
7 views•6 min read
•about 20 hours ago•CVE-2026-55223
6.3

CVE-2026-55223: Remote Code Execution via Deserialization Gadget Chain in c3p0 Connection Pooling Library

An untrusted deserialization vulnerability exists in the c3p0 JDBC connection pooling library before version 0.14.0. Standard JDBC getter methods conform to the JavaBean property getter pattern, allowing introspection libraries like Apache Commons BeanUtils to evaluate connection properties dynamically during deserialization, leading to arbitrary code execution when chained with a vulnerable database driver or JNDI sink.

Alon Barad
Alon Barad
6 views•6 min read