Description
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.
Published: 2026-08-25
Score: 7.1 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A deep image file with a non‑zero dataWindow origin can cause the OpenEXRUtil TypedDeepImageChannel<T>::row() API to return a pointer that points outside of the allocated buffer. This out‑of‑bounds read may crash an application or, under a predictable heap layout, leak data from the heap, representing a potential information disclosure. The vulnerability stems from a mismatch between absolute and logical coordinate handling within the library and is documented as CWE‑125.

Affected Systems

The issue affects OpenEXRUtil versions 3.3.0 through 3.3.12 and 3.4.0 through 3.4.12 from the Academy Software Foundation. Those product releases are vulnerable; later releases (3.3.13 and 3.4.13 onward) contain the fix.

Risk and Exploitability

The CVSS score of 7.1 classifies the vulnerability as a medium‑high severity, and the EPSS score is not available at this time. It is not listed in the CISA KEV catalogue. The likely attack vector is the delivery of a malicious deep‑image file that an application or library processes; the attacker does not need elevated privileges but requires that the target load the crafted file. Exploitation conditions are simple—an impacted library processed with a deep image holding a dataWindow origin different from zero, leading to an OOB read.

Generated by OpenCVE AI on August 25, 2026 at 19:08 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade OpenEXRUtil to version 3.3.13 or later, or 3.4.13 or later, which contains the patch.
  • If upgrading immediately is not feasible, configure your image processing pipeline to reject or bypass processing of deep images that have a non‑zero dataWindow origin.
  • Validate all input image files against trusted schemas or use application‑level checks before invoking the TypedDeepImageChannel API to ensure no malformed deep images are processed.

Generated by OpenCVE AI on August 25, 2026 at 19:08 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 25 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 25 Aug 2026 17:00:00 +0000

Type Values Removed Values Added
Description 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.
Title OpenEXR: Out-of-bounds read in DeepImageChannel::row() for non-zero dataWindow origin
Weaknesses CWE-125
References
Metrics cvssV3_1

{'score': 7.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-25T18:59:12.883Z

Reserved: 2026-07-02T19:53:48.830Z

Link: CVE-2026-59189

cve-icon Vulnrichment

Updated: 2026-08-25T18:58:55.883Z

cve-icon NVD

Status : Received

Published: 2026-08-25T17:17:37.160

Modified: 2026-08-25T19:16:51.457

Link: CVE-2026-59189

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-25T19:15:05Z

Weaknesses