CVE-2026-39886 json
OpenEXR has HTJ2K Signed Integer Overflow in ht_undo_impl()
published 2026-04-21 6 mo ago modified 2026-10-26 13 d ago also EUVD-2026-24041 , JLSEC-2026-806
- cvss
- 5.3
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 23%
- public exploits
- 0
- none known
Summary
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`.
Patch / fix
- julia OpenEXR_jll 3.4.12+0
- openexr openexr 3.4.10
- openexr Debian 14 3.4.14-0.1
debian advisories DEBIAN-CVE-2026-39886
- openexr openSUSE Tumbleweed 3.4.9-4.1
opensuse advisories openSUSE-SU-2026:10665-1
- openexr Alpine 3.23 3.4.13-r0
- openexr Alpine 3.24 3.4.10-r0
alpine advisories ALPINE-CVE-2026-39886
Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-39886 updated cvss 6.5
OpenEXR: OpenEXR: Signed integer overflow in HTJ2K decompression can lead to denial of service.
-
Red Hat Enterprise Linux 6 OpenEXR, OpenEXR-libs Red Hat Enterprise Linux 7 OpenEXR, OpenEXR-libs Red Hat Enterprise Linux 8 OpenEXR, OpenEXR-libs Red Hat Enterprise Linux 9 openexr, openexr-libs Red Hat Enterprise Linux 10 openexraffected: workaround, no fix available “Fix deferred”
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 6 mo ago
Exploit prediction
0.30% chance of exploitation in the next 30 days, higher than 23% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-r3mr-mx8q-jcw5 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L |
| OSV | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| julia | OpenEXR_jll | >=3.4.4+0, <3.4.12+0 |
3.4.12+0 |
Affected products
- AcademySoftwareFoundation openexr
Classification
- Weakness
-
- CWE-190 Integer Overflow or Wraparound
References
-
github.com
/AcademySoftwareFoundation/openexr/security/advisories/GHSA-r3mr-mx8q-jcw5
exploit, mitigation, vendor-advisory, web
-
github.com
/AcademySoftwareFoundation/openexr/releases/tag/v3.4.10
product, release-notes, web
Sources
- CVE List CVE-2026-39886
- NVD CVE-2026-39886
- OSV JLSEC-2026-806
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.