CVE-2025-59733 Overview
CVE-2025-59733 is a high-severity out-of-bounds write vulnerability affecting OpenEXR file processing when decoding files that use DWAA or DWAB compression. The vulnerability stems from implicit assumptions in the decompression code regarding channel pixel types and ordering, which can be exploited to write beyond allocated buffer boundaries.
When decoding an OpenEXR file that uses DWAA or DWAB compression, the code makes 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". An attacker can craft a malicious OpenEXR file that violates these assumptions, leading to memory corruption.
Critical Impact
Successful exploitation of this vulnerability could allow an attacker to corrupt memory beyond allocated buffers, potentially leading to code execution or application crashes when processing malicious OpenEXR files.
Affected Products
- OpenEXR versions prior to 8.0
- Software and libraries utilizing OpenEXR DWAA/DWAB decompression functionality
Discovery Timeline
- 2025-10-06 - CVE CVE-2025-59733 published to NVD
- 2025-10-19 - Last updated in NVD database
Technical Details for CVE-2025-59733
Vulnerability Analysis
This vulnerability is classified as CWE-787 (Out-of-Bounds Write), a memory corruption flaw that occurs during the decompression of specially crafted OpenEXR files. The attack requires adjacent network access and some user interaction, such as opening a malicious file.
The core issue lies in the dwa_uncompress function's handling of channel data. The buffer td->uncompressed_data is allocated in decode_block based on xsize, ysize, and a computed current_channel_offset. However, the decompression logic assumes uniform channel types without proper validation.
When the main color channels are set to a 4-byte type while additional duplicate or unknown channels use the 2-byte EXR_HALF type, the pointer arithmetic incorrectly increments by 4 bytes × xsize × nb_channels, causing the write operation to exceed the allocated buffer boundaries.
Root Cause
The root cause is an implicit assumption in the channel parsing and decompression code that all image channels share the same pixel type and size. The decode_header function parses channel information, but the dwa_uncompress function fails to validate that the actual channel types match the expected uniform type before performing pointer arithmetic and memory operations.
Specifically, if there are four channels, the code assumes these are "B", "G", "R", and "A" without verification. The calculations for buffer offset advancement use a fixed channel type size based on the main color channels, regardless of the actual types of additional channels present in the file.
Attack Vector
The attack requires an adversary with adjacent network access to deliver a malicious OpenEXR file to the target system. User interaction is required, typically involving opening or processing the crafted file through an application that utilizes the vulnerable OpenEXR library.
The attacker constructs an OpenEXR file with DWAA or DWAB compression containing:
- Main color channels configured with a 4-byte pixel type
- Additional duplicate or unknown channels using the 2-byte EXR_HALF type
When the vulnerable library processes this file, the mismatch between assumed and actual channel sizes causes the decompression routine to write data beyond the allocated buffer, resulting in heap memory corruption. For technical details, see the Google Issue Tracker Entry.
Detection Methods for CVE-2025-59733
Indicators of Compromise
- Unexpected application crashes when processing OpenEXR image files
- Memory access violation errors in image processing applications
- OpenEXR files with unusual channel configurations containing mixed pixel types
- Abnormal memory allocation patterns during OpenEXR file parsing
Detection Strategies
- Monitor for crashes in applications using OpenEXR libraries with DWAA/DWAB compression
- Implement file validation to detect OpenEXR files with inconsistent channel pixel types
- Deploy memory corruption detection tools to identify out-of-bounds write attempts
- Review application logs for memory allocation failures during image processing operations
Monitoring Recommendations
- Enable heap corruption detection mechanisms in development and testing environments
- Implement input validation for OpenEXR files before processing
- Monitor for unusual file access patterns involving OpenEXR files from untrusted sources
- Deploy endpoint detection capabilities to identify exploitation attempts targeting image processing components
How to Mitigate CVE-2025-59733
Immediate Actions Required
- Upgrade to OpenEXR version 8.0 or later which addresses this vulnerability
- Restrict processing of OpenEXR files from untrusted sources
- Implement application sandboxing for image processing workflows
- Enable memory protection mechanisms such as ASLR and DEP where supported
Patch Information
The vendor recommends upgrading to OpenEXR version 8.0 or beyond to remediate this vulnerability. The fix properly validates channel pixel types during DWAA/DWAB decompression to ensure consistent handling and prevent buffer overflows.
For additional information, refer to the Google Issue Tracker Entry.
Workarounds
- Disable DWAA and DWAB compression support if not required for business operations
- Implement strict input validation to reject OpenEXR files with mismatched channel types
- Process OpenEXR files in isolated sandbox environments to limit potential impact
- Use alternative compression methods for OpenEXR files until patching is complete
Organizations should prioritize applying the official patch as workarounds may not provide complete protection against all exploitation scenarios.
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


