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-H2VW-PH2C-JVWF

GHSA-H2VW-PH2C-JVWF: Credential Exfiltration via Environment Variable Injection in OpenClaw

Alon Barad
Alon Barad
Software Engineer

Apr 26, 2026·5 min read·32 visits

Executive Summary (TL;DR)

An incomplete environment variable blocklist in OpenClaw allows untrusted workspace configurations to hijack the MiniMax API endpoint, leaking user API keys to attacker-controlled servers.

OpenClaw versions prior to 2026.4.20 are vulnerable to an environment variable injection flaw that permits credential exfiltration. The application insecurely loads workspace-local .env files, allowing an attacker to override API endpoint routing for the MiniMax model provider. Opening a maliciously crafted workspace redirects authenticated requests to an attacker-controlled server, leaking the user's API keys.

Vulnerability Overview

OpenClaw relies on environment variables for global and workspace-specific configuration. The src/infra/dotenv.ts module manages this integration, loading localized .env files when a user opens a new workspace context.

To maintain security boundaries, OpenClaw implements a blocklist mechanism designed to prevent untrusted workspaces from modifying sensitive settings. This mechanism filters known high-risk environment variables before applying the local configuration to the application state.

Vulnerability GHSA-H2VW-PH2C-JVWF exists because this blocklist mechanism failed to include configuration keys specific to the MiniMax model provider. Specifically, the application permits the overriding of API routing targets, allowing unverified input to dictate where authenticated requests are sent.

As a result, the application exhibits an Improperly Controlled Modification of Dynamically-Determined Object Attributes (CWE-915). This flaw acts as a vector for credential exfiltration, exposing users to the immediate loss of their MiniMax API keys.

Root Cause Analysis

The root cause resides in the explicit enumeration approach used by the BLOCKED_WORKSPACE_DOTENV_KEYS and BLOCKED_WORKSPACE_DOTENV_SUFFIXES constants. The application attempts to secure sensitive properties via a blocklist-based architecture, which necessitates continuous updates whenever new routing configurations are introduced.

Prior to the patch, the blocklist lacked the explicit MINIMAX_API_HOST key. Furthermore, the generic suffix filter lacked coverage for the _API_HOST pattern, as it was strictly configured to protect variables ending in _BASE_URL.

When a workspace environment file defines MINIMAX_API_HOST, the dotenv parser imports this value directly into the application's runtime environment. The MiniMax provider module subsequently reads this overridden variable during the initialization of its HTTP client.

The HTTP client applies the injected value as the base destination URL for all subsequent API requests. Consequently, when the application executes a request requiring authentication, it appends the user's globally configured API key to the HTTP headers and transmits it to the overridden destination.

Code Analysis

The vulnerable implementation in src/infra/dotenv.ts relied on an incomplete set of protected variable names. The security model required developers to manually append new configuration keys to the blocklist whenever a new model provider was integrated into the application.

Commit 2f06696579a1ab0cb5bbbbb6a900414a6b2e3cd1 addresses this oversight by expanding the explicit blocklist and enhancing the generic suffix protections. The patch modifies the environment variable filtering logic to catch broader patterns and specific overlooked keys.

The patch adds MINIMAX_API_HOST to BLOCKED_WORKSPACE_DOTENV_KEYS and introduces _API_HOST to the BLOCKED_WORKSPACE_DOTENV_SUFFIXES array. This defense-in-depth approach fixes the immediate flaw and hardens the application against variant attacks on future providers.

const BLOCKED_WORKSPACE_DOTENV_KEYS = new Set([
  // ... other keys
  "CLAWHUB_URL",
  "HTTP_PROXY",
  "HTTPS_PROXY",
+ "MINIMAX_API_HOST",
  "NODE_TLS_REJECT_UNAUTHORIZED",
  // ...
]);
 
// Block endpoint redirection for any service without overfitting per-provider names.
- const BLOCKED_WORKSPACE_DOTENV_SUFFIXES = ["_BASE_URL"];
+ const BLOCKED_WORKSPACE_DOTENV_SUFFIXES = ["_API_HOST", "_BASE_URL"];

Exploitation

Exploitation requires the attacker to construct a malicious repository containing a .env file at the project root. This configuration file must specify an attacker-controlled server using the MINIMAX_API_HOST environment variable.

The attacker distributes this repository using social engineering techniques, presenting it as a pre-configured AI template or utility project. The exploit chain initiates when the victim clones the repository and opens it within the OpenClaw application.

Once the workspace is active, any application action that invokes the MiniMax provider, such as Text-to-Speech or image analysis tasks, triggers an outbound HTTP request. OpenClaw dynamically resolves the target URL using the injected MINIMAX_API_HOST value.

The attacker's server receives the request, which includes the victim's MiniMax API key encapsulated within the HTTP Authorization header. The attacker records this bearer token for subsequent unauthorized use.

Impact Assessment

The primary impact of this vulnerability is the direct exfiltration of sensitive authentication material (CWE-200). An attacker successfully exploiting this flaw gains complete access to the user's MiniMax API credentials without requiring local code execution.

Stolen API keys enable unauthorized consumption of billable model resources, leading to direct financial impact for the victim. Attackers utilize these compromised credentials for bulk inference tasks or resell them through secondary markets.

The severity of the attack is compounded by its stealth. The user interface does not present any warnings when endpoint routing is overridden by a workspace configuration, allowing the exfiltration to persist unnoticed across multiple sessions.

The vulnerability necessitates user interaction to clone and open the malicious repository, which constrains the exploitability scope. However, the prevalence of shared templates in developer workflows makes this a highly viable attack vector in practice.

Remediation

The vendor addressed the vulnerability in OpenClaw version 2026.4.20. Users must upgrade their application instances to this version or newer to mitigate the environment variable injection vector completely.

Users who suspect they have interacted with untrusted repositories containing customized .env files must immediately revoke their existing MiniMax API keys. They should generate new credentials within the provider's management console to invalidate any compromised tokens.

System administrators and security teams can detect attempted exploitation by scanning local workspace directories for .env files containing anomalous _API_HOST or _BASE_URL declarations pointing to unrecognized domains.

Software developers integrating third-party APIs must adopt secure-by-default configuration strategies. Applications should strictly separate global sensitive credentials from locally mutable environment variables to prevent localized overrides from hijacking authenticated requests.

Official Patches

GitHub Advisory DatabaseOfficial Security Advisory

Fix Analysis (1)

Technical Appendix

CVSS Score
7.5/ 10

Affected Systems

OpenClaw Personal AI Assistant (Versions < 2026.4.20)

Affected Versions Detail

Product
Affected Versions
Fixed Version
OpenClaw
OpenClaw
< 2026.4.202026.4.20
AttributeDetail
CWE IDCWE-915 / CWE-20
Attack VectorLocal Workspace Configuration
ImpactCredential Exfiltration
CVSS v3.1 Score7.5
Exploit StatusProof of Concept
CISA KEV ListedFalse

MITRE ATT&CK Mapping

T1552.001Unsecured Credentials: Credentials in Files
Credential Access
T1557Adversary-in-the-Middle
Credential Access
T1082System Information Discovery
Discovery
CWE-915
Improperly Controlled Modification of Dynamically-Determined Object Attributes

Improperly Controlled Modification of Dynamically-Determined Object Attributes

Vulnerability Timeline

Similar routing issues reported in Bug #67482.
2026-04-15
Security fix committed and merged into main.
2026-04-20
Official release of OpenClaw version 2026.4.20 containing the fix.
2026-04-20
GitHub Advisory published (GHSA-H2VW-PH2C-JVWF).
2026-04-21

References & Sources

  • [1]GitHub Advisory: GHSA-H2VW-PH2C-JVWF
  • [2]Patch Commit: 2f06696579a1ab0cb5bbbbb6a900414a6b2e3cd1

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 21 hours ago•CVE-2026-115895
8.8

CVE-2026-115895: Code Injection via Unsanitized Import Alias in Happy DOM ECMAScript Module Compiler

CVE-2026-115895 is a high-severity code injection vulnerability (CWE-94) in the happy-dom npm package prior to version 21.0.4. The vulnerability exists within the ECMAScriptModuleCompiler component, which transforms ECMAScript module syntax into executable Node.js functions when JavaScript evaluation is enabled. Due to an incomplete fix for CVE-2026-33943, the compiler failed to validate local named import aliases against legal JavaScript identifier rules. Attackers supplying crafted module imports—specifically utilizing destructuring default initializers alongside JSON module attributes—can inject arbitrary JavaScript expressions directly into the host Node.js runtime context.

Amit Schendel
Amit Schendel
7 views•10 min read
•about 22 hours ago•CVE-2026-115883
6.0

CVE-2026-115883: Cross-Namespace Access via Dot-Delimited Labels in LangGraph Postgres and SQLite Stores

An improper input validation and authorization bypass vulnerability exists in the LangGraph storage layer affecting langgraph, langgraph-checkpoint-postgres, and langgraph-checkpoint-sqlite. Because relational store implementations serialize namespace tuples into dot-delimited strings without validating labels on read, search, delete, and batch operations, an attacker who controls a namespace label can inject periods (.) to traverse namespace boundaries and access, modify, or delete data belonging to other namespaces.

Amit Schendel
Amit Schendel
8 views•9 min read
•about 23 hours ago•CVE-2026-115886
6.5

CVE-2026-115886: Unauthenticated Server-Side Request Forgery and Unsafe Reflection in MLflow Scorer Evaluation Endpoints

CVE-2026-115886 (GHSA-2wqp-q3c6-ccj5) is a Server-Side Request Forgery (SSRF) and Unsafe Reflection vulnerability in MLflow versions 3.12.0rc0 prior to 3.17.0. Unauthenticated REST API endpoints accept serialized third-party scorer JSON payloads that are dynamically deserialized and reflectively instantiated without sanitizing constructor keyword arguments. When optional dependencies such as trulens and trulens-providers-litellm are installed, attackers can inject egress-steering arguments into the scorer payload, forcing the MLflow server to dispatch outbound HTTP requests to arbitrary internal destinations or cloud metadata services.

Alon Barad
Alon Barad
9 views•10 min read
•1 day ago•CVE-2026-113872
7.5

CVE-2026-113872: Unauthenticated Process Crash in Express Multer via Late Busboy Stream Resumption

CVE-2026-113872 (GHSA-q7qp-rjg7-q26m) is a high-severity denial-of-service vulnerability affecting the multer multipart/form-data upload middleware for Node.js and Express in versions 2.0.0 through 2.4.0. When an endpoint is configured to accept multiple files using an asynchronous fileFilter callback, a crafted, truncated multipart HTTP request can trigger an unhandled error event on the underlying busboy stream parser after request teardown has already completed. Because all error listeners are stripped during teardown, Node.js treats the resulting error event as an uncaught exception and immediately terminates the server process.

Amit Schendel
Amit Schendel
7 views•12 min read
•1 day ago•CVE-2026-115897
2.1

CVE-2026-115897: Cross-Site Scripting via Function Body Boundary Bypass in serialize-javascript

CVE-2026-115897 (also tracked as GHSA-m5mm-p8h7-m29v and aliased as CVE-2026-115754) is a Cross-Site Scripting (XSS) vulnerability in the Yahoo serialize-javascript npm package prior to version 7.1.3. The flaw exists in the regular expression used by escapeFunctionBody() to neutralize HTML script closing tags within serialized JavaScript functions. Because function bodies are sanitized in isolation before structural formatting is applied, a function whose string representation terminates directly with the sequence '</script' bypasses the positive lookahead check. When combined with serialization formatting options that introduce whitespace delimiters and a subsequent property that supplies a closing bracket, an attacker can prematurely terminate an enclosing HTML <script> block and inject arbitrary HTML or JavaScript into the rendered document.

Amit Schendel
Amit Schendel
7 views•13 min read
•1 day ago•CVE-2026-109841
5.9

CVE-2026-109841: Subresource Integrity Verification Bypass in Node.js Undici

CVE-2026-109841 is a Subresource Integrity (SRI) verification bypass vulnerability in undici, the official HTTP/1.1 and HTTP/2 client library for Node.js that powers the global fetch() implementation. The flaw stems from improper handling of case sensitivity (CWE-178) when validating cryptographic hash algorithm tokens within SRI metadata. Because undici compared incoming algorithm identifiers against a strictly lowercase set without prior ASCII-lowercase normalization, valid uppercase or mixed-case tokens such as SHA256- or Sha384- were treated as unrecognized algorithms and discarded. Under SRI forward-compatibility rules, discarding all provided tokens results in an empty integrity list, causing undici to fail open and accept tampered HTTP response bodies without cryptographic verification.

Alon Barad
Alon Barad
10 views•9 min read