Skip to main content

mac-shell-mcp EUVDEUVD-2026-97360

| CVE-2026-108953 HIGH
OS Command Injection (CWE-78)
2026-10-12 VulnCheck GHSA-ffv7-8x5h-5w7r
8.5
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain MCP client access to server
  2. Delivery
    Call whitelisted command (pwd)
  3. Exploit
    Inject ';' + forbidden command in arguments
  4. Execution
    Shell executes injected command
  5. Impact
    Arbitrary code runs as server user

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK

2 techniques across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the victim is running the mac-shell-mcp server (before 2.0.0) and that the attacker can submit requests to it as a connected MCP client - this includes a legitimate client being driven by a malicious or prompt-injected LLM. The specific prerequisite is the execute_command tool's whitelist-based validation, which checks only the base command name while passing attacker-controlled arguments to a shell, so any allowed command (e.g., pwd) plus shell metacharacters (';', '&&', '|', '$()') in the arguments triggers it. Limiting factors: the attacker must already have MCP client-level access (PR:L, local vector AV:L), so this is not a remote-unauthenticated internet-facing flaw; impact is bounded by the privileges of the server user; and installations upgraded to 2.0.0 or later are not affected.

Impact

This is a genuine, well-substantiated command injection flaw (CWE-78) rather than an inflated high-CVSS score. The provided CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H, base 8.5 High) indicates a local attack vector with low attack complexity, requiring only low privileges and no user interaction, yielding total confidentiality/integrity/availability loss on the vulnerable system with no subsequent-system scope change. The attack vector is local because exploitation flows through an MCP client already connected to the server, and PR:L reflects that the attacker must be an authorized MCP client/prompt rather than a wholly unauthenticated outsider. No EPSS score is provided, the CVE is NOT listed in CISA KEV, and no public exploit/POC repository is referenced, so there is no public exploit identified at time of analysis - though the description itself supplies a trivially reproducible technique (calling an allowed command like pwd with an argument of ';'). The signals are internally consistent: moderate-to-high technical severity, easy to trigger once you can talk to the server, but no evidence of widespread or active exploitation. The practical priority is elevated for anyone running this specific MCP server, especially given the emerging threat model where a malicious or hijacked prompt - not just a human attacker - can trigger the injection, but the overall real-world footprint is small.

Exploit ScenarioDerived

An attacker (or a malicious/poisoned prompt driving an MCP client) invokes a whitelisted command such as execute_command with name 'pwd' and supplies arguments containing shell metacharacters like ';' followed by a forbidden command. The whitelist check passes on the safe base command while the injected metacharacters cause the shell to execute arbitrary attacker-controlled commands as the server user, bypassing the approval mechanism. No public POC repository is referenced, but the CVE description provides a directly reproducible example.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.7% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 12, 2026

OS command injection in mac-shell-mcp before 2.0.0 lets a connected MCP client - including a legitimate client driven by a malicious or prompt-injected LLM - escape the tool's command whitelist by appending shell metacharacters to the arguments of an otherwise permitted command such as pwd, causing forbidden commands to run as the server user without approval. Exploitation requires an existing MCP client session to the local server (CVSS 4.0 vector AV:L/PR:L/UI:N, mirroring the independent CVSS 3.1 assessment AV:L/PR:L/UI:N with high confidentiality, integrity and availability impact), so this is an authenticated, locally-scoped flaw rather than an internet-facing unauthenticated one, and impact is bounded by the privileges of the account the server runs under. No public exploit code has been identified at time of analysis and the issue is not confirmed actively exploited (CISA KEV), but a vendor fix and upstream patch commit are available; EPSS data was not provided for this CVE.

RemediationAI

Upgrade to mac-shell-mcp 2.0.0 or later - this is the vendor-released patch that addresses the flaw, with the upstream fix commit at https://github.com/cfdude/mac-shell-mcp/commit/932ce733cde07bb30b1f186303e6692dbb5d087a and remediation guidance in the VulnCheck advisory (https://www.vulncheck.com/advisories/mac-shell-mcp-before-2.0.0-os-command-injection-via-execute-command-arguments) and issue #45. If upgrading is not immediately possible, remove or disable the execute_command tool from the server's MCP tool registration so no shell execution path is exposed (trade-off: all legitimate shell automation through the server stops working), and restrict the whitelist to commands that are invoked with no caller-supplied arguments (trade-off: breaks common use cases such as pwd with flags, and is fragile since it relies on continued strict argument handling). Additionally, run the server under a dedicated low-privilege macOS account with no sudo rights so injected commands cannot escalate beyond that account, and treat all MCP client input - especially prompts that reach an LLM-backed client - as untrusted, since prompt injection is a viable delivery path for the metacharacter payload; neither of these compensating controls removes the underlying flaw, so patching to 2.0.0 remains the only complete fix.

Affected VersionsENISA

mac-shell-mcp 0 <2.0.0

Affected Packages

euvd mac_shell_mcp fix: 2.0.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

mac-shell-mcp is a TypeScript/Node.js Model Context Protocol (MCP) server (CPE cpe:2.3:a:cfdude:mac-shell-mcp:*:*:*:*:*:*:*:*) that exposes shell execution to MCP clients, built on the @modelcontextprotocol/sdk. The root cause is CWE-78 OS Command Injection: the execute_command tool's validation logic in src/services/command-service.ts (lines 257-340) compares only the base command name against a whitelist and then forwards the attacker-controlled argument string to a shell, so shell metacharacters such as ';', '&&', '|', backticks and '$()' are interpreted by the shell rather than treated as literal arguments. Because the whitelist decision is made on the command token alone, any permitted command plus a metacharacter sequence yields execution of an arbitrary forbidden command with the server user's privileges. The patch commit referenced by the vendor (932ce733cde07bb30b1f186303e6692dbb5d087a) is part of a 'mac-shell-mcp-2-security-redesign' effort and also moves the MCP SDK to 1.30 and zod to ^4.5.2, indicating the fix reworks validation/argument handling rather than applying a single string filter.

Know when Mac Shell Mcp gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 8.5 HIGH
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.8 HIGH

Requires an authorized MCP client (PR:L) over a local/IPC interface (AV:L) with no interaction; injection is trivial (AC:L) and grants full arbitrary code execution as the server user (C/I/A:H, scope unchanged).

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

mac-shell-mcp before 2.0.0 contains an OS command injection vulnerability that allows MCP clients to bypass the command whitelist by injecting shell metacharacters into execute_command arguments. Attackers or malicious prompts can call a safe command such as pwd with arguments like ';' to run forbidden commands as the server user without approval.

Executive ViewAI

Why It Matters

mac-shell-mcp, a tool for integrating command-line capabilities with AI/LLM clients, contains a high-severity OS command injection flaw (CVE-2026-108953) in versions before 2.0.0 that allows an authenticated local MCP client to bypass command whitelisting and execute arbitrary commands as the server user. This could enable a malicious or prompt-injected LLM to compromise the host, leading to data theft, system tampering, or lateral movement within the organization. Leadership should prioritize patching because this vulnerability affects any team using AI-driven automation with this tool, potentially exposing sensitive systems and data.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.7%
Top 46% exploitable
Prevalence
Rare
obscure single-maintainer macOS MCP server, tiny community footprint
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.7%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
High

Priority Score

43
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy