Skip to main content

FFmpeg CVE-2026-107678

| EUVDEUVD-2026-95083 MEDIUM
Uncontrolled Recursion (CWE-674)
2026-10-08 VulnCheck GHSA-rp4v-7m3g-89vg
5.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Deliver crafted MP4 to FFmpeg
  2. Exploit
    Parse nested pssh boxes via MOV demuxer
  3. Execution
    Recursive free exhausts stack
  4. Impact
    Process crashes (denial of service)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Recursion depth limits
Exploitation Conditions

Exploitation requires FFmpeg (through 9.0.2) to parse an attacker-supplied MP4/MOV file whose moov structure contains tens of thousands of small 'pssh' (Protection System Specific Header) boxes; the MOV demuxer's mov_read_pssh() builds an AVEncryptionInitInfo linked list that av_encryption_init_info_free() then frees recursively, exhausting the stack. No authentication or privileges are needed (PR:N), but exploitation is limited by: (1) user/victim interaction to feed the file into FFmpeg (UI:P), (2) the local processing vector (AV:L) - the attacker needs their file to reach an FFmpeg decode/demux path, and (3) high complexity (AC:H/AT:P) stemming from the need to generate a large, specifically-structured box count and the quadratic cost. Impact is limited to availability (process crash and CPU exhaustion) with no code execution or data exposure.

Impact

This is a genuinely medium-severity denial-of-service issue, and the signals are internally consistent rather than conflicting. The CVSS 4.0 vector (AV:L/AC:H/AT:P/PR:N/UI:P/VC:N/VI:N/VA:H) scores 5.7 and correctly reflects an availability-only impact (process crash via stack exhaustion, CWE-674 uncontrolled recursion) with no confidentiality or integrity exposure and no code execution. The vector itself tempers the severity: the attack is local (AV:L), carries high complexity and an attack requirement (AC:H/AT:P, reflecting the need to craft tens of thousands of nested pssh boxes and the quadratic-cost dependency), and requires user/victim interaction (UI:P) to feed the crafted MP4 into FFmpeg. There is no CISA KEV listing and no public exploit code identified in the provided sources (only a vendor advisory and the upstream fix PR), so exploitation status is 'no public exploit identified at time of analysis.' No EPSS score was supplied, so probabilistic exploitation likelihood cannot be quantified here. The one caveat worth flagging: the CVE assigns AV:L, but FFmpeg frequently processes untrusted media received over the network (streaming, upload pipelines, transcoding services); in those deployments the practical reachability is closer to remote-triggered than the AV:L label implies - verify against your actual deployment. Net: a real but modest priority - worth patching in media-processing pipelines, not an emergency.

Exploit ScenarioDerived

An attacker crafts a malicious MP4 file containing tens of thousands of small PSSH boxes and submits it to a service or user that transcodes or inspects it with FFmpeg (e.g., an upload/transcoding pipeline). When the MOV demuxer parses the boxes and av_encryption_init_info_free() recursively frees the resulting linked list, the deep recursion exhausts the stack and crashes the process, with additional quadratic CPU consumption. No public exploit code is identified, but the crafting technique is straightforward to reproduce.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 08, 2026

Denial-of-service in FFmpeg through 9.0.2: demuxing a crafted MP4/MOV file containing tens of thousands of minimal pssh boxes triggers uncontrolled recursion in av_encryption_init_info_free(), exhausting the stack and crashing the process, with additional quadratic CPU consumption. No authentication or privileges are required (PR:N), but exploitation is local (AV:L), demands passive user interaction (UI:P) to feed the file into an FFmpeg-based pipeline, and is high complexity (AC:H). Impact is availability-only; there is no code execution or data exposure. The issue is tracked as CWE-674 (uncontrolled recursion), and an upstream fix is proposed in FFmpeg PR 24593; no public exploit code or CISA KEV entry was identified at time of analysis.

RemediationAI

Upstream fix available (PR/commit); released patched version not independently confirmed. The proposed fix is FFmpeg PR 24593 (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24593), so apply that change and rebuild, or wait for a tagged release that incorporates it. Until a patched build is deployed, the most effective compensating control is to avoid demuxing untrusted MP4/MOV files with affected FFmpeg builds-this breaks legitimate media processing for those formats but eliminates the attack surface. If untrusted MP4 input is unavoidable, run FFmpeg in a sandbox with strict CPU/memory limits and a reduced stack (e.g., ulimit -s) to contain the crash; note that stack limiting may cause earlier failures on other deeply recursive inputs and could disrupt legitimate transcoding. Pre-validating or rejecting files with an excessive number of pssh boxes before handing them to FFmpeg can also help, but such filtering must be robust and may be bypassed by other parser quirks. The VulnCheck advisory (https://www.vulncheck.com/advisories/ffmpeg-through-9.0.2-stack-exhaustion-via-recursive-free-of-pssh-boxes) provides further detail.

Affected VersionsENISA

FFmpeg 0 ≤9.0.2

Affected Packages

euvd ffmpeg 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

The vulnerability resides in FFmpeg's MOV/MP4 demuxer and libavutil encryption-info handling. Per CPE cpe:2.3:a:ffmpeg:ffmpeg:*:*:*:*:*:*:*:* and the EUVD range 'FFmpeg 0 ≤ 9.0.2', all releases through 9.0.2 are affected. When mov_read_pssh() (libavformat/mov.c line 8070 in n9.0.2) parses 'pssh' (Protection System Specific Header) boxes, it builds a linked list of AVEncryptionInitInfo structures; each new box is appended, and the quadratic CPU cost arises from repeatedly walking or extending that list. The corresponding cleanup routine av_encryption_init_info_free() (libavutil/encryption_info.c lines 219-231 in n9.0.2) frees the list recursively, so a file with tens of thousands of small pssh boxes produces a recursion depth sufficient to exhaust the process stack and abort. CWE-674 (Uncontrolled Recursion) is the root-cause class: no depth bound or iterative free is applied to attacker-controlled list length. The attack surface is any application that links libavformat/libavutil and demuxes untrusted MP4/MOV content, including media players, transcoders, and file-scanning services.

Know when Ffmpeg 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 5.7 MEDIUM
CVSS:4.0/AV:L/AC:H/AT:P/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 4.7 MEDIUM

Triggered only by processing a crafted file (AV:L, UI:R), requiring a specially-structured high-box-count input (AC:H); no privileges (PR:N); impact is availability-only (A:H) with no C/I effect.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

FFmpeg through 9.0.2 contains a stack exhaustion vulnerability in av_encryption_init_info_free() in libavutil/encryption_info.c, which recursively frees AVEncryptionInitInfo linked lists built by the MOV demuxer's mov_read_pssh(). Attackers can supply a crafted MP4 file with tens of thousands of small pssh boxes to exhaust the stack and crash the process, while also causing quadratic CPU consumption.

Threat Intelligence Overview

EPSS Score
0.1%
Top 100% exploitable
Prevalence
Ubiquitous
FFmpeg is the de facto media library embedded across countless apps and services
Data Quality
6 sources
Confidence: High

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Ffmpeg

View all
CVE-2016-1897 MEDIUM POC
5.5 Jan 15

FFmpeg 2.x allows remote attackers to conduct cross-origin attacks and read arbitrary files by using the concat protocol

CVE-2017-9993 HIGH
7.5 Jun 28

FFmpeg before 2.8.12, 3.0.x and 3.1.x before 3.1.9, 3.2.x before 3.2.6, and 3.3.x before 3.3.2 does not properly restric

CVE-2016-1898 MEDIUM POC
5.5 Jan 15

FFmpeg 2.x allows remote attackers to conduct cross-origin attacks and read arbitrary files by using the subfile protoco

CVE-2013-4265 CRITICAL POC
10.0 Nov 23

The av_reallocp_array function in libavutil/mem.c in FFmpeg before 2.0.1 has an unspecified impact and remote vectors re

CVE-2020-12284 CRITICAL POC
9.8 Apr 28

cbs_jpeg_split_fragment in libavcodec/cbs_jpeg.c in FFmpeg 4.1 and 4.2.2 has a heap-based buffer overflow during JPEG_MA

CVE-2026-58049 HIGH POC
8.8 Jun 28

Out-of-bounds heap write in FFmpeg's RASC video decoder (decode_dlta in libavcodec/rasc.c) allows attackers to corrupt m

CVE-2026-30754 HIGH POC
8.8 Sep 08

Memory corruption in FFmpeg before 8.1 allows an attacker who can supply a crafted H.264/HEVC media file to corrupt heap

CVE-2021-38094 HIGH POC
8.8 Sep 20

Integer Overflow vulnerability in function filter_sobel in libavfilter/vf_convolution.c in Ffmpeg 4.2.1, allows attacker

CVE-2021-38093 HIGH POC
8.8 Sep 20

Integer Overflow vulnerability in function filter_robert in libavfilter/vf_convolution.c in Ffmpeg 4.2.1, allows attacke

CVE-2021-38092 HIGH POC
8.8 Sep 20

Integer Overflow vulnerability in function filter_prewitt in libavfilter/vf_convolution.c in Ffmpeg 4.2.1, allows attack

CVE-2021-38091 HIGH POC
8.8 Sep 20

Integer Overflow vulnerability in function filter16_sobel in libavfilter/vf_convolution.c in Ffmpeg 4.2.1, allows attack

CVE-2021-38090 HIGH POC
8.8 Sep 20

Integer Overflow vulnerability in function filter16_roberts in libavfilter/vf_convolution.c in Ffmpeg 4.2.1, allows atta

Vendor StatusVendor

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