CVE-2025-64183
Unknown Unknown - Not Provided

BaseFortify

Vulnerability report for CVE-2025-64183, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

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-07-06
AI Q&A
2025-11-11
EPSS Evaluated
2026-07-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 Quick Actions

Instant insights powered by AI
Executive Summary

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.

Impact Analysis

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.

Mitigation Strategies

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.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2025-64183. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart