Skip to main content

FFmpeg CVE-2026-107677

| EUVDEUVD-2026-95082 MEDIUM
Loop with Unreachable Exit Condition (Infinite Loop) (CWE-835)
2026-10-08 VulnCheck GHSA-23w5-87r9-849m
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 .mpd DASH manifest
  2. Delivery
    Victim loads manifest in FFmpeg
  3. Exploit
    DASH demuxer parses empty SegmentTemplate media
  4. Execution
    av_strireplace() enters infinite loop
  5. Impact
    CPU exhausted, process hangs (DoS)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Loop termination conditions
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires FFmpeg's DASH demuxer to process an attacker-controlled .mpd manifest that declares a SegmentTemplate element with an empty media attribute (media=""); this empty search string drives av_strireplace() (called from get_current_fragment() in dashdec.c) into an unbounded loop. Limiting factors: a victim must actively open or stream the malicious manifest (user interaction / content-processing required, per UI:P), only applications that invoke the DASH demuxer are affected, and impact is confined to availability (CPU exhaustion / process hang) with no code execution, data disclosure, or integrity impact. Versions at or below FFmpeg 9.0.2 are affected; the fixed build removes the condition.

Impact

This is a medium-severity availability-only flaw (CWE-835 infinite loop) and the signals are internally consistent rather than conflicting. The vendor CVSS 4.0 vector (AV:L/AC:H/AT:P/PR:N/UI:P, VA:H, VC:N/VI:N) scores 5.7 and describes exactly what the vulnerability is: no confidentiality or integrity impact, only CPU/availability loss, and it depends on a victim processing attacker-supplied content (UI:P) plus a specific attack condition (AT:P). No EPSS score was provided in the input and the CVE is NOT on CISA KEV, so there is no evidence of active exploitation; exploitation status is best described as no public exploit identified at time of analysis (a VulnCheck advisory and a root-cause writeup exist, but an advisory describing the crafting steps is not the same as confirmed weaponized exploit code). One genuine tension: the vendor chose AV:L, yet DASH .mpd manifests are an HTTP adaptive-streaming format normally delivered over the network, so in applications that stream a remote manifest the realistic vector is closer to AV:N - verify how your deployment feeds manifests to FFmpeg. Net: this is a real but bounded denial-of-service priority - worth patching promptly because FFmpeg is extremely widely embedded, but it is not a drop-everything issue since there is no RCE, no data exposure, and no confirmed in-the-wild exploitation.

Exploit ScenarioDerived

An attacker hosts or delivers a malicious DASH manifest (.mpd) that declares a SegmentTemplate with media="" (empty media URL). When a victim application or user loads that manifest through FFmpeg's DASH demuxer, get_current_fragment() calls av_strireplace() with an empty search string and spins in an infinite loop, pinning a CPU core and hanging the media process. No public exploit code is identified at the time of analysis, though the vendor advisory documents the trigger in enough detail to reproduce it.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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 08, 2026

Denial of service in FFmpeg through 9.0.2 allows a crafted MPEG-DASH manifest whose SegmentTemplate element declares an empty media attribute (media="") to drive the DASH demuxer into an unbounded loop, consuming CPU indefinitely and hanging the process that is decoding the stream. Per the supplied CVSS 4.0 vector the issue is unauthenticated (PR:N) but requires user interaction (UI:P), because a victim or a host application must actively open or stream the attacker-supplied .mpd manifest; impact is confined to availability, with no confidentiality or integrity effect, and our independent assessment characterizes it as a medium-severity availability-only flaw (CWE-835) rather than a critical one. No public exploit code and no confirmed active exploitation were identified at time of analysis, though the vulnerable source paths are public and an upstream fix is already committed.

RemediationAI

Upstream fix available (PR/commit); released patched version not independently confirmed. The correction is carried in FFmpeg pull request 24592 (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24592) and commit ed27bfcbbbc0872c0195eaf4dd2c0c93b9f1778e (https://code.ffmpeg.org/FFmpeg/FFmpeg/commit/ed27bfcbbbc0872c0195eaf4dd2c0c93b9f1778e), which removes the condition that lets an empty SegmentTemplate media value reach av_strireplace(); because the commit is not tied to a confirmed tagged release here, operators should rebuild against the fixed tree or any FFmpeg build newer than 9.0.2 that includes that commit and verify the change is present before relying on it. Where rebuilding is not immediately possible, compensating controls with real trade-offs are: stop feeding untrusted or user-supplied .mpd manifests into the DASH demuxer (validate manifests server-side and reject SegmentTemplate entries with an empty media attribute before they reach FFmpeg) - cheap and targeted, but it depends on a validation layer being in the ingestion path; build with the DASH demuxer disabled (--disable-demuxer=dash) or block DASH processing entirely - fully effective against this flaw but it breaks all legitimate MPEG-DASH playback and transcoding; and run any FFmpeg job that consumes external manifests under a hard CPU/wall-clock watchdog or in a cgroup-limited sandbox so an infinite loop is killed rather than exhausting the host - this contains the blast radius but can terminate long-running legitimate encodes and requires per-job resource governance. If a vendor-patched package becomes available from your distribution or product vendor, prefer upgrading to that build over ad-hoc source changes so the fix stays maintained.

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 flaw lives in FFmpeg's MPEG-DASH demuxer (libavformat/dashdec.c), the component that parses .mpd manifests to locate and fetch media segments. A SegmentTemplate entry supplies a media URL pattern from which the demuxer builds each fragment request; get_current_fragment() in dashdec.c (referenced at line 1726 in the n9.0.2 source tree) passes that pattern through av_strireplace() in libavutil/avstring.c (lines 230-238 in the same tag). When the manifest sets media="", the search string handed to av_strireplace() is empty, so the replacement routine has no advancing token and loops without terminating - the classic CWE-835 'Loop with Unreachable Exit Condition (Infinite Loop)' pattern. The CPE string cpe:2.3:a:ffmpeg:ffmpeg:* is version-agnostic across the tracked FFmpeg product, and EUVD records the affected range as FFmpeg 0 through 9.0.2, meaning essentially every shipping FFmpeg release up to that tag contains the defective replacement path. The vulnerable code is only reachable by applications that actually enable and invoke the DASH demuxer, which is why the practical exposure depends on how the library is embedded (for example CLI ffmpeg/ffprobe runs, transcoding services, or players built on libavformat) rather than on FFmpeg alone.

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 6.5 MEDIUM

DASH manifests are typically network-delivered so AV:N, the empty-media trigger is trivially crafted (AC:L), no auth (PR:N), but a victim must load the manifest (UI:R); impact is availability-only (A:H, C/I:N).

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Red Hat 6.5 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 denial of service vulnerability in the DASH demuxer that allows attackers to trigger an infinite loop by supplying an empty SegmentTemplate media URL. Attackers can craft an .mpd manifest declaring SegmentTemplate media="" so get_current_fragment() calls av_strireplace() with an empty search string, consuming CPU indefinitely.

Threat Intelligence Overview

EPSS Score
0.1%
Top 99% exploitable
Prevalence
Ubiquitous
FFmpeg is embedded across countless media apps, browsers, servers and transcoding pipelines
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 Yes
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