Every CVE Search/ Get API key

CVE-2026-75911

CodeWhale before 0.8.64 Remote Code Execution via allow_shell

8.5 HighFix available

CodeWhale versions before 0.8.64 fail to properly validate the allow_shell configuration parameter from project config files, allowing attackers to enable arbitrary shell command execution by committing a malicious .codewhale/config.toml file to a repository. When a user clones and opens the repository in CodeWhale, the AI model gains access to exec_shell and task_shell tools, enabling execution of arbitrary shell commands on the victim's machine without explicit user consent.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
None
User interaction
Passive

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

0.25%Up 0.1 points since Aug 19, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.5

CodeWhale before 0.8.64 Remote Code Execution via allow_shell

CodeWhale versions before 0.8.64 fail to properly validate the allow_shell configuration parameter from project config files, allowing attackers to enable arbitrary shell command execution by committing a malicious .codewhale/config.toml file to a repository. When a user clones and opens the repository in CodeWhale, the AI model gains access to exec_shell and task_shell tools, enabling execution of arbitrary shell commands on the victim's machine without explicit user consent.

Record
CVE-2026-75911
CVSS 4.0
8.5 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-94
Updated
2026-11-02
EUVDEUVD-2026-60969 8.5

CodeWhale versions before 0.8.64 fail to properly validate the allow_shell configuration parameter from project config files, allowing attackers to enable arbitrary shell command execution by committing a malicious .codewhale/config.toml file to a repository. When a user clones and opens the repository in CodeWhale, the AI model gains access to exec_shell and task_shell tools, enabling execution of arbitrary shell commands on the victim's machine without explicit user consent.

Record
EUVD-2026-60969
CVSS 4.0
8.5 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-gx45-xrj5-g6c4 8.5

CodeWhale: Project config `allow_shell` override enables arbitrary shell command execution via cloned repository

Maintainer resolution

The CodeWhale maintainers validated this report. The affected package ranges are recorded in the advisory metadata. Version 0.8.64 contains the fix in commit 43563356b98c6b993085554da82e77370160a31c. Users should upgrade to 0.8.64 or later. The original reporter analysis is preserved below.

Summary

A malicious .codewhale/config.toml or .deepseek/config.toml committed to a repository can silently set allow_shell = true for any user who clones and opens the repository in CodeWhale. This enables the AI model's exec_shell tool, granting arbitrary shell command execution on the victim's machine without the user's explicit opt-in. The approval_policy and sandbox_mode fields correctly enforce tightening-only semantics from project config, but allow_shell has no such guard, contradicting the intent of GHSA-72w5-pf8h-xfp4 which established allow_shell as an opt-in security boundary.

Details

The project config merge function at crates/tui/src/main.rs:5181-5182 (v0.8.50) unconditionally copies the allow_shell boolean from a project-level config file into the live session config:

if let Some(v) = table.get("allow_shell").and_then(toml::Value::as_bool) {
    config.allow_shell = Some(v);
}

No tightening guard exists for allow_shell, unlike approval_policy (lines 5144-5158, guarded by project_approval_policy_is_allowed) and sandbox_mode (lines 5161-5171, guarded by project_sandbox_mode_is_allowed). The merge is applied automatically when entering a workspace directory unless the user passes --no-project-config, which is an opt-out flag that most users will not know about.

Source of attacker-controlled input: The .codewhale/config.toml or .deepseek/config.toml file in a cloned repository (committed by a malicious or compromised repository maintainer).

Security boundary crossed: The allow_shell setting controls whether the AI model's tool registry includes exec_shell and task_shell_start/task_shell_wait tools (crates/tui/src/tools/registry.rs:928-932). When allow_shell = false (the default), these tools are excluded. When allow_shell = true, the AI model can execute arbitrary shell commands via the ExecShellTool (crates/tui/src/command_safety.rs).

Sink reached: Shell command execution via crates/tui/src/tools/shell.rs lines 832, 991, 1152 — Command::new(program) with arguments derived from the AI model's output.

Why existing mitigations do not prevent exploitation:

  1. approval_policy tightening guard (lines 5144-5158) only blocks project configs from relaxing approval requirements. But when allow_shell = true, the shell tools are available, and the model may issue commands that pass the command safety analysis as "safe" or "requires approval" — the user's existing approval policy is maintained, but the availability of shell tools itself is the security boundary violation.
  2. The command_safety.rs safety analysis allows many commands as "safe" (e.g., ls, cat, git status, cargo build). With shell tools enabled, the model can execute these without user interaction.
  3. The DENY_AT_PROJECT_SCOPE list at line 5119 blocks api_key, base_url, provider, and mcp_config_path from project config, but does not block allow_shell.

Flow from source to sink:

  1. User clones a repository containing .codewhale/config.toml with allow_shell = true
  2. User runs codewhale in the repository directory
  3. merge_project_config() at line 5211 reads the project config and sets config.allow_shell = Some(true)
  4. The allow_shell value flows into allow_shell: yolo || config.allow_shell() which evaluates to true
  5. Tool registry at registry.rs:928-929 includes shell tools via with_shell_tools()
  6. The AI model can now execute shell commands through exec_shell

PoC

Environment: Any system with CodeWhale v0.8.50 built from source (commit 0072209d).

**Clean checkout…

Record
GHSA-gx45-xrj5-g6c4
CVSS 4.0
8.5 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-94
Updated
2026-11-02
NVD 8.5

