8.7

CVE-2025-59734: ffmpeg Use After Free

CVSS: 8.7v4.0HighDeferred
AliasesUBUNTU-CVE-2025-59734DEBIAN-CVE-2025-59734CGA-3j4q-5jgc-42hv
Published 06-10-2025Last modified 26-02-2026

Vulnerability summary

CVE-2025-59734 is a high (CVSS 8.7) Use After Free vulnerability in ffmpeg. EPSS estimates a 0.18% chance of exploitation in the next 30 days, higher than 7.2% of scored vulnerabilities.

Overall risk
35/100
0100
Medium · default modelHow is this calculated?
CVSS score
8.7/10
010
High · v4.0 (CVE.org)
EPSS score
0.18%
0%100%
Low · 0.00 pp in 30 days
KEVNot listedIn no KEV catalog
RansomwareNone recordedNo known use recorded
Public exploits0No public exploits recorded

Advisory lineage

Upstream 0 · Downstream 0 · Related 1

Timeline

  1. 06-10-2025
    PublishedVulnerability first disclosed.
  2. 26-02-2026
    Last modifiedVulnerability information updated.

Description

It is possible to cause an use-after-free write in SANM decoding with a carefully crafted animation using subversion <2. When a STOR chunk is present, a subsequent FOBJ chunk will be saved in ctx->stored_frame. Stored frames can later be referenced by FTCH chunks. For files using subversion < 2, the undecoded frame is stored, and decoded again when the FTCH chunks are parsed. However, in process_frame_obj if the frame has an invalid size, there’s an early return, with a value of 0. This causes the code in decode_frame to still store the raw frame buffer into ctx->stored_frame. Leaving ctx->has_dimensions set to false. A subsequent chunk with type FTCH would call process_ftch and decode that frame obj again, adding to the top/left values and calling process_frame_obj again. Given that we never set ctx->have_dimensions before, this time we set the dimensions, calling init_buffers, which can reallocate the buffer in ctx->stored_frame, freeing the previous one. However, the GetByteContext object gb still holds a reference to the old buffer. Finally, when the code tries to decode the frame, codecs that accept a GetByteContext as a parameter will trigger a use-after-free read when using gb. GetByteContext is only used for reading bytes, so at most one could read invalid data. There are no heap allocations between the free and when the object is accessed. However, upon returning to process_ftch, the code restores the original values for top/left in stored_frame, writing 4 bytes to the freed data at offset 6, potentially corrupting the allocator’s metadata. This issue can be triggered just by probing whether a file has the sanm format. We recommend upgrading to version 8.0 or beyond.

CVSS metrics

6 scores · 6 sources · 1 version

EPSS trend

Probability

0.18%

Chance of exploitation in the next 30 days

Percentile

7%

Versus all other CVEs

30-day change

0.00 pp

From 0.18% on 19-09-2026

19-09-202619-10-2026
EPSS score
0.18%

Known exploited

Compare KEV catalogs

Not in any of the 3 tracked catalogs.

Public exploits

0 found

No public exploits indexed.

Weaknesses

CWE · root cause

Affected systems

Chainguard5 products
  • eco-python-ffmpeg-7-minimalAll versions (No fix recorded)
  • eco-python-ffmpeg-7-minimal-devAll versions (No fix recorded)
  • eco-python-ffmpeg-7-minimal-staticAll versions (No fix recorded)
  • ffmpeg-7All versions (No fix recorded)
  • ffmpeg-7.1All versions (No fix recorded)
Ubuntu2 products
  • ffmpegAll versions (No fix recorded)
  • libavAll versions (No fix recorded)
Wolfi2 products
  • ffmpeg-7All versions (No fix recorded)
  • ffmpeg-7.1All versions (No fix recorded)
Debian1 product
  • ffmpegAll versions (No fix recorded)
Ffmpeg1 product
  • ffmpeg≥ 4d7c609be37dc57d31527c8c9e5945dc9491a7cd, < 8.0 | ≥ 7.1.1, < 8.0

5 vendors · 11 products

References

8 links