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-CWQ8-6F96-G3Q4

GHSA-CWQ8-6F96-G3Q4: Fail-Open Security Bypass in OpenClaw Plugin Installation

Amit Schendel
Amit Schendel
Senior Security Researcher

Apr 2, 2026·5 min read·24 visits

Executive Summary (TL;DR)

A fail-open flaw in OpenClaw allows malicious plugins to bypass security scans and execute arbitrary code by triggering scanner errors or relying on ignored warnings.

OpenClaw versions prior to March 30, 2026, contain a critical fail-open vulnerability in the plugin installation mechanism. The security scanner designed to block dangerous code patterns fails to halt the installation process when encountering internal errors or critical security findings.

Vulnerability Overview

OpenClaw utilizes a plugin and skills architecture to extend the capabilities of the personal AI assistant. To secure this ecosystem, the application implements a security gate during the installation process. This gate relies on a module named BuiltinInstallScan to inspect source code for dangerous patterns, such as the use of eval() or child_process.exec().

Prior to the March 30, 2026 update, this security mechanism contained a logic flaw resulting in a fail-open posture. The vulnerability occurs when the scanner processes malformed code or encounters explicitly blocked functions. The system logs these events but fails to terminate the installation pipeline.

By bypassing the intended security restrictions, attackers can deploy malicious plugins into the host environment. The execution of unverified code within the AI assistant's context leads to severe security boundary violations.

Root Cause Analysis

The vulnerability stems from improper handling of exceptional conditions within the plugin installation logic. Specifically, the functions scanDirectoryTarget and scanBundleInstallSourceRuntime process the output of the static analyzer. These functions fail to translate critical findings or internal scanner errors into terminal states for the installation loop.

When the static analyzer encounters an error or identifies critical security violations, it generates a result object indicating the failure. The installation pipeline inspects this object, emits a console warning, and then proceeds with the installation. The system incorrectly prioritizes availability and seamless installation over strict security enforcement.

This design flaw creates two distinct failure modes. First, the system ignores intentional malicious operations flagged by the scanner. Second, it allows malformed plugins that crash the analyzer to bypass inspection entirely. Both scenarios result in the deployment of untrusted code.

Code Analysis

The pre-patch implementation relies on a try-catch block that suppresses errors without interrupting the control flow. The vulnerable code resides in src/plugins/install.ts and src/plugins/install-security-scan.runtime.ts. When an exception occurs during the scan, the error is caught, logged, and execution continues.

// Pre-patch logic in install-security-scan.runtime.ts
try {
  const builtinScan = await scanDirectoryTarget({ /* parameters */ });
  // The system logs warnings for critical findings but returns a success state.
} catch (err) {
  params.logger.warn?.(`Scan failed: ${err}. Installation continues...`);
}

The patch introduced in commit 7a953a52271b9188a5fa830739a4366614ff9916 resolves this issue by enforcing a fail-closed model. The developers introduced a new helper function named buildBlockedScanResult. This function explicitly validates the scan status and the count of critical findings.

function buildBlockedScanResult(params: {
  builtinScan: BuiltinInstallScan;
  targetLabel: string;
}): InstallSecurityScanResult | undefined {
  if (params.builtinScan.status === "error") {
    return {
      blocked: {
        code: "security_scan_failed",
        reason: buildScanFailureBlockReason({ /* parameters */ }),
      },
    };
  }
  if (params.builtinScan.critical > 0) {
    return {
      blocked: {
        code: "security_scan_blocked",
        reason: buildCriticalBlockReason({ /* parameters */ }),
      },
    };
  }
  return undefined;
}

The installation loop now processes the InstallSecurityScanResult object returned by this function. If the result indicates a blocked state, the pipeline terminates immediately. This ensures that plugins with critical findings or those that crash the scanner cannot be installed.

Exploitation Methodology

Attackers can exploit this vulnerability using two primary techniques. The first involves crafting a plugin designed to crash the BuiltinInstallScan static analyzer. By structuring the code with extremely deep recursion or a malformed Abstract Syntax Tree (AST), the attacker forces the scanner to throw an exception. The system logs the failure and proceeds to install the malicious payload.

The second technique relies on user oversight during the installation of unauthorized plugins. The attacker includes explicitly dangerous operations, such as environment variable exfiltration via child_process.exec(). The static analyzer detects these operations and increments the critical findings counter. Because the system fails open, the plugin is installed alongside a non-blocking console warning.

Exploitation requires the attacker to distribute the malicious plugin through unofficial channels and convince a user to initiate the installation process. In automated environments or deployments where standard output is suppressed, the warning goes entirely unnoticed.

Impact Assessment

Exploiting this fail-open vulnerability grants the attacker arbitrary code execution within the OpenClaw runtime environment. The executed code inherits the privileges of the Node.js process hosting the AI assistant. This level of access permits extensive interaction with the underlying operating system.

Malicious plugins can access the local file system, modify application configurations, and initiate outbound network connections. Attackers can leverage these capabilities to establish persistence or pivot to adjacent systems on the local network. The execution context bypasses all intended sandbox restrictions.

Personal AI assistants frequently process and store highly sensitive information, including API keys, authentication tokens, and user interactions. The compromise of this environment results in a total loss of confidentiality. Attackers can seamlessly exfiltrate this data using the network privileges granted to the application.

Remediation and Detection

The definitive remediation for this vulnerability is updating OpenClaw to the release incorporating commit 7a953a52271b9188a5fa830739a4366614ff9916. This update replaces the vulnerable fail-open logic with a strict fail-closed enforcement mechanism. Organizations should ensure all deployments are running versions published after March 30, 2026.

For systems where immediate patching is not feasible, administrators must implement manual verification procedures. Users should execute the openclaw security audit --deep command to perform a comprehensive retrospective scan of all installed plugins and skills. Any components flagged by this audit must be manually removed from the system.

Security operations teams can detect exploitation attempts by monitoring application logs. The presence of the strings code safety scan failed or dangerous code patterns detected during a plugin installation event indicates that the scanner identified an issue. On vulnerable versions, these logs confirm that a potentially malicious plugin was successfully installed.

Official Patches

OpenClawPull Request #57729 implementing fail-closed logic

Fix Analysis (1)

Technical Appendix

CVSS Score
8.8/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Affected Systems

OpenClaw Plugin InstallerOpenClaw Skills RuntimeBuiltinInstallScan Module

Affected Versions Detail

Product
Affected Versions
Fixed Version
OpenClaw
OpenClaw
< fixed version (March 30, 2026)commit 7a953a52
AttributeDetail
CWE IDCWE-390
Attack VectorLocal / User-Assisted
CVSS Score8.8 (High)
ImpactArbitrary Code Execution
Exploit StatusProof of Concept Available
CISA KEVNot Listed

MITRE ATT&CK Mapping

T1204.002User Execution: Malicious File
Execution
T1129Shared Modules
Execution
CWE-390
Detection of Error Condition Without Action

Detection of Error Condition Without Action

Vulnerability Timeline

Patch committed to OpenClaw repository
2026-03-30

References & Sources

  • [1]GitHub Advisory GHSA-CWQ8-6F96-G3Q4
  • [2]Fix PR #57729
  • [3]Fix Commit 7a953a52

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

•30 minutes ago•CVE-2026-54284
8.7

CVE-2026-54284: Algorithmic Complexity Exhaustion in sqlparse Engine

An algorithmic complexity vulnerability in the python-sqlparse library allows remote, unauthenticated attackers to cause a Denial of Service (DoS) via resource exhaustion. By transmitting a carefully constructed SQL statement containing deeply nested structures, an attacker can trigger quadratic CPU consumption within the parsing engine. This behavior bypasses the built-in depth limits because the performance degradation occurs during the initial recursive tree construction, causing the application process to hang.

Alon Barad
Alon Barad
0 views•6 min read
•about 2 hours ago•GHSA-XHCR-CQFR-M3HV
8.7

GHSA-XHCR-CQFR-M3HV: Remote Code Execution via Insecure HTTP MCP Server Registry in atomic-agents-stack

A critical vulnerability exists in the atomic-agents-stack package up to version 1.0.0. The HTTP Model Context Protocol (MCP) server-registry backend factory retrieves catalog metadata over cleartext HTTP by default. Because these catalogs define execution parameters ('command' and 'args') for local stdio subprocesses, a network-positioned attacker can intercept the cleartext traffic and inject arbitrary commands. This results in arbitrary remote code execution on the agent host system without requiring user interaction.

Alon Barad
Alon Barad
1 views•6 min read
•about 3 hours ago•GHSA-J659-8XH6-5PQ5
8.7

GHSA-J659-8XH6-5PQ5: Financial Guardrail Bypass in atomic-agents-stack via Parallel Execution of Unlisted Models

A high-severity vulnerability in the atomic-agents-stack framework allows complete bypass of cost-cap guardrails during parallel model execution when utilizing unlisted, local, or self-hosted models.

Amit Schendel
Amit Schendel
4 views•7 min read
•about 7 hours ago•GHSA-MPWR-8VM7-H73F
7.4

GHSA-mpwr-8vm7-h73f: Key Space Collapse and Authentication Bypass in go-pkcs12 PBMAC1 Decoding

A security vulnerability in the Go library software.sslmate.com/src/go-pkcs12 allows remote attackers to bypass password-based integrity verification. By crafting a PKCS#12 file with an excessively short KeyLength parameter in the PBMAC1 configuration, the derived MAC key space collapses, allowing an attacker to forge arbitrary certificate structures and private keys that are incorrectly verified as valid.

Amit Schendel
Amit Schendel
4 views•7 min read
•about 11 hours ago•CVE-2026-53766
6.1

CVE-2026-53766: Workspace Boundary Bypass in chrome-devtools-mcp via Symbolic Link Resolution Failure

A workspace boundary bypass vulnerability exists in the Chrome DevTools for Agents (chrome-devtools-mcp) Model Context Protocol (MCP) server from version 0.24.0 up to 1.1.0. The vulnerability allows an agent or malicious workspace containing symbolic links to read or modify arbitrary files outside the configured project workspace root directory. This occurs because the path validation function resolves paths lexically rather than physically.

Alon Barad
Alon Barad
3 views•7 min read
•about 12 hours ago•CVE-2026-56677
8.6

CVE-2026-56677: Unauthenticated Server-Side Request Forgery in 9Router OIDC Test Endpoint

A high-severity security vulnerability exists in 9Router, an AI router and token saver dashboard. When dashboard authentication features are disabled or left in default configurations, the application exposes administrative testing routines directly to the public internet. Unauthenticated network adversaries can exploit the OIDC configuration validation endpoint to initiate arbitrary HTTP requests, routing unauthorized traffic to local loops, adjacent container ports, and cloud resource metadata interfaces.

Amit Schendel
Amit Schendel
3 views•5 min read