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.
Metrics
Affected Vendors & Products
Source | ID | Title |
---|---|---|
![]() |
EUVD-2025-32514 | 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. |
Solution
No solution given by the vendor.
Workaround
No workaround given by the vendor.
Link | Providers |
---|---|
https://b.corp.google.com/issues/436511754 |
![]() ![]() |
Mon, 06 Oct 2025 17:15:00 +0000
Type | Values Removed | Values Added |
---|---|---|
Metrics |
ssvc
|
Mon, 06 Oct 2025 14:45:00 +0000
Type | Values Removed | Values Added |
---|---|---|
First Time appeared |
Ffmpeg
Ffmpeg ffmpeg |
|
Vendors & Products |
Ffmpeg
Ffmpeg ffmpeg |
Mon, 06 Oct 2025 08:15:00 +0000
Type | Values Removed | Values Added |
---|---|---|
Description | 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. | |
Title | Heap-buffer-overflow write in FFmpeg EXR dwa_uncompress | |
Weaknesses | CWE-787 | |
References |
| |
Metrics |
cvssV4_0
|

Status: PUBLISHED
Assigner: Google
Published:
Updated: 2025-10-06T16:12:47.557Z
Reserved: 2025-09-19T08:11:37.550Z
Link: CVE-2025-59733

Updated: 2025-10-06T15:59:55.206Z

Status : Awaiting Analysis
Published: 2025-10-06T08:15:35.080
Modified: 2025-10-06T14:56:21.733
Link: CVE-2025-59733

No data.

Updated: 2025-10-06T14:39:57Z