Skip to main content

OpenEXR CVE-2026-45696

| EUVDEUVD-2026-37948 HIGH
Heap-based Buffer Overflow (CWE-122)
2026-06-18 GitHub_M
8.3
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Craft EXR with HTJ2K width mismatch
  2. Delivery
    Deliver file to OpenEXR consumer
  3. Exploit
    Application calls exr_decoding_run
  4. Execution
    ht_undo_impl reads past OpenJPH line buffer
  5. Impact
    Process crashes or leaks adjacent heap bytes

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Heap buffer bounds checking
MITRE ATT&CK

1 technique across 1 tactic: Execution

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

Exploitation Conditions

Requires the target application to invoke OpenEXR's standard scanline-decode entry point (exr_decoding_run or Imf::checkOpenEXRFile) on an attacker-supplied EXR file that uses HTJ2K compression and embeds a JPEG 2000 codestream whose declared tile/line width is smaller than the EXR header's channel width. No user interaction beyond the application opening the file is needed; no special OpenEXR configuration is required because HTJ2K is part of the default decoder. Limiting factors: the file must reach a consumer of OpenEXR 3.4.0-3.4.11 specifically (the HTJ2K decoder did not exist in earlier branches), and the bug is a 4-byte over-read so the realistic impact is DoS plus possible small heap disclosure rather than control-flow hijack.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H) emphasizes availability impact with no confidentiality or integrity loss in the vulnerable system, which matches a deterministic crash bug; the SA:H reflects that downstream services parsing user-supplied EXRs (render farms, thumbnail services, asset ingestion) can be taken offline. The PR:L choice is questionable because parsing an untrusted EXR file typically does not require authentication on the OpenEXR library itself - the privilege requirement is really on whatever wrapping service ingests the file, and many real-world consumers (thumbnailers, web asset pipelines) process attacker-controlled input with no auth. No EPSS, KEV, or SSVC data was provided, and no public exploit identified at time of analysis. The description notes a 'potential adjacent-heap leak,' so a memory-disclosure primitive cannot be ruled out, but exploitation beyond DoS is not demonstrated. Net risk: high-priority patch for any pipeline that ingests untrusted EXR files, but practically a DoS/info-leak rather than RCE.

Exploit ScenarioDerived

An attacker uploads a crafted EXR file to a service that automatically thumbnails or ingests image assets - for example a media-asset web app, a render-farm submission queue, or a desktop file-manager preview pane. When the worker calls exr_decoding_run or Imf::checkOpenEXRFile on the file, ht_undo_impl() reads 4 bytes past the OpenJPH line buffer, crashing the process and potentially leaking adjacent heap contents into error logs or telemetry. No public exploit identified at time of analysis, but the bug is deterministic and trivially reachable through the default decode path.

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

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

Alert me

AnalysisAIv1 – Jun 18, 2026

Heap-buffer-overflow READ in OpenEXR 3.4.0 through 3.4.11 occurs in the HTJ2K decoder's ht_undo_impl() function when processing a crafted EXR file with mismatched codestream and channel widths, producing a deterministic crash and potential adjacent-heap memory disclosure. Any application that opens untrusted EXR files - including thumbnailers, asset pipelines, and the exrcheck utility - is reachable via the standard scanline-decode entry point. No public exploit identified at time of analysis, but the upstream fix is shipped in v3.4.12.

RemediationAI

Vendor-released patch: OpenEXR 3.4.12, published at https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.4.12, which also addresses CVE-2026-44663 and several OSS-Fuzz findings in the same HTJ2K and DWA decoders. Upgrade the OpenEXR library directly and rebuild or update any downstream consumers (DCC tools, render farms, thumbnailers, asset pipelines, exrcheck) that statically link or bundle OpenEXR. If immediate upgrade is impossible, disable or block HTJ2K/HTJ2K256-compressed EXR inputs at the ingestion boundary and reject EXR files from untrusted sources; the trade-off is that any legitimate HTJ2K-compressed assets will fail to load. As an additional compensating control, sandbox EXR parsing (seccomp, container, or separate process) so a crash or potential adjacent-heap read cannot affect the parent service - at the cost of added IPC complexity. Refer to GHSA-gjpj-qv64-vwhf for the full vendor write-up.

