Skip to main content

Openexr EUVDEUVD-2026-24041

| CVE-2026-39886 MEDIUM
Integer Overflow or Wraparound (CWE-190)
2026-04-21 GitHub_M
5.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Recon
    Attacker crafts EXR file with 16,385 channels
  2. Delivery
    Delivers file to target via web/email/media library
  3. Exploit
    Target application opens file with OpenEXR 3.4.0-3.4.9
  4. Install
    HTJ2K decompressor invokes ht_undo_impl()
  5. C2
    bpl integer overflows at line 211
  6. Execute
    Negative bpl wraps and corrupts heap during scanline pointer advance
  7. Impact
    Denial of service or code execution

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer overflow checks
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

Exploitation requires a crafted EXR file that (1) uses the HTJ2K compression codec, (2) specifies 16,385 or more FLOAT channels, and (3) declares a width approaching the HTJ2K maximum of 32,767 pixels per scanline. The vulnerability is NOT triggered by default EXR files or standard image specifications; it demands a specific combination of channel count and width that causes bpl to exceed INT_MAX. Additionally, exploitation is contingent on the host system's memory allocator permitting the ~64 GB allocation required during decompression. Memory-constrained systems (typical servers, desktop workstations) will fail the allocation and never reach the overflow condition, resulting in benign out-of-memory handling. Only systems with aggressive memory overcommit or sufficient virtual memory can trigger the heap corruption. No special OpenEXR configuration is required beyond having HTJ2K support enabled (standard in official releases). Remote attackers can deliver a malicious EXR file without authentication.

Impact

The CVSS v3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L) indicates remote network exploitation without authentication or user interaction against default configurations, yielding a base score of 5.3 (Medium). The attack is low-complexity and requires no privileges. However, real-world risk is heavily constrained by memory availability. On memory-constrained hosts (typical servers, endpoints), the ~64 GB heap allocation required to trigger the vulnerability will fail, causing a benign out-of-memory exception before ht_undo_impl() is entered - no out-of-bounds write occurs. Only on allocator-permissive systems with adequate virtual memory (e.g., certain server configurations with overcommit enabled, or systems processing untrusted media files) does the wrapped bpl value produce heap corruption, enabling code execution or severe denial of service. The score of 5.3 reflects denial-of-service impact (Availability, not Confidentiality/Integrity) on reachable systems. Active exploitation is not confirmed (KEV status unknown from input); no public POC is referenced. The vulnerability requires a specifically crafted EXR file, not a trivial input. Remediation is straightforward: upgrade to 3.4.10. The practical risk to most deployments is low-to-moderate unless they process untrusted EXR files on systems with generous memory allocation policies.

Exploit ScenarioDerived

A threat actor crafts a malicious EXR file specifying 16,385 FLOAT channels at the maximum HTJ2K width of 32,767 pixels and delivers it via email, web upload, or a media library. When a VFX workstation or rendering farm node opens the file using OpenEXR 3.4.0-3.4.9, the ht_undo_impl() function attempts to allocate ~64 GB and, on a system with memory overcommit or generous virtual memory, proceeds to decompress. The signed integer overflow in bpl wraps to a negative value, causing subsequent per-scanline pointer arithmetic to write out of bounds, corrupting the heap and potentially achieving code execution or crashing the renderer.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Apr 21, 2026

Signed integer overflow in OpenEXR 3.4.0-3.4.9 HTJ2K decompression allows remote attackers to cause denial of service via crafted EXR files with excessive FLOAT channels. The ht_undo_impl() function accumulates a bytes-per-line value in a 32-bit signed integer without overflow protection; on memory-permissive systems, the wrapped negative value enables heap out-of-bounds writes. OpenEXR 3.4.10 contains the fix. This is a distinct overflow from CVE-2026-34545 in the same function and mirrors the pattern of CVE-2026-34588.

RemediationAI

