Skip to main content

FFmpeg CVE-2026-120246

| EUVDEUVD-2026-114743 MEDIUM
Use of Uninitialized Variable (CWE-457)
2026-11-01 VulnCheck GHSA-76cq-jhfp-r489
6.8
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Deliver crafted type-0 CDXL file to victim
  2. Delivery
    Victim decodes file in FFmpeg
  3. Exploit
    HAM pixels select unfilled palette entries
  4. Execution
    Uninitialized stack bytes copied to BGR24 output
  5. Impact
    Attacker recovers leaked memory from rendered frame

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Variable initialization checks
Exploitation Conditions

Exploitation requires that FFmpeg decode an attacker-crafted type-0 CDXL file whose HAM pixels in cdxl_decode_ham8() or cdxl_decode_ham6() select new_palette entries that import_palette() never filled; those unfilled entries are what emit uninitialized stack memory into the BGR24 output. Limiting factors: the CVSS vector is local (AV:L) and requires passive user interaction (UI:P) - the malicious file must be processed/opened in a context using the CDXL decoder - and the data only reaches the attacker if the decoded output is returned to or observed by them. No authentication is required (PR:N). The vulnerable path is the niche CDXL HAM6/HAM8 decode mode, not a default network-facing surface.

Impact

This is a moderate-severity information-disclosure issue (CWE-457, use of uninitialized variable), not a priority emergency. The CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N, 6.8) shows the dominant limiting factors clearly: the vector is LOCAL (AV:L) and requires passive user interaction (UI:P) - a victim must decode an attacker-supplied CDXL file - while impact is confined to confidentiality (VC:H) with no integrity or availability effect, consistent with a stack-memory leak into decoded pixels. No EPSS score and no KEV/SSVC automatable signal were supplied, so exploitation probability cannot be quantified from the input; the vuln.today decision label is 'this_month', i.e. patch on a routine cadence rather than act_now or emergency. The confidentiality rating is high because the leak can expose pointer fragments (useful for defeating ASLR), but realistically the attacker only benefits if the rendered BGR24 output is returned to them, which bounds practical exploitability. Net: a genuine but non-urgent memory-disclosure bug whose risk is capped by local vector, required user interaction, and the niche CDXL HAM decode path rather than a high-CVSS/low-real-risk mismatch.

Exploit ScenarioDerived

An attacker crafts a malicious type-0 CDXL video file whose HAM pixels reference palette slots that were never populated, then gets a victim or an automated pipeline to decode it with FFmpeg. During cdxl_decode_ham8()/cdxl_decode_ham6() the unfilled new_palette entries emit uninitialized stack bytes and pointer fragments into the BGR24 output frame, which the attacker can read back if the decoded image is returned, transcoded, or displayed to them. No public exploit identified at time of analysis; only the vendor fix PR and patch commit are referenced.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

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

Alert me

AnalysisAIv1 – Nov 01, 2026

Stack memory disclosure in FFmpeg 4.4 through 9.0.2 occurs in the niche CDXL decoder: when a crafted type-0 CDXL file is decoded in HAM6 or HAM8 mode, pixel values can index palette slots that import_palette() never populated, and those uninitialized stack bytes - including pointer fragments - are written into the BGR24 output frame. An attacker who can get a victim to open or process such a file, and who can observe the resulting decoded frames, may recover residual process memory; no authentication is required, but the assessed vector is local with passive user interaction (CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N), so impact is limited to confidentiality of data that is actually returned to the attacker. No public exploit code or CISA KEV entry is associated with this issue at time of analysis, and the vendor fix is upstreamed as a commit/PR rather than a confirmed tagged release.

RemediationAI

Upstream fix available (commit/PR); released patched version not independently confirmed. Apply FFmpeg commit 47313ad3f9f33b892384b976fb7c09b3c85fd74e (tracked as pull request https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24856 - https://github.com/FFmpeg/FFmpeg/commit/47313ad3f9f33b892384b976fb7c09b3c85fd74e), which makes import_palette() report the number of filled entries and makes cdxl_decode_ham6()/cdxl_decode_ham8() return AVERROR_INVALIDDATA when a HAM pixel selects an out-of-range index, then rebuild and redeploy libavcodec, or wait for the corresponding distro/embedded-vendor rebuild that backports it. Because vendor patch data marks the fix as available but no tagged release version is confirmed in the available sources, confirm with the downstream packager which build contains the change. Where patching is delayed, the practical compensating control is to remove the CDXL decoder from the build (for example by not compiling libavcodec/cdxl.c or by disabling the CDXL demuxer/decoder in the configuration), trading away all CDXL playback; alternatively, restrict untrusted input handling so CDXL content is never fed to the decoder in a context where decoded frames are returned to an untrusted party, at the cost of blocking legitimate Amiga CDXL media. Note that the leak only materialises when the decoded BGR24 output is observed by the attacker, so keeping decode output inside a trusted boundary reduces exposure but does not fix the underlying uninitialized read.

Affected VersionsENISA

FFmpeg 4.4 ≤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

CDXL is the Commodore Amiga streaming video container format, and FFmpeg handles it in libavcodec/cdxl.c. The decoder supports planar/raw modes as well as Amiga Hold-And-Modify modes, where each pixel's low bits modify one of the RGB channels of the previous pixel and the high bits select a base palette entry. import_palette() copies the file-declared palette into a stack-local new_palette array based on c->palette_size, but the HAM6/HAM8 loops in cdxl_decode_ham6() and cdxl_decode_ham8() did not check that the index derived from the bitstream was within the number of colors actually imported. Root cause is CWE-457 (use of uninitialized variable): a crafted type-0 file with a short palette causes HAM pixels to read new_palette entries that were never written, and those stack contents are emitted into the decoded BGR24 plane. The upstream fix (commit 47313ad3f9f33b892384b976fb7c09b3c85fd74e, pull request 24856) changes import_palette() to return the number of imported colors (palette_size / 2 or / 3 depending on format), converts cdxl_decode_ham6() and cdxl_decode_ham8() to return int, rejects any index >= nb_colors with AVERROR_INVALIDDATA, and propagates that error from cdxl_decode_frame().

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

Local attacker-supplied file decoded by a victim gives AV:L and UI:R with no auth (PR:N); impact is confidentiality-only (leaked stack/pointer bytes), so C:H, I:N, A:N.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

FFmpeg 4.4 through 9.0.2 contains a use of uninitialized variable vulnerability in the CDXL decoder that leaks stack memory into decoded pixels via unfilled HAM palette entries. Attackers can craft a type-0 CDXL file whose HAM pixels select unfilled new_palette entries in cdxl_decode_ham8() or cdxl_decode_ham6(), exposing stack bytes and pointer fragments in the BGR24 output.

Threat Intelligence Overview

Prevalence
Ubiquitous
FFmpeg is near-universal media library; CDXL HAM path itself is niche
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 MEDIUM
CISA KEV No
Public POC No
EPSS N/A
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
Scheduled
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
High

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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

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