CVE-2025-64183: CWE-416: Use After Free in AcademySoftwareFoundation openexr
OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. In versions 3.2.0 through 3.2.4, 3.3.0 through 3.3.5, and 3.4.0 through 3.4.2, there is a use-after-free in PyObject_StealAttrString of pyOpenEXR_old.cpp. The legacy adapter defines PyObject_StealAttrString that calls PyObject_GetAttrString to obtain a new reference, immediately decrefs it, and returns the pointer. Callers then pass this dangling pointer to APIs like PyLong_AsLong/PyFloat_AsDouble, resulting in a use-after-free. This is invoked in multiple places (e.g., reading PixelType.v, Box2i, V2f, etc.) Versions 3.2.5, 3.3.6, and 3.4.3 fix the issue.
AI Analysis
Technical Summary
The vulnerability CVE-2025-64183 affects the openexr library, a widely used open-source implementation of the EXR image format standard, primarily utilized in the motion picture and visual effects industries. The flaw is a use-after-free condition located in the legacy Python adapter code (pyOpenEXR_old.cpp), specifically in the function PyObject_StealAttrString. This function attempts to obtain a Python object attribute by calling PyObject_GetAttrString, which returns a new reference. However, PyObject_StealAttrString immediately decrements the reference count, resulting in a dangling pointer being returned. Subsequent calls using this pointer, such as PyLong_AsLong or PyFloat_AsDouble, operate on freed memory, causing undefined behavior. This issue manifests when reading certain EXR file attributes like PixelType.v, Box2i, and V2f. The vulnerability spans multiple versions of openexr (3.2.0-3.2.4, 3.3.0-3.3.5, and 3.4.0-3.4.2) and is resolved in later patch releases (3.2.5, 3.3.6, 3.4.3). The CVSS 4.0 vector indicates a local attack vector (AV:L), low attack complexity (AC:L), no privileges required (PR:N), no user interaction (UI:N), and high impact on availability (VA:H), with no impact on confidentiality or integrity. While no exploits are currently known in the wild, the vulnerability could cause application crashes or denial of service in software that processes EXR files via the vulnerable Python bindings. The issue is particularly relevant for organizations relying on openexr in automated pipelines or custom tooling that integrates Python bindings for image processing. Given the specialized nature of the library, exploitation requires local access and the ability to supply crafted EXR files or manipulate workflows that parse EXR data using the vulnerable code path.
Potential Impact
For European organizations, especially those in the media, film production, and visual effects sectors, this vulnerability poses a risk of service disruption due to application crashes or instability when processing EXR image files. The use-after-free can lead to denial of service conditions, potentially halting rendering pipelines or automated image processing tasks. While the vulnerability does not directly expose sensitive data or enable remote code execution, the availability impact can cause significant operational delays and financial losses in time-sensitive production environments. Organizations using Python bindings for openexr in custom tools or workflows are at higher risk. The local attack vector means that attackers or malicious insiders must have access to the affected systems and the ability to supply or manipulate EXR files. This limits the threat surface but does not eliminate risk, especially in collaborative environments where files are exchanged frequently. The lack of known exploits reduces immediate urgency but patching is critical to prevent future exploitation and maintain operational integrity.
Mitigation Recommendations
European organizations should immediately upgrade openexr to versions 3.2.5, 3.3.6, or 3.4.3 or later, depending on their current version branch. It is essential to audit all Python-based tools and pipelines that utilize openexr bindings to ensure they do not rely on the legacy adapter (pyOpenEXR_old.cpp) or to confirm that patched versions are in use. Where upgrading is not immediately feasible, organizations should implement strict file validation and sandboxing of EXR file processing to limit the impact of malformed files. Monitoring for abnormal crashes or memory errors in image processing applications can help detect exploitation attempts. Additionally, restricting local access to systems handling EXR files and enforcing strict user permissions can reduce the risk of malicious file injection. Development teams should review custom scripts or integrations that parse EXR attributes to avoid unsafe use of Python C API functions on potentially freed objects. Finally, maintain awareness of updates from the AcademySoftwareFoundation and apply security patches promptly.
Affected Countries
United Kingdom, Germany, France, Italy, Spain, Netherlands
CVE-2025-64183: CWE-416: Use After Free in AcademySoftwareFoundation openexr
Description
OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. In versions 3.2.0 through 3.2.4, 3.3.0 through 3.3.5, and 3.4.0 through 3.4.2, there is a use-after-free in PyObject_StealAttrString of pyOpenEXR_old.cpp. The legacy adapter defines PyObject_StealAttrString that calls PyObject_GetAttrString to obtain a new reference, immediately decrefs it, and returns the pointer. Callers then pass this dangling pointer to APIs like PyLong_AsLong/PyFloat_AsDouble, resulting in a use-after-free. This is invoked in multiple places (e.g., reading PixelType.v, Box2i, V2f, etc.) Versions 3.2.5, 3.3.6, and 3.4.3 fix the issue.
AI-Powered Analysis
Technical Analysis
The vulnerability CVE-2025-64183 affects the openexr library, a widely used open-source implementation of the EXR image format standard, primarily utilized in the motion picture and visual effects industries. The flaw is a use-after-free condition located in the legacy Python adapter code (pyOpenEXR_old.cpp), specifically in the function PyObject_StealAttrString. This function attempts to obtain a Python object attribute by calling PyObject_GetAttrString, which returns a new reference. However, PyObject_StealAttrString immediately decrements the reference count, resulting in a dangling pointer being returned. Subsequent calls using this pointer, such as PyLong_AsLong or PyFloat_AsDouble, operate on freed memory, causing undefined behavior. This issue manifests when reading certain EXR file attributes like PixelType.v, Box2i, and V2f. The vulnerability spans multiple versions of openexr (3.2.0-3.2.4, 3.3.0-3.3.5, and 3.4.0-3.4.2) and is resolved in later patch releases (3.2.5, 3.3.6, 3.4.3). The CVSS 4.0 vector indicates a local attack vector (AV:L), low attack complexity (AC:L), no privileges required (PR:N), no user interaction (UI:N), and high impact on availability (VA:H), with no impact on confidentiality or integrity. While no exploits are currently known in the wild, the vulnerability could cause application crashes or denial of service in software that processes EXR files via the vulnerable Python bindings. The issue is particularly relevant for organizations relying on openexr in automated pipelines or custom tooling that integrates Python bindings for image processing. Given the specialized nature of the library, exploitation requires local access and the ability to supply crafted EXR files or manipulate workflows that parse EXR data using the vulnerable code path.
Potential Impact
For European organizations, especially those in the media, film production, and visual effects sectors, this vulnerability poses a risk of service disruption due to application crashes or instability when processing EXR image files. The use-after-free can lead to denial of service conditions, potentially halting rendering pipelines or automated image processing tasks. While the vulnerability does not directly expose sensitive data or enable remote code execution, the availability impact can cause significant operational delays and financial losses in time-sensitive production environments. Organizations using Python bindings for openexr in custom tools or workflows are at higher risk. The local attack vector means that attackers or malicious insiders must have access to the affected systems and the ability to supply or manipulate EXR files. This limits the threat surface but does not eliminate risk, especially in collaborative environments where files are exchanged frequently. The lack of known exploits reduces immediate urgency but patching is critical to prevent future exploitation and maintain operational integrity.
Mitigation Recommendations
European organizations should immediately upgrade openexr to versions 3.2.5, 3.3.6, or 3.4.3 or later, depending on their current version branch. It is essential to audit all Python-based tools and pipelines that utilize openexr bindings to ensure they do not rely on the legacy adapter (pyOpenEXR_old.cpp) or to confirm that patched versions are in use. Where upgrading is not immediately feasible, organizations should implement strict file validation and sandboxing of EXR file processing to limit the impact of malformed files. Monitoring for abnormal crashes or memory errors in image processing applications can help detect exploitation attempts. Additionally, restricting local access to systems handling EXR files and enforcing strict user permissions can reduce the risk of malicious file injection. Development teams should review custom scripts or integrations that parse EXR attributes to avoid unsafe use of Python C API functions on potentially freed objects. Finally, maintain awareness of updates from the AcademySoftwareFoundation and apply security patches promptly.
Affected Countries
For access to advanced analysis and higher rate limits, contact root@offseq.com
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2025-10-28T21:07:16.440Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 69125dcc44f28dbfe98bf109
Added to database: 11/10/2025, 9:49:00 PM
Last enriched: 11/17/2025, 10:40:43 PM
Last updated: 12/26/2025, 7:56:02 AM
Views: 86
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Related Threats
CVE-2025-59888: CWE-428 Unquoted Search Path or Element in Eaton UPS Companion software
MediumCVE-2025-59887: CWE-427 Uncontrolled Search Path Element in Eaton Eaton UPS Companion Software
HighCVE-2025-67450: CWE-427 Uncontrolled Search Path Element in Eaton UPS Companion software
HighCVE-2025-62578: CWE-319 Cleartext Transmission of Sensitive Information in Delta Electronics DVP-12SE
HighCVE-2025-8075: CWE-20 Improper Input Validation in Hanwha Vision Co., Ltd. QNV-C8012
MediumActions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need enhanced features?
Contact root@offseq.com for Pro access with improved analysis and higher rate limits.