CodeWhale versions before 0.8.64 fail to properly validate the allow_shell configuration parameter from project config files, allowing attackers to enable arbitrary shell command execution by committing a malicious .codewhale/config.toml file to a repository. When a user clones and opens the repository in CodeWhale, the AI model gains access to exec_shell and task_shell tools, enabling execution of arbitrary shell commands on the victim's machine without explicit user consent.

Record
CVE-2026-75911
CVSS 4.0
8.5 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/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
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-94
Updated
2026-11-02
OSV 8.5

CodeWhale before 0.8.64 Remote Code Execution via allow_shell

CodeWhale versions before 0.8.64 fail to properly validate the allow_shell configuration parameter from project config files, allowing attackers to enable arbitrary shell command execution by committing a malicious .codewhale/config.toml file to a repository. When a user clones and opens the repository in CodeWhale, the AI model gains access to exec_shell and task_shell tools, enabling execution of arbitrary shell commands on the victim's machine without explicit user consent.

Record
CVE-2026-75911
CVSS 4.0
8.5 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-94
Updated
2026-11-02
OSVGHSA-gx45-xrj5-g6c4 8.5

CodeWhale: Project config `allow_shell` override enables arbitrary shell command execution via cloned repository

Maintainer resolution

The CodeWhale maintainers validated this report. The affected package ranges are recorded in the advisory metadata. Version 0.8.64 contains the fix in commit 43563356b98c6b993085554da82e77370160a31c. Users should upgrade to 0.8.64 or later. The original reporter analysis is preserved below.

Summary

A malicious .codewhale/config.toml or .deepseek/config.toml committed to a repository can silently set allow_shell = true for any user who clones and opens the repository in CodeWhale. This enables the AI model's exec_shell tool, granting arbitrary shell command execution on the victim's machine without the user's explicit opt-in. The approval_policy and sandbox_mode fields correctly enforce tightening-only semantics from project config, but allow_shell has no such guard, contradicting the intent of GHSA-72w5-pf8h-xfp4 which established allow_shell as an opt-in security boundary.

Details

The project config merge function at crates/tui/src/main.rs:5181-5182 (v0.8.50) unconditionally copies the allow_shell boolean from a project-level config file into the live session config:

if let Some(v) = table.get("allow_shell").and_then(toml::Value::as_bool) {
    config.allow_shell = Some(v);
}

No tightening guard exists for allow_shell, unlike approval_policy (lines 5144-5158, guarded by project_approval_policy_is_allowed) and sandbox_mode (lines 5161-5171, guarded by project_sandbox_mode_is_allowed). The merge is applied automatically when entering a workspace directory unless the user passes --no-project-config, which is an opt-out flag that most users will not know about.

Source of attacker-controlled input: The .codewhale/config.toml or .deepseek/config.toml file in a cloned repository (committed by a malicious or compromised repository maintainer).

Security boundary crossed: The allow_shell setting controls whether the AI model's tool registry includes exec_shell and task_shell_start/task_shell_wait tools (crates/tui/src/tools/registry.rs:928-932). When allow_shell = false (the default), these tools are excluded. When allow_shell = true, the AI model can execute arbitrary shell commands via the ExecShellTool (crates/tui/src/command_safety.rs).

Sink reached: Shell command execution via crates/tui/src/tools/shell.rs lines 832, 991, 1152 — Command::new(program) with arguments derived from the AI model's output.

Why existing mitigations do not prevent exploitation:

  1. approval_policy tightening guard (lines 5144-5158) only blocks project configs from relaxing approval requirements. But when allow_shell = true, the shell tools are available, and the model may issue commands that pass the command safety analysis as "safe" or "requires approval" — the user's existing approval policy is maintained, but the availability of shell tools itself is the security boundary violation.
  2. The command_safety.rs safety analysis allows many commands as "safe" (e.g., ls, cat, git status, cargo build). With shell tools enabled, the model can execute these without user interaction.
  3. The DENY_AT_PROJECT_SCOPE list at line 5119 blocks api_key, base_url, provider, and mcp_config_path from project config, but does not block allow_shell.

Flow from source to sink:

  1. User clones a repository containing .codewhale/config.toml with allow_shell = true
  2. User runs codewhale in the repository directory
  3. merge_project_config() at line 5211 reads the project config and sets config.allow_shell = Some(true)
  4. The allow_shell value flows into allow_shell: yolo || config.allow_shell() which evaluates to true
  5. Tool registry at registry.rs:928-929 includes shell tools via with_shell_tools()
  6. The AI model can now execute shell commands through exec_shell

PoC

Environment: Any system with CodeWhale v0.8.50 built from source (commit 0072209d).

**Clean checkout…

Record
GHSA-gx45-xrj5-g6c4
CVSS 4.0
8.5 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-94
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
deepseek-tui
crates.io
0.8.6 to 0.8.41 None known
deepseek-tui
npm
0.8.6 up to 0.8.41
0.8.41
codewhale-tui
crates.io
0.8.41 up to 0.8.64
0.8.64
codewhale
npm
0.8.41 up to 0.8.64
0.8.64

History

History
RecordedChangedSources
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-75911 is a high vulnerability (CVSS 8.5) in Hmbown Codewhale, published August 18, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.25%, the 15th percentile. Fixed in deepseek-tui 0.8.41.

References

This page doesn't list everything

Left out here: the rest of 2 source descriptions. The JSON record has them.

MoveEnter Open