CVE-2025-64183
Unknown Unknown - Not Provided
BaseFortify

Publication date: 2025-11-10

Last updated on: 2025-12-08

Assigner: GitHub, Inc.

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.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2025-11-10
Last Modified
2025-12-08
Generated
2026-05-07
AI Q&A
2025-11-11
EPSS Evaluated
2026-05-05
NVD
EUVD
Affected Vendors & Products
Showing 3 associated CPEs
Vendor Product Version / Range
openexr openexr From 3.2.0 (inc) to 3.2.5 (exc)
openexr openexr From 3.3.0 (inc) to 3.3.6 (exc)
openexr openexr From 3.4.0 (inc) to 3.4.3 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-416 The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory "belongs" to the code that operates on the new pointer.
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?

This vulnerability is a use-after-free issue in the OpenEXR library's pyOpenEXR_old.cpp file, specifically in the PyObject_StealAttrString function. The function obtains a new reference to an attribute, immediately decrements its reference count, and returns a pointer to the now potentially freed object. Subsequent calls using this dangling pointer (e.g., PyLong_AsLong or PyFloat_AsDouble) can lead to use-after-free behavior, which may cause crashes or undefined behavior. It affects multiple versions of OpenEXR before being fixed in versions 3.2.5, 3.3.6, and 3.4.3.


How can this vulnerability impact me? :

This use-after-free vulnerability can lead to application crashes, memory corruption, or potentially allow an attacker to execute arbitrary code or cause denial of service when processing malicious EXR files using the affected OpenEXR versions.


What immediate steps should I take to mitigate this vulnerability?

Upgrade OpenEXR to versions 3.2.5, 3.3.6, or 3.4.3 or later, as these versions contain fixes for the use-after-free vulnerability in PyObject_StealAttrString.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart