CVE-2026-41394 Overview
OpenClaw before version 2026.3.31 contains an authentication bypass vulnerability (CWE-862: Missing Authorization) where unauthenticated plugin-auth HTTP routes incorrectly receive operator runtime write scopes. This flaw allows remote attackers to access these routes without authentication and perform privileged runtime actions that are intended only for authorized operators.
Critical Impact
Unauthenticated attackers can bypass authentication controls and gain operator-level write access to runtime functions, potentially compromising the integrity of the OpenClaw gateway infrastructure.
Affected Products
- OpenClaw versions prior to 2026.3.31
Discovery Timeline
- 2026-04-28 - CVE-2026-41394 published to NVD
- 2026-04-28 - Last updated in NVD database
Technical Details for CVE-2026-41394
Vulnerability Analysis
This authentication bypass vulnerability stems from improper authorization controls in OpenClaw's plugin HTTP route handling. The core issue lies in the createPluginRouteRuntimeClient() function within the gateway server's plugin HTTP handler (src/gateway/server/plugins-http.ts). Prior to the security patch, this function unconditionally assigned WRITE_SCOPE permissions to all plugin route runtime clients, regardless of whether the route required gateway authentication.
The vulnerability allows unauthenticated requests to plugin-auth HTTP routes to receive elevated operator runtime write scopes. This means attackers can perform privileged runtime administrative actions without proper authentication, effectively bypassing the intended access control mechanisms.
Root Cause
The root cause is a missing authorization check in the plugin route runtime client creation logic. The vulnerable implementation unconditionally granted WRITE_SCOPE to all plugin HTTP handlers without considering whether the requesting route required gateway authentication. This design flaw allowed unauthenticated routes to inherit operator-level permissions that should have been restricted to authenticated sessions only.
Attack Vector
The attack vector is network-based, requiring no authentication, no user interaction, and involving low attack complexity. An attacker can exploit this vulnerability by:
- Identifying exposed OpenClaw gateway endpoints running vulnerable versions
- Sending crafted HTTP requests to plugin-auth routes
- Leveraging the incorrectly assigned WRITE_SCOPE to perform unauthorized runtime operations
- Executing privileged administrative actions intended only for authenticated operators
The security patch addresses this by conditionally assigning scopes based on the requiresGatewayAuth parameter:
type SubsystemLogger = ReturnType<typeof createSubsystemLogger>;
-function createPluginRouteRuntimeClient(): GatewayRequestOptions["client"] {
- // Plugin HTTP handlers only need the least-privilege runtime scope.
- // Gateway route auth controls request admission, not runtime admin elevation.
- const scopes = [WRITE_SCOPE];
+function createPluginRouteRuntimeClient(
+ requiresGatewayAuth: boolean,
+): GatewayRequestOptions["client"] {
+ const scopes = requiresGatewayAuth ? [WRITE_SCOPE] : [];
return {
connect: {
minProtocol: PROTOCOL_VERSION,
Source: GitHub Commit Changes
Detection Methods for CVE-2026-41394
Indicators of Compromise
- Unexpected HTTP requests to plugin-auth routes from unauthenticated sources
- Anomalous runtime configuration changes without corresponding authenticated operator sessions
- Gateway logs showing elevated privilege operations without proper authentication tokens
- Unusual patterns of administrative API calls from external IP addresses
Detection Strategies
- Monitor HTTP access logs for unauthenticated requests to plugin-auth endpoints that result in successful operations
- Implement alerting for runtime write operations that lack valid authentication context
- Audit gateway logs for any administrative actions that bypass normal authentication workflows
- Deploy web application firewall rules to flag suspicious access patterns to sensitive plugin routes
Monitoring Recommendations
- Enable detailed logging for all plugin HTTP route requests including authentication status
- Set up real-time alerts for any runtime scope elevation events without proper authentication
- Monitor for configuration drift that could indicate unauthorized administrative changes
- Review access control configurations periodically to ensure authentication requirements are enforced
How to Mitigate CVE-2026-41394
Immediate Actions Required
- Upgrade OpenClaw to version 2026.3.31 or later immediately
- Audit gateway logs for any suspicious activity or unauthorized runtime operations prior to patching
- Review and restrict network access to OpenClaw gateway endpoints
- Implement additional network segmentation to limit exposure of plugin-auth routes
Patch Information
The vulnerability is fixed in OpenClaw version 2026.3.31. The patch modifies the createPluginRouteRuntimeClient() function to accept a requiresGatewayAuth parameter, ensuring that unauthenticated routes receive an empty scope array instead of operator-level write permissions. For detailed patch information, refer to the GitHub Commit Changes and the GitHub Security Advisory.
Workarounds
- Restrict network access to plugin-auth HTTP routes using firewall rules until patching is complete
- Implement a reverse proxy with authentication requirements in front of the OpenClaw gateway
- Disable or remove unnecessary plugin routes that do not require external access
- Enable strict authentication requirements at the network perimeter level
# Configuration example - Restrict access to plugin routes via firewall
# Block external access to plugin-auth endpoints until patch is applied
iptables -A INPUT -p tcp --dport 8080 -m string --string "/plugin-auth" --algo bm -j DROP
# Allow only trusted internal networks to access gateway endpoints
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.

