Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessInject payload into CI variable or branch name
-
DeliveryCLI consumes unescaped value
-
ExploitShell metacharacters execute command
-
ExecutionCode runs as SSH/CI user
-
ImpactCompromise 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). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
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).
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
Lifecycle Timeline
2DescriptionCVE.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
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.
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
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.
EUVD-2026-102604
GHSA-p9x9-cr8j-4m4h
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB