Skip to main content

OpenEXRUtil CVE-2026-59189

| EUVDEUVD-2026-65593 HIGH
Out-of-bounds Read (CWE-125)
2026-08-25 GitHub_M
7.1
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft EXR file with non-zero dataWindow.min
  2. Delivery
    Deliver to victim via upload, email, or shared asset store
  3. Exploit
    Victim application opens file using OpenEXRUtil
  4. Execution
    row() call computes pointer before heap allocation
  5. Persist
    Heap out-of-bounds read triggers crash (DoS)
  6. Impact
    Optional: heap contents disclosed if layout controlled

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK

1 technique across 1 tactic: Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the target application uses the TypedDeepImageChannel<T>::row(), FlatImageChannel::row(), or SampleCountChannel::row() API from the OpenEXRUtil library (not the lower-level core OpenEXR library) and processes an EXR image whose dataWindow.min has at least one non-zero coordinate - a valid but non-default EXR configuration. A victim user or automated process must open or ingest the crafted file (CVSS UI:R). Information disclosure beyond crash additionally requires the attacker to control heap layout through prior allocations, which is a non-trivial capability. Exploitation is limited to software explicitly linking against OpenEXRUtil and invoking the row() accessor on deep or flat image channels; applications using only at(x, y) or direct core-library access are unaffected.

Impact

The CVSS 7.1 score (AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H) reflects a reliably triggerable crash with low-complexity exploitation, requiring no attacker privileges but demanding that a victim open or process a crafted file. The primary practical risk is denial-of-service in any application pipeline that ingests untrusted EXR files - image editors, compositing tools, asset ingest services. The confidentiality impact (C:L) is plausible but explicitly contingent on a controlled heap layout, making information disclosure a secondary and less-certain outcome. No EPSS data was provided, so exploitation probability cannot be quantified; no KEV listing and no public exploit code exist at time of analysis, indicating this is not currently subject to widespread opportunistic exploitation. Real-world exposure is bounded by OpenEXRUtil's deployment footprint, which is concentrated in media/VFX production environments rather than broadly deployed internet-facing infrastructure. The risk is genuine for organizations running automated EXR ingestion pipelines against untrusted inputs but is lower-priority for most enterprise environments.

Exploit ScenarioDerived

An attacker crafts a malformed EXR file with a non-zero dataWindow.min (e.g., origin at (1024, -1024)) and delivers it to a victim via a file upload endpoint, email attachment, or shared asset repository targeting a VFX or media production pipeline using affected OpenEXRUtil versions. When the application opens the file and calls row() on a deep or flat image channel, the function dereferences a heap address before the allocation boundary, crashing the application; if the attacker can pre-shape the heap via earlier requests or allocations, limited heap contents adjacent to the allocation may also be readable.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 25, 2026

Heap out-of-bounds read in OpenEXRUtil's deep and flat image channel row() API allows an attacker supplying a crafted EXR file with a non-zero dataWindow origin to crash any application that processes the file, with conditional heap memory disclosure dependent on attacker-controlled heap layout. Affected are OpenEXRUtil versions 3.3.0-3.3.12 and 3.4.0-3.4.12; the flaw exists across three channel header implementations (ImfDeepImageChannel.h, ImfFlatImageChannel.h, ImfSampleCountChannel.h). No public exploit identified at time of analysis, and patched releases 3.3.13 and 3.4.13 are available.

RemediationAI

Upgrade to OpenEXRUtil 3.3.13 or 3.4.13, which correct the pointer arithmetic in all three affected headers by replacing the offset _base pointer with the appropriate raw allocation pointer. Three fix commits are available: https://github.com/AcademySoftwareFoundation/openexr/commit/37f03b6ed90f3dd9910f31de3a40f25f2bc2aca1, https://github.com/AcademySoftwareFoundation/openexr/commit/55b7958ecb5ac32c427ff39c1e063f6f7bbee77c, and https://github.com/AcademySoftwareFoundation/openexr/commit/aef02224ba282a802de65d16c49c1cdb82089dec. If an immediate patch is not possible, applications processing untrusted EXR files can validate the dataWindow.min coordinates and reject files where dataWindow.min.x or dataWindow.min.y is non-zero before invoking the OpenEXRUtil row() API; this trade-off breaks processing of valid EXR files with non-default data windows (a legitimate EXR feature), so the workaround should be treated as temporary. Sandboxing EXR-processing workers in a separate process is an additional compensating control that limits crash impact to the worker process rather than the host application.

Affected VersionsENISA

OpenEXR < 3.2.11
OpenEXR 3.4.0, < 3.4.14
OpenEXR 3.3.0, < 3.3.13

Affected Packages

euvd openexr fix: 3.2.11, 3.3.13, 3.4.14

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

