CVE-2026-88384 in OpenEXRinfo

Summary

by MITRE • 09/24/2026

OpenEXR 3.4.14 contains a NULL Pointer Dereference in the C++ attribute parsing path. A specially crafted EXR file containing an unknown-type attribute with dataSize set to zero causes the parser to create an opaque attribute with a NULL packed_data pointer. The OpaqueAttribute constructor passes the NULL pointer to memcpy() without validating the zero-size condition, resulting in undefined behavior and process termination, leading to denial of service.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 09/24/2026

The vulnerability identified in OpenEXR version 3.4.14 represents a critical memory safety flaw located within the C++ attribute parsing subsystem responsible for handling image metadata. This specific issue manifests as a NULL pointer dereference triggered by malformed input data, specifically when processing Extended EXR files that contain attributes with undefined or unknown types where the dataSize field is explicitly set to zero. The core of the vulnerability lies in the logical flow of the OpaqueAttribute constructor and its interaction with standard C library functions during memory operations. When the parser encounters such a crafted attribute, it proceeds to instantiate an opaque object intended to hold binary data without fully validating whether that data actually exists or has valid memory backing.

During the initialization phase, the system attempts to copy the attribute's payload into internal storage structures using memcpy(). The function is invoked with a source pointer derived from the parsed metadata which, in this specific malformed scenario, resolves to NULL because no actual data buffer was allocated for an empty size field. Standard C library implementations of memcpy() do not inherently validate that pointers are non-null before attempting memory access; they rely on the caller to ensure valid arguments. Consequently, passing a NULL pointer as the source argument results in undefined behavior according to the C standard. In most modern operating systems and runtime environments, this operation triggers an immediate segmentation fault or access violation exception because the process attempts to read from address zero, which is typically unmapped for security reasons.

The operational impact of this vulnerability is primarily a denial of service condition affecting applications that utilize OpenEXR libraries to parse image files. Since the crash occurs during the parsing phase before any rendering or complex processing takes place, an attacker can exploit this by distributing specially crafted EXR files through various vectors such as email attachments, web uploads, or shared network drives. When a victim application opens these malicious files using a vulnerable version of OpenEXR, the process will terminate abruptly without saving state or providing user feedback beyond a crash report. This disrupts workflows in digital imaging pipelines where reliability is paramount and can cause data loss if unsaved work was associated with the session that triggered the parser failure.

From a classification perspective, this vulnerability aligns closely with CWE-476 which describes NULL Pointer Dereference vulnerabilities. The root cause stems from insufficient input validation regarding pointer validity prior to memory access operations. In terms of attack patterns recognized by industry frameworks such as MITRE ATT&CK, this behavior is consistent with techniques used in initial exploitation phases where stability is compromised rather than code execution achieved immediately. While the primary outcome here is process termination, similar flaws in other contexts could potentially be chained or manipulated for more severe outcomes if memory layout allows for controlled overwrites following a crash recovery mechanism that fails to sanitize state properly.

Mitigation strategies should focus on both immediate patching and long-term defensive coding practices. The most effective remediation is upgrading the OpenEXR library to version 3.4.15 or later where this specific logic error has been addressed by developers who added explicit checks for zero-size attributes before invoking memcpy(). For organizations unable to upgrade immediately, implementing input validation at the application layer can provide a temporary buffer against exploitation. This involves verifying that dataSize fields in parsed metadata are greater than zero and ensuring that corresponding data pointers are not null prior to any memory copy operations. Additionally, enabling compiler protections such as stack protectors and using static analysis tools during development cycles can help identify similar patterns of unsafe pointer usage across the codebase preventing future occurrences of this class of vulnerability.

Responsible

MITRE

Reservation

09/10/2026

Disclosure

09/24/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Want to know what is going to be exploited?

We predict KEV entries!