Upgrade OpenEXR to version 3.4.10 or later. The patched version corrects the signed integer overflow in the bpl accumulator at line 211 of internal_ht.cpp, implementing overflow guards consistent with the CVE-2026-34588 remediation in the PIZ decompression handler. For organizations unable to upgrade immediately, implement input validation at the application level to reject EXR files specifying more than a reasonable threshold of channels (e.g., reject files with >1024 channels or validate that channel count × maximum width does not exceed safe allocation limits). Disable HTJ2K decompression if the application's workflow does not require it (though this is not typical for production VFX pipelines). Monitor heap allocation during EXR parsing; alert or terminate processing if allocation requests exceed predefined thresholds (e.g., >10 GB). These compensating controls add latency and may reject valid files, so they are temporary mitigations only. Release notes and patch details are available at https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.4.10.

Affected VersionsENISA

OpenEXR 3.4.0, < 3.4.10

Affected Packages

euvd openexr_3_4_0 fix: 3.4.10

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 a high-dynamic-range (HDR) image format widely used in visual effects and animation. HTJ2K (High-Throughput JPEG 2000) is a compression codec integrated into OpenEXR's decompression pipeline. The vulnerability resides in the ht_undo_impl() function in src/lib/OpenEXRCore/internal_ht.cpp at line 211, where a 32-bit signed integer bpl (bytes-per-line) accumulates channel-width values without bounds checking. A crafted EXR file specifying 16,385 FLOAT channels at the HTJ2K maximum width (32,767 pixels) causes bpl to overflow INT_MAX (2,147,483,647), wrapping to a negative value. This undefined behavior (confirmed by UBSan) manifests as heap corruption when the negative bpl is later used as a per-scanline pointer advance in line ~302. The root cause is CWE-190 (Integer Overflow or Wraparound). This is structurally identical to CVE-2026-34588 in the PIZ decompression path (internal_piz.c), suggesting a systemic pattern in OpenEXR's decompression handlers.

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 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
SUSE MEDIUM
Red Hat 6.5 MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

3
Patch released
Apr 22, 2026 - 18:41 nvd
Patch available
Patch available
Apr 21, 2026 - 03:01 EUVD
CVE Published
Apr 21, 2026 - 01:27 nvd
MEDIUM 5.3

DescriptionCVE.org

OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. Versions 3.4.0 through 3.4.9 have a signed integer overflow vulnerability in OpenEXR's HTJ2K (High-Throughput JPEG 2000) decompression path. The ht_undo_impl() function in src/lib/OpenEXRCore/internal_ht.cpp accumulates a bytes-per-line value (bpl) using a 32-bit signed integer with no overflow guard. A crafted EXR file with 16,385 FLOAT channels at the HTJ2K maximum width of 32,767 causes bpl to overflow INT_MAX, producing undefined behavior confirmed by UBSan. On an allocator-permissive host where the required ~64 GB allocation succeeds, the wrapped negative bpl value would subsequently be used as a per-scanline pointer advance, which would produce a heap out-of-bounds write. On a memory-constrained host, the allocation fails before ht_undo_impl() is entered. This is the second distinct integer overflow in ht_undo_impl(). CVE-2026-34545 addressed a different overflow in the same function - the int16_t p pixel-loop counter at line ~302 that overflows when iterating over channels whose width exceeds 32,767. The CVE-2026-34545 fix did not touch the int bpl accumulator at line 211, which is the subject of this advisory. The bpl accumulator was also not addressed by any of the 8 advisories in the 2026-04-05 v3.4.9 release batch. This finding is structurally identical to CVE-2026-34588 (PIZ wcount*nx overflow in internal_piz.c) and should be remediated with the same pattern. The CVE-2026-34588 fix did not touch internal_ht.cpp. Version 3.4.10 contains a remediation that addresses the vulnerability in internal_ht.cpp.

Threat Intelligence Overview

EPSS Score
0.0%
Top 88% exploitable
Social Media
2
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.

Related Vulnerabilities in OpenEXR Integer Overflow Vulnerabilities

View all 3
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: Medium
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise High Performance Computing 15 SP7 Fixed
SUSE Linux Enterprise Module for Desktop Applications 15 SP7 Fixed
SUSE Linux Enterprise Server 15 SP7 Fixed
SUSE Linux Enterprise Server 16.0 Fixed

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