Affected VersionsENISA

OpenEXR 3.4.0, < 3.4.11

Affected Packages

euvd openexr_3_4_0 fix: 3.4.11

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 used pervasively in VFX and motion-picture pipelines. The flaw lives in OpenEXRCore's HTJ2K (High-Throughput JPEG 2000, ISO/IEC 15444-15) decode path, which wraps the OpenJPH library. ht_undo_impl() copies decoded samples out of a per-line OpenJPH buffer (cur_line->i32[]) using the EXR channel's declared width as the iteration count, but the embedded JPEG 2000 codestream can declare smaller tile/line dimensions than the EXR header advertises. Because the function never reconciles the codestream's actual line length against the channel width, it reads 4 bytes past the buffer allocated by ojph::local::codestream::finalize_alloc(). This is a classic CWE-122 heap-based buffer over-read driven by trusting one length field over another - the same input-length-mismatch pattern seen in many image-parser vulnerabilities.

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 8.3 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
vuln.today AI 7.1 HIGH

Attacker-supplied EXR reaches the decoder over network-delivered content but requires a user/service to open the file (UI:R); no auth on the library itself (PR:N); 4-byte over-read gives low confidentiality and high availability 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 6.1 MEDIUM
AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H
Red Hat 7.1 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
High

Lifecycle Timeline

1
Patch available
Jun 18, 2026 - 23:16 EUVD

DescriptionCVE.org

OpenEXR is the reference implementation and specification for the EXR image format, widely used in the motion picture industry. In versions 3.4.0 through 3.4.11, the HTJ2K (High-Throughput JPEG 2000) decoder, ht_undo_impl() in OpenEXRCore is vulnerable to a heap-buffer-overflow READ. The ht_undo_imp function copies decoded pixels out of a per-line OpenJPH buffer using the EXR channel's declared width as the iteration count. The codestream embedded in the EXR chunk can declare different (smaller) tile/line dimensions than the EXR header advertises, but ht_undo_impl() does not validate this - it pulls width 32-bit samples from cur_line->i32[] without checking the OpenJPH line buffer's actual length. A crafted EXR file produces a 4-byte heap-buffer-overflow READ immediately after a buffer allocated by ojph::local::codestream::finalize_alloc(). The bug is reachable through the standard scanline-decode entry point used by every consumer of exr_decoding_run/Imf::checkOpenEXRFile, including thumbnailers, asset pipelines, and the exrcheck utility - i.e. any application that opens untrusted EXR files. The result is a deterministic crash (DoS) and potential adjacent-heap leak. This issue has been fixed in version 3.4.12.

Executive ViewAI

Why It Matters

OpenEXR versions 3.4.0 through 3.4.11 contain a heap buffer overflow vulnerability in the image decoder that enables attackers to crash applications and disclose adjacent memory contents via crafted EXR files; no public exploit identified at time of analysis. Organizations using OpenEXR in image processing pipelines, asset management systems, or thumbnail generators face both operational disruption and potential sensitive data exposure.

Business Impact: High
Compensating Controls

Apply vendor patch (OpenEXR v3.4.12)

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Social Media
1
Sightings
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor CIRCL 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.3%
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

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
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.

A heap overflow occurs when a program writes data beyond the bounds of a buffer allocated in the heap memory region.

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: Moderate
Product Status
openSUSE Tumbleweed Fixed
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Not-Affected
SUSE Linux Enterprise Module for Desktop Applications 15 SP7 Not-Affected
SUSE Linux Enterprise Server 15 SP7 Not-Affected

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