CVE Catalog

CVE-2025-59733

HighCVSS 8.7
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.19%

8th percentile - higher than 8% of all known CVEs

Summary

When decoding an OpenEXR file with DWAA or DWAB compression, there is 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". With duplicate or unknown channels of 2-byte EXR_HALF type, pointer calculations can exceed the allocated buffer, causing an overflow.

Risk Assessment

A malicious OpenEXR file could cause a buffer overflow during decoding, potentially leading to a crash or code execution.

Recommendation

Upgrade OpenEXR to version 8.0 or later.

Other vulnerabilities in OpenEXR

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS