CVE-2025-59729

EUVD-2025-32182
When parsing the header for a DHAV file, there's an integer underflow in offset calculation that leads to reading the duration from before the start of the allocated buffer.

If we load a DHAV file that is larger than MAX_DURATION_BUFFER_SIZE bytes (0x100000) for example 0x101000 bytes, then at [0] we have size = 0x101000. At [1] we have end_buffer_size = 0x100000, and at [2] we have end_buffer_pos = 0x1000.

The loop then scans backwards through the buffer looking for the dhav tag; when it is found, we'll calculate end_pos based on a 32-bit offset read from the buffer.

There is subsequently a check [3] that end_pos is within the section of the file that has been copied into end_buffer, but it only correctly handles the cases where end_pos is before the start of the file or after the section copied into end_buffer, and not the case where end_pos is within the the file, but before the section copied into end_buffer. If we provide such an offset, (end_pos - end_buffer_pos) can underflow, resulting in the subsequent access at [4] occurring before the beginning of the allocation.

We recommend upgrading to version 8.0 or beyond.
ProviderTypeBase ScoreAtk. VectorAtk. ComplexityPriv. RequiredVector
GoogleCNA
5.7 MEDIUM
ADJACENT
HIGH
LOW
CVSS:4.0/AV:A/AC:H/AT:P/PR:L/UI:P/VC:L/VI:H/VA:N/SC:L/SI:H/SA:N
Base Score
CVSS 3.x
EPSS Score
Percentile: 4.66%
Early Detection
Affected products identified ahead of NVD analysis through intelligence sources.
VendorProductVersionSource
ffmpegffmpeg
𝑥
< 8.0
CNA
Debian logo
Debian Releases
Debian Product
Codename
ffmpeg
bookworm
7:5.1.9-0+deb12u1
fixed
bookworm (security)
7:5.1.9-0+deb12u1
fixed
bullseye
7:4.3.7-0+deb11u1
fixed
bullseye (security)
7:4.3.9-0+deb11u2
fixed
forky
7:8.1.2-2
fixed
sid
7:8.1.2-2
fixed
trixie
7:7.1.5-0+deb13u1
fixed
trixie (security)
7:7.1.5-0+deb13u1
fixed
Ubuntu logo
Ubuntu Releases
Ubuntu Product
Codename
ffmpeg
bionic
not-affected
focal
not-affected
jammy
not-affected
noble
not-affected
plucky
ignored
questing
not-affected
resolute
not-affected
xenial
not-affected
libav
jammy
dne
noble
dne
plucky
dne
questing
dne
resolute
dne
trusty
needs-triage