Apr 26, 2026·5 min read·52 visits
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.
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.
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.
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 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.
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.
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.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N| Product | Affected Versions | Fixed Version |
|---|---|---|
OpenClaw OpenClaw | < 2026.4.20 | 2026.4.20 |
| Attribute | Detail |
|---|---|
| CVE ID | CVE-2026-41909 |
| CWE ID | CWE-863 |
| CVSS v3.1 Score | 5.4 (Medium) |
| Attack Vector | Network |
| Privileges Required | Low |
| EPSS Score | 0.00025 |
| Exploit Maturity | Proof of Concept |
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.
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.
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.
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.
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.
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.
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.