OpenEXR is the Academy Software Foundation's reference implementation of the EXR high-dynamic-range image format (CPE: cpe:2.3:a:academysoftwarefoundation:openexr), pervasive in VFX and film production toolchains. The vulnerable component is the OpenEXRUtil wrapper library, which provides higher-level C++ image channel abstractions. The root cause (CWE-125: Out-of-bounds Read) is a coordinate model conflict: the at(x, y) accessor correctly applies an absolute-coordinate offset by adjusting the _base pointer relative to dataWindow.min, while the documented row(r) accessor - intended as 0-based logical row access - incorrectly used the same offset _base pointer rather than the raw allocation-start pointers (_sampleListPointers, _pixels, _numSamples). For any image whose dataWindow.min is non-zero (a valid EXR feature), row(0) therefore computes an address before the heap allocation. The commit diff confirms the fix is a one-line pointer substitution in all three affected headers, and a regression test was added covering a dataWindow spanning V2i(1024, -1024) to V2i(1031, -1017).

Know when Openexr gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 7.1 HIGH
AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H
vuln.today AI 7.1 HIGH

Network vector because trigger is a crafted file delivered remotely; UI:R for required file-open; C:L for conditional heap disclosure; A:H for reliable crash; no integrity impact.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE HIGH
Red Hat 7.1 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
High

Lifecycle Timeline

2
Patch available
Aug 25, 2026 - 18:17 EUVD
CVE Published
Aug 25, 2026 - 16:51 cve.org
HIGH 7.1

DescriptionCVE.org

OpenEXR is the reference implementation and specification for the EXR image format, widely used in the motion picture industry. In OpenEXRUtil versions 3.3.0 through 3.3.12 and 3.4.0 through 3.4.12, the documented TypedDeepImageChannel<T>::row() API can return an out-of-bounds pointer when a deep image has a non-zero dataWindow origin, resulting in a heap out-of-bounds read and crash, with potential information disclosure under a controlled heap layout. The flaw arises because ImfDeepImageChannel uses two conflicting coordinate models: at(x, y) uses absolute coordinates (with _base offset by dataWindow.min), while row(r) is documented as 0-based logical access. For a non-zero dataWindow.min, row(0) therefore points outside the _sampleListPointers allocation instead of at the first logical row. This issue is fixed in versions 3.3.13 and 3.4.13.

Executive ViewAI

Why It Matters

OpenEXRUtil versions 3.3.0-3.3.12 and 3.4.0-3.4.12 contain a heap out-of-bounds read flaw that allows attackers to crash applications and conditionally disclose sensitive heap memory through crafted EXR files. Organizations using these versions in graphics, imaging, or media processing pipelines face immediate availability and data confidentiality risks from untrusted file processing.

Business Impact: High
Compensating Controls

Vendor-released patch: versions 3.3.13 and 3.4.13

Threat Intelligence Overview

EPSS Score
0.2%
Top 84% exploitable
Prevalence
Low
VFX/film production tooling, limited to media industry pipelines
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2018-18444 HIGH POC
8.8 Oct 17

makeMultiView.cpp in exrmultiview in OpenEXR 2.3.0 has an out-of-bounds write, leading to an assertion failure or possib

CVE-2026-27622 HIGH POC
8.4 Mar 03

Out-of-bounds heap write in OpenEXR's CompositeDeepScanLine::readPixels lets a crafted multi-part deep-scanline EXR file

CVE-2017-12596 HIGH POC
7.8 Aug 07

In OpenEXR 2.2.0, a crafted image causes a heap-based buffer over-read in the hufDecode function in IlmImf/ImfHuf.cpp du

CVE-2026-26981 MEDIUM POC
6.5 Feb 24

OpenEXR versions 3.3.0-3.3.6 and 3.4.0-3.4.4 are vulnerable to a heap buffer overflow in file parsing due to improper in

CVE-2021-3598 MEDIUM POC
5.5 Jul 06

There's a flaw in OpenEXR's ImfDeepScanLineInputFile functionality in versions prior to 3.0.5. Rated medium severity (CV

CVE-2020-16589 MEDIUM POC
5.5 Dec 09

A head-based buffer overflow exists in Academy Software Foundation OpenEXR 2.3.0 in writeTileData in ImfTiledOutputFile.

CVE-2020-16588 MEDIUM POC
5.5 Dec 09

A Null Pointer Deference issue exists in Academy Software Foundation OpenEXR 2.3.0 in generatePreview in makePreview.cpp

CVE-2020-16587 MEDIUM POC
5.5 Dec 09

A heap-based buffer overflow vulnerability exists in Academy Software Foundation OpenEXR 2.3.0 in chunkOffsetReconstruct

CVE-2020-11765 MEDIUM POC
5.5 Apr 14

An issue was discovered in OpenEXR before 2.4.1. Rated medium severity (CVSS 5.5), this vulnerability is no authenticati

CVE-2020-11764 MEDIUM POC
5.5 Apr 14

An issue was discovered in OpenEXR before 2.4.1. Rated medium severity (CVSS 5.5), this vulnerability is no authenticati

CVE-2020-11763 MEDIUM POC
5.5 Apr 14

An issue was discovered in OpenEXR before 2.4.1. Rated medium severity (CVSS 5.5), this vulnerability is no authenticati

CVE-2020-11762 MEDIUM POC
5.5 Apr 14

An issue was discovered in OpenEXR before 2.4.1. Rated medium severity (CVSS 5.5), this vulnerability is no authenticati

Vendor StatusVendor

SUSE

Severity: Important
Product Status
openSUSE Tumbleweed Fixed
SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS Affected
SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS Affected
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS Affected
SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy