Skip to main content

Wheels CLI EUVDEUVD-2026-102604

| CVE-2026-111451 HIGH
OS Command Injection (CWE-78)
2026-10-16 cve@mitre.org GHSA-p9x9-cr8j-4m4h
7.8
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

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

  1. Access
    Inject payload into CI variable or branch name
  2. Delivery
    CLI consumes unescaped value
  3. Exploit
    Shell metacharacters execute command
  4. Execution
    Code runs as SSH/CI user
  5. Impact
    Compromise deploy host or runner

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 Wheels CLI (version 4.0.0 through 4.1.1) be executed against attacker-influenced input. The specific triggers named in the advisory are: deploy release/version/rollback values (shell command execution on deploy hosts as the SSH user and on the CI runner during builds); package removal/destroy and extraction paths (arbitrary file deletion or overwrite of vendor files); and generator names (writing outside the project or injecting executable CFML). These inputs must originate from a semi-trusted or untrusted source - CI variables, Git branch names, downloaded packages, or an AI agent invoking the CLI's MCP tools. The stored XSS condition specifically requires use of the scaffold 'show' views generated on or after 4.1.0, or generated admin views, with unencoded display properties. Limiting factors: the vector is local (AV:L) and requires user or pipeline interaction (UI:R) - a human or automated process must actually run the vulnerable CLI command; it is not remotely exploitable over a network against a running service. Environments where all CLI inputs (branch names, packages, CI variables) are fully controlled by trusted operators are not realistically exposed. Remediation requires upgrading to 4.1.2 AND applying the documented manual edit to any already-generated affected views.

Impact

The CVSS 3.1 base score of 7.8 (AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H) correctly reflects a locally-triggered command-injection flaw (CWE-78) that yields full confidentiality, integrity and availability impact - code execution as the SSH deploy user or on the CI runner. The defining signal is the attack vector: although PR:N implies no authentication, the vulnerability is not a remote-unauthenticated internet-facing bug; it is AV:L with UI:R, meaning a developer, operator, or CI pipeline must run the Wheels CLI against attacker-influenced inputs (CI variables, branch names, package contents, or MCP tool calls from an AI agent). No EPSS score, CISA KEV listing, or public proof-of-concept was provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The practical risk is therefore moderate and conditional rather than wormable: real priority for teams running Wheels CLI 4.0.0-4.1.1 in automated CI/CD or MCP-agent contexts where branch names or packages are not fully trusted, but lower urgency for environments where all CLI inputs are controlled by trusted operators. Note a tension worth verifying: PR:N combined with UI:R and AV:L describes a supply-chain/input-trust boundary (e.g., a malicious branch name or package reaching an automated runner) rather than classic credentialed access - defenders should map which of their pipelines feed untrusted data into these commands.

Exploit ScenarioDerived

An attacker who can influence a CI variable, a Git branch name, a package pulled during build, or input to the CLI's MCP tools supplies a crafted deploy release/version/rollback value containing shell metacharacters; when the Wheels CLI runs during an automated build or deploy, the value is executed as a shell command on the CI runner or on the deploy host as the SSH user. Alternatively, a malicious package triggers path traversal during removal/extraction to overwrite or delete vendor files, or a crafted generator name writes executable CFML outside the project. No public proof-of-concept was provided, and exploitation requires the victim pipeline or developer to run the CLI (UI:R) against the attacker-influenced input (AV:L/AC:L).

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

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

Alert me

AnalysisAIv1 – Oct 16, 2026

Command injection (CWE-78) and stored XSS in Wheels CLI 4.0.0 through 4.1.1 allow an attacker who can influence inputs processed by the tool to run arbitrary shell commands as the SSH deploy user on deploy hosts and on the CI runner during builds. Deploy release/version/rollback values, package removal/destroy and extraction paths, and generator names are the primary injection surfaces, with unencoded scaffold 'show' views (since 4.1.0) and generated admin views permitting stored XSS; trigger inputs can come from CI variables, Git branch names, downloaded packages, or an AI agent using the CLI's MCP tools. The flaw is fixed in 4.1.2, and existing affected generated views also require a documented manual edit; no public exploit code has been identified at time of analysis.

RemediationAI

Upgrade Wheels CLI to 4.1.2, the vendor-released patched version, which addresses the command-injection, file-handling, generator-name, and process-ID issues. Note that the upgrade alone is insufficient for the stored XSS component: any scaffold 'show' views generated on or after 4.1.0 and any generated admin views created by the affected releases must also receive the documented manual edit to properly encode display properties - treat this as a required post-upgrade step for existing projects, not optional. Where immediate upgrade is not possible, compensating controls with trade-offs include: (1) ensure every input that reaches the CLI - CI variables, Git branch names, and downloaded packages - is sourced only from fully trusted operators, since environments with entirely trusted inputs are not realistically exposed (this restricts workflow flexibility and may not be achievable for teams using AI agents via MCP tools); (2) run the CLI in an isolated/sandboxed environment and give the SSH deploy user least privilege, accepting that this limits the blast radius but does not remove the injection; (3) review package removal/destroy and extraction operations manually before execution and audit files touched by those paths, which adds operational overhead; (4) restrict or disable MCP tool access for the CLI when the invoking agent can be steered by untrusted content. Consult the vendor advisory at https://github.com/wheels-dev/wheels/security/advisories/GHSA-cghp-86c6-6fjc for the exact patched version details and the documented view edit. No public exploit code was identified at time of analysis, and no CISA KEV listing is present, so no active-exploitation-driven emergency mitigation timeline is indicated beyond normal patching.

Affected VersionsENISA

Wheels CLI 4.0.0 <4.1.2

Affected Packages

euvd wheels_cli fix: 4.1.2

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

The root cause is CWE-78 (OS Command Injection): Wheels CLI 4.0.0-4.1.1 insufficiently validates and escapes caller-supplied values and the contents of packages it processes, so attacker-influenced strings are passed into shell command execution contexts. Specifically, deploy release/version/rollback values flow into shell invocations that execute as the SSH deploy user on deploy hosts and on the CI runner during builds. The package-handling code paths are also unsafe: removal/destroy operations can delete unintended files, extraction can overwrite files belonging to other vendors, and generator names can write files outside the project directory or inject executable CFML into generated code. A separate but related class of issues involves output encoding - unencoded display properties in generated scaffold 'show' views introduced in 4.1.0 and in generated admin views permit stored XSS - and stale process-ID handling in the RustCFML server commands can terminate an unrelated process. The affected component is the developer-facing CLI/toolchain rather than a network-exposed service, which is consistent with the CVSS 3.1 vector AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H: it is locally triggered, requires no prior privileges (PR:N, so unauthenticated with respect to the tool), but requires a user or pipeline to interact with the command (UI:R), and yields full confidentiality, integrity and availability impact. The source inputs the advisory enumerates - CI variables, branch names, packages, and AI-agent-driven MCP tool invocations - underscore that the boundary between trusted operator input and untrusted/semi-trusted data is the crux of the vulnerability.

Know when the next one hits your stack

  • 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 (mitre) PRIMARY 7.8 HIGH
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 7.8 HIGH

Local CLI execution (AV:L) against attacker-influenced input requires a developer or CI run (UI:R); attacker needs no account (PR:N); command injection yields full code execution (C/I/A:H).

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

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Oct 16, 2026 - 05:16 EUVD
CVE Published
Oct 16, 2026 - 04:18 cve.org
HIGH 7.8

DescriptionCVE.org

Wheels CLI 4.0.0 through 4.1.1 insufficiently validates or escapes caller-supplied values and package contents. Deploy release/version/rollback values can execute shell commands on deploy hosts as the SSH user and on the CI runner during builds. Package removal and destroy paths can delete unintended files; package extraction can overwrite other vendor files; generator names can write outside the project or inject executable CFML into generated code. Inputs may originate from CI variables, branch names, packages or an AI agent using the CLI's MCP tools. Also relevant are unencoded display properties in generated scaffold show views since 4.1.0 and in generated admin views, permitting stored XSS, and stale process-ID handling in RustCFML server commands that can terminate an unrelated process. This is fixed in 4.1.2; existing affected generated views also require the documented edit.

Technical POC Analysis

The evidence is the GitHub advisory GHSA-cghp-86c6-6fjc only.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Engineering and platform teams running Wheels CLI 4.0.0 through 4.1.1 face command injection that can execute arbitrary shell commands as the SSH deploy user on deployment hosts and CI runners. Because the CLI operates inside automated build and release pipelines, routine inputs such as CI variables, Git branch names, downloaded packages, or AI agent tool calls could be turned into unauthorized code execution or credential theft on production infrastructure. Leadership should treat this as a pipeline-trust issue: the systems at risk typically hold deployment keys and production access that extend far beyond a single developer workstation.

Business Impact: High
Compensating Controls

Apply vendor patch (4.1.2), plus the documented manual edit to existing affected generated views. Until both are completed: restrict and sanitize all external inputs feeding deploy, rollback, destroy, package extraction, and generator parameters; limit CLI execution to trusted branches and pinned package sources; disable or tightly scope MCP tool access for AI agents; run builds and deploys with least-privilege, short-lived credentials; and monitor deploy hosts and CI runners for unexpected shell activity.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Low
CLI tooling for the niche CFML/Wheels web framework, small ecosystem
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.1%
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
Scheduled
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

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