Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network vector applies via prompt injection path; PR:N consistent with no authentication required to reach the tool; confidentiality-only impact with no integrity or availability consequence.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
3DescriptionCVE.org
CodeWhale versions before 0.8.64 contain an environment variable exposure vulnerability in the js_execution tool that fails to scrub parent process environment variables before spawning Node.js. Attackers can craft malicious JavaScript code executed by the tool to read process.env and leak API keys, cloud credentials, and authentication tokens back to the model context.
Articles & Coverage 1
AnalysisAI
Environment variable inheritance in CodeWhale's js_execution tool prior to version 0.8.64 allows crafted JavaScript payloads to read the full parent process environment via process.env, exposing API keys, cloud credentials, and authentication tokens to the model context. The affected codebase is a Rust TUI AI coding assistant whose Node.js child process spawning failed to sanitize the environment before execution. No public exploit code or CISA KEV listing has been identified at time of analysis; a vendor patch is available via GitHub advisory GHSA-h539-c7r8-3xq4.
Technical ContextAI
CodeWhale (CPE: cpe:2.3:a:hmbown:codewhale:*:*:*:*:*:*:*:*) is a TUI-based AI coding assistant implemented in Rust under the crates/tui crate. Its js_execution tool spawns Node.js child processes to evaluate JavaScript on behalf of the AI model. The vulnerable function apply_node_proxy_env used tokio::process::Command::env() to add proxy-specific overrides but never called env_clear() first, so the spawned Node.js process inherited the complete environment of the parent CodeWhale process by default. Any JavaScript executed by the tool could trivially call process.env to enumerate and exfiltrate all inherited variables. This is a CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor) root cause. The commit diff confirms the fix introduces crate::child_env::apply_to_tokio_command(), which explicitly clears the environment before applying only the minimal required overrides, and a regression test (execute_js_does_not_inherit_parent_secret_env) verifies that a secret set on the parent does not appear in child output.
RemediationAI
Upgrade CodeWhale to version 0.8.64 or later, which applies the environment sanitization fix in commit 26de44a8bd5051f8f944ea60b2c37ae1d2b7d25e (https://github.com/Hmbown/CodeWhale/commit/26de44a8bd5051f8f944ea60b2c37ae1d2b7d25e). The patch replaces the unsafe inheritance path with an explicit child_env::apply_to_tokio_command() call that clears the environment before applying only the necessary proxy overrides. If immediate upgrade is not feasible, a compensating control is to avoid running CodeWhale in environments where sensitive credentials exist as process environment variables: use IAM instance roles, Vault agent sidecars, or other runtime secret injection mechanisms that do not expose secrets to the parent process environment. The trade-off is operational complexity and potential disruption to credential-dependent workflows. Additionally, restricting which users or pipelines can trigger AI-driven JavaScript execution in CodeWhale reduces the prompt injection attack surface. Refer to the vendor advisory at https://github.com/Hmbown/CodeWhale/security/advisories/GHSA-h539-c7r8-3xq4 for authoritative guidance.
A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could
FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t
Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete
Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc
An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi
Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin
The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic
The AES-NI implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h does not consider memory allocation during a
Same weakness CWE-200 – Information Exposure
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-60973
GHSA-h539-c7r8-3xq4