CVE-2026-42431 Overview
CVE-2026-42431 is an authorization bypass vulnerability in OpenClaw before version 2026.4.8 that exists within the node.invoke(browser.proxy) functionality. This security bypass allows attackers to circumvent the browser.request persistent profile-mutation guard, enabling unauthorized modification of browser configurations and persistent browser profiles.
Critical Impact
Attackers exploiting this vulnerability can bypass security controls and mutate persistent browser profiles, potentially compromising user sessions, stored credentials, and browser security settings.
Affected Products
- OpenClaw versions prior to 2026.4.8
- OpenClaw Node.js package (all versions before the security patch)
Discovery Timeline
- 2026-04-28 - CVE-2026-42431 published to NVD
- 2026-04-30 - Last updated in NVD database
Technical Details for CVE-2026-42431
Vulnerability Analysis
This vulnerability is classified as CWE-863 (Incorrect Authorization), where the application fails to properly enforce authorization checks when processing requests through the node.invoke(browser.proxy) path. The flaw allows attackers with low-privilege network access to bypass the persistent profile-mutation guard that normally protects browser configurations from unauthorized modification.
The vulnerable code path involves the fetch guard mechanism in OpenClaw's network infrastructure. When requests are routed through the trusted environment proxy dispatch, the DNS pinning resolution was being performed prematurely, before determining whether the trusted proxy path should be used. This timing issue created a window where the persistent profile-mutation guard could be circumvented.
Root Cause
The root cause lies in improper ordering of security checks within the fetch-guard.ts module. The DNS pinning resolution (resolvePinnedHostnameWithPolicy) was called unconditionally before evaluating whether the request should use the trusted environment proxy. This premature execution allowed attackers to exploit the timing gap and bypass authorization controls intended to protect persistent browser profiles.
Attack Vector
The attack is network-based and requires low privileges to execute. An attacker can craft malicious requests through the node.invoke(browser.proxy) interface that exploit the timing vulnerability in the fetch guard. By manipulating the request flow, attackers can bypass the profile-mutation guard and gain unauthorized write access to persistent browser configurations.
The following patch addresses the vulnerability by moving the DNS pinning resolution inside the conditional branch, ensuring it only executes when the trusted environment proxy is not being used:
try {
assertExplicitProxySupportsPinnedDns(parsedUrl, params.dispatcherPolicy, params.pinDns);
await assertExplicitProxyAllowed(params.dispatcherPolicy, params.lookupFn, params.policy);
- const pinned = await resolvePinnedHostnameWithPolicy(parsedUrl.hostname, {
- lookupFn: params.lookupFn,
- policy: params.policy,
- });
const canUseTrustedEnvProxy =
mode === GUARDED_FETCH_MODE.TRUSTED_ENV_PROXY && hasProxyEnvConfigured();
if (canUseTrustedEnvProxy) {
dispatcher = createHttp1EnvHttpProxyAgent();
} else if (params.pinDns === false) {
dispatcher = createPolicyDispatcherWithoutPinnedDns(params.dispatcherPolicy);
} else {
+ const pinned = await resolvePinnedHostnameWithPolicy(parsedUrl.hostname, {
+ lookupFn: params.lookupFn,
+ policy: params.policy,
+ });
dispatcher = createPinnedDispatcher(pinned, params.dispatcherPolicy, params.policy);
}
Source: GitHub Commit Update
Detection Methods for CVE-2026-42431
Indicators of Compromise
- Unexpected modifications to persistent browser profile configurations
- Anomalous requests to node.invoke(browser.proxy) endpoints from unauthorized sources
- Unusual proxy dispatch patterns bypassing normal authorization flows
- Changes to browser settings or stored credentials without user interaction
Detection Strategies
- Monitor network traffic for suspicious requests targeting the browser.proxy invoke path
- Implement logging and alerting on all persistent profile modification attempts
- Deploy application-layer intrusion detection to identify authorization bypass attempts
- Review access logs for low-privilege accounts attempting profile mutations
Monitoring Recommendations
- Enable verbose logging for the fetch-guard module and proxy dispatch operations
- Set up alerts for any profile-mutation events outside of normal user workflows
- Monitor for multiple failed authorization attempts followed by successful profile changes
- Track DNS pinning behavior and dispatcher creation patterns for anomalies
How to Mitigate CVE-2026-42431
Immediate Actions Required
- Upgrade OpenClaw to version 2026.4.8 or later immediately
- Audit existing persistent browser profiles for unauthorized modifications
- Review application logs for evidence of exploitation attempts
- Temporarily disable the node.invoke(browser.proxy) functionality if upgrade is not immediately possible
Patch Information
OpenClaw has released a security patch in version 2026.4.8 that addresses this vulnerability by reordering the security checks in the fetch-guard module. The fix ensures DNS pinning resolution only occurs after determining the appropriate dispatcher path, preventing the authorization bypass.
For detailed patch information, refer to the GitHub Commit Update and the GitHub Security Advisory.
Workarounds
- Restrict network access to the node.invoke(browser.proxy) endpoint to trusted sources only
- Implement additional authorization layers at the network or application gateway level
- Enable strict monitoring and logging for all profile mutation operations
- Consider disabling persistent profile features until the patch can be applied
# Example: Restrict access to proxy invoke endpoint via firewall rules
# Limit access to trusted internal networks only
iptables -A INPUT -p tcp --dport 8080 -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j DROP
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

