Bug 2401799 (CVE-2025-59733) - CVE-2025-59733 FFmpeg: Heap-buffer-overflow write in FFmpeg EXR dwa_uncompress
Summary: CVE-2025-59733 FFmpeg: Heap-buffer-overflow write in FFmpeg EXR dwa_uncompress
Keywords:
Status: NEW
Alias: CVE-2025-59733
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On: 2401827 2401835 2401839 2401842 2401861 2401862
Blocks:
TreeView+ depends on / blocked
 
Reported: 2025-10-06 09:01 UTC by OSIDB Bzimport
Modified: 2025-10-06 10:45 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2025-10-06 09:01:39 UTC
When decoding an OpenEXR file that uses DWAA or DWAB compression, there's an implicit assumption that all image channels have the same pixel type (and size), and that if there are four channels, the first four are "B", "G", "R" and "A". The channel parsing code can be found in decode_header. The buffer td->uncompressed_data is allocated in decode_block based on the xsize, ysize and computed current_channel_offset.

The function dwa_uncompress then assumes at [5] that if there are 4 channels, these are "B", "G", "R" and "A", and in the calculations at [6] and [7] that all channels are of the same type, which matches the type of the main color channels.

If we set the main color channels to a 4-byte type and add duplicate or unknown channels of the 2-byte EXR_HALF type, then the addition at [7] will increment the pointer by 4-bytes * xsize * nb_channels, which will exceed the allocated buffer.





We recommend upgrading to version 8.0 or beyond.


Note You need to log in before you can comment on or make changes to this bug.