CVE-2025-59729
CVE-2025-59729 · Heap-buffer-overflow read in FFmpeg DHAV get_duration
This page contains facts from public vulnerability sources. Check the original advisory before updating.
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.
CVSS 5.7 · Medium · EPSS 0.2% · Fix available
- Published
- Updated
Stack: system
Affected products and versions
ffmpeg
- Versions
- ≥ a218cafe4d3be005ab0c61130f90db4d21afb5db, < 8.0: Affected (custom)
Update to 8.0
libav Ubuntu:Pro:14.04:LTS
- Versions
- 6:0.8.7-1ubuntu2
- 6:9.10-1ubuntu1
- 6:9.10-1ubuntu2
- 6:9.10-1ubuntu5
- 6:9.10-1ubuntu6
- 6:9.10-1ubuntu7
- 6:9.11-2ubuntu1
- 6:9.11-2ubuntu2
- 6:9.13-0ubuntu0.14.04.1
- 6:9.14-0ubuntu0.14.04.1
- 6:9.16-0ubuntu0.14.04.1
- 6:9.18-0ubuntu0.14.04.1
- 6:9.20-0ubuntu0.14.04.1
- 6:9.20-0ubuntu0.14.04.1+esm1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published