CVE-2026-75858: CodeWhale: rlm_eval RCE bypasses approval policy
GHSA-wrj3-vj8c-784fHIGHPoC AVAILABLECISA: ATTENDCodeWhale's rlm_eval tool has a broken authorization check: approval_requirement() hardcodes ApprovalRequirement::Auto, so the agent runs model-supplied Python code in a python3 interpreter without ever consulting the user's --approval-policy or showing an approval prompt. This matters because the trigger isn't a careless local user — it's untrusted content the agent reads during normal work (a web page, a fetched URL, a repository file, or an MCP tool result), with the companion rlm_open tool able to stage that payload, so a single indirect prompt injection converts "read this page" into full code execution at the user's privilege level (CVSS 7.8, C:H/I:H/A:H). There is no CISA KEV listing, no public exploit or Nuclei template, and EPSS is low in absolute terms (0.267%, though top 81st percentile relative to all scored CVEs), so this looks pre-exploitation rather than under active attack — but a silently-disabled approval gate is exactly the kind of AI-agent design flaw that gets weaponized fast once it's public. Any team running CodeWhale/codewhale-tui as a coding agent should treat untrusted-content workflows (web browsing, arbitrary repo checkout, third-party MCP servers) as a hard blocker until patched. Upgrade to >= 0.8.64 immediately; until then disable or sandbox rlm_eval/rlm_open, restrict the agent from fetching untrusted URLs/repos, and audit recent sessions for unexpected python3 child-process execution.
What is the risk?
High severity (CVSS 7.8) but locally-scoped and requiring user interaction to trigger — the agent must be induced to read attacker-controlled content. The real risk driver is that the vulnerability defeats the product's own safety control (approval gating) rather than exploiting a parsing bug, so any workflow that already grants the agent tool access is exposed with no additional privilege needed. No active exploitation (not in CISA KEV), no public exploit or scanner template, and EPSS is low in absolute terms, so near-term mass exploitation is unlikely. However, exploitability is trivial once an attacker can place content the agent will read (web page, repo, MCP result), and impact is complete (C:H/I:H/A:H) at the user's privilege level, so exposure should be treated as high for any user routinely pointing the agent at untrusted external content.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| DeepSeek TUI | npm | >= 0.8.41, < 0.8.64 | 0.8.64 |
| DeepSeek TUI | cargo | >= 0.8.41, < 0.8.64 | 0.8.64 |
| DeepSeek TUI | npm | >= 0.8.33, < 0.8.41 | 0.8.41 |
| DeepSeek TUI | cargo | >= 0.8.33, <= 0.8.41 | No patch |
How severe is it?
What is the attack surface?
What should I do?
1 step1) Upgrade codewhale / codewhale-tui to >= 0.8.64 (and deepseek-tui to >= 0.8.41) immediately — this is the fix commit referenced in GHSA-wrj3-vj8c-784f. 2) Until patched, disable the rlm_eval and rlm_open tools entirely, or run the agent inside an isolated sandbox/VM with no access to sensitive credentials or the host filesystem. 3) Avoid using the agent to browse arbitrary web pages, clone untrusted repositories, or consume results from third-party MCP servers while unpatched. 4) Detection: monitor for python3 processes spawned as children of the codewhale/codewhale-tui process outside of expected user-approved sessions; review shell/process history for unexpected script execution correlated with agent activity. 5) After upgrading, verify the --approval-policy flag is actually honored by testing that rlm_eval prompts for approval on a benign injected instruction.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-75858?
CodeWhale's rlm_eval tool has a broken authorization check: approval_requirement() hardcodes ApprovalRequirement::Auto, so the agent runs model-supplied Python code in a python3 interpreter without ever consulting the user's --approval-policy or showing an approval prompt. This matters because the trigger isn't a careless local user — it's untrusted content the agent reads during normal work (a web page, a fetched URL, a repository file, or an MCP tool result), with the companion rlm_open tool able to stage that payload, so a single indirect prompt injection converts "read this page" into full code execution at the user's privilege level (CVSS 7.8, C:H/I:H/A:H). There is no CISA KEV listing, no public exploit or Nuclei template, and EPSS is low in absolute terms (0.267%, though top 81st percentile relative to all scored CVEs), so this looks pre-exploitation rather than under active attack — but a silently-disabled approval gate is exactly the kind of AI-agent design flaw that gets weaponized fast once it's public. Any team running CodeWhale/codewhale-tui as a coding agent should treat untrusted-content workflows (web browsing, arbitrary repo checkout, third-party MCP servers) as a hard blocker until patched. Upgrade to >= 0.8.64 immediately; until then disable or sandbox rlm_eval/rlm_open, restrict the agent from fetching untrusted URLs/repos, and audit recent sessions for unexpected python3 child-process execution.
Is CVE-2026-75858 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2026-75858, increasing the risk of exploitation.
How to fix CVE-2026-75858?
1) Upgrade codewhale / codewhale-tui to >= 0.8.64 (and deepseek-tui to >= 0.8.41) immediately — this is the fix commit referenced in GHSA-wrj3-vj8c-784f. 2) Until patched, disable the rlm_eval and rlm_open tools entirely, or run the agent inside an isolated sandbox/VM with no access to sensitive credentials or the host filesystem. 3) Avoid using the agent to browse arbitrary web pages, clone untrusted repositories, or consume results from third-party MCP servers while unpatched. 4) Detection: monitor for python3 processes spawned as children of the codewhale/codewhale-tui process outside of expected user-approved sessions; review shell/process history for unexpected script execution correlated with agent activity. 5) After upgrading, verify the --approval-policy flag is actually honored by testing that rlm_eval prompts for approval on a benign injected instruction.
What systems are affected by CVE-2026-75858?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, AI coding assistants / CLI agents, MCP tool integrations.
What is the CVSS score for CVE-2026-75858?
CVE-2026-75858 has a CVSS v3.1 base score of 7.8 (HIGH). The EPSS exploitation probability is 0.36%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0011.002Poisoned AI Agent ToolAML.T0050Command and Scripting InterpreterAML.T0051.001IndirectAML.T0053AI Agent Tool InvocationAML.T0112.000Local AI AgentCompliance Controls Affected
What are the technical details?
Original Advisory
CodeWhale (packages codewhale / codewhale-tui) versions >= 0.8.41 and < 0.8.64 contain a remote code execution vulnerability in the rlm_eval tool. The tool's approval_requirement() returns ApprovalRequirement::Auto, which the engine treats as 'never prompt,' causing arbitrary model-supplied Python code to run in a python3 interpreter without consulting the user's configured --approval-policy and without any approval prompt or audit step. An attacker can induce the agent to execute arbitrary code via prompt injection in untrusted content the agent reads (a web page, fetched URL, repository file, or MCP tool result); the companion rlm_open tool can stage such content. Code runs on the user's machine at the user's privilege level. Fixed in 0.8.64.
Exploitation Scenario
An attacker publishes a webpage, GitHub repository README, or an MCP-served document containing hidden instructions (e.g., in a code comment, invisible text, or embedded within seemingly normal content). A developer asks their CodeWhale agent to summarize or work with that content; the agent's rlm_open tool fetches and stages it, and the embedded instructions coerce the agent into invoking rlm_eval with attacker-supplied Python. Because approval_requirement() always returns Auto for this tool, the engine skips the user's configured approval policy entirely and executes the code immediately in python3 — no prompt, no audit trail — giving the attacker arbitrary code execution on the developer's machine at their privilege level (credential theft, backdoor install, lateral movement into connected systems).
Weaknesses (CWE)
CWE-862Missing AuthorizationPrimaryCWE-94Improper Control of Generation of Code ('Code Injection')PrimaryCWE-94Improper Control of Generation of Code ('Code Injection')PrimaryCWE-94Improper Control of Generation of Code ('Code Injection')CWE-862 — Missing Authorization: The product does not perform an authorization check when an actor attempts to access a resource or perform an action.
- [Architecture and Design] Divide the product into anonymous, normal, privileged, and administrative areas. Reduce the attack surface by carefully mapping roles with data and functionality. Use role-based access control (RBAC) [REF-229] to enforce the roles at the appropriate boundaries. Note that this approach may not protect against horizontal authorization, i.e., it will not protect a user from attacking others with the same role.
- [Architecture and Design] Ensure that access control checks are performed related to the business logic. These checks may be different than the access control checks that are applied to more generic resources such as files, connections, processes, memory, and database records. For example, a database may restrict access for medical records to a specific database user, but each record might only be intended to be accessible to the patient and the patient's doctor [REF-7].
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:HReferences
Timeline
Related Vulnerabilities
CVE-2026-453119.6deepseek-tui: prompt injection enables zero-approval RCE
Same package: deepseek-tuiCVE-2026-759139.3CodeWhale: git_show argument injection enables file write
Same package: deepseek-tuiCVE-2026-758568.6deepseek-tui: SSRF via DNS-pinning TOCTOU bypass
Same package: deepseek-tuiCVE-2026-759117.8CodeWhale: repo config silently enables shell RCE
Same package: deepseek-tuiCVE-2026-759157.5deepseek-tui: js_execution leaks parent secrets to LLM
Same package: deepseek-tui