CVE-2026-55373

OpenEXR: OpenEXRUtil SampleCountChannel endEdit() can loop forever on UINT_MAX sample counts

Published Aug 25, 2026 CVSS 3.1 · 6.2 Medium EPSS < 1% KEV · Not listed
Description
OpenEXR is the reference implementation and specification for the EXR image format, widely used in the motion picture industry. Versions prior to 3.2.10, 3.3.12, and 3.4.13 contain an infinite-loop vulnerability in SampleCountChannel. The helper roundListSizeUp() rounds a sample-list size up to the next power of two using repeated unsigned left shifts, which terminates for normal values but fails for UINT_MAX: the sequence reaches 0x80000000, and the next left shift wraps the 32-bit value to 0. Because 0 remains less than UINT_MAX, the loop never progresses and never exits. The bug is reachable through public OpenEXRUtil APIs, either by editing the sample-count buffer through SampleCountChannel::Edit (whose destructor calls endEdit()) or by calling SampleCountChannel::set(x, y, UINT_MAX) on a valid pixel. This issue has been fixed in versions 3.2.10, 3.3.12, and 3.4.13.

Analysis

AI-generated

Technical impact

The vulnerability resides in the SampleCountChannel component of OpenEXR. The roundListSizeUp() helper repeatedly left‑shifts an unsigned 32‑bit number to round a sample‑list size up to the next power of two. When the requested size is the maximum unsigned value, the shift overflows at 0x80000000, producing 0, which remains less than the requested size and causes an infinite loop in endEdit(). This loop never exits, consuming CPU continuously and effectively denying service. The weakness is categorized as integer overflow, unchecked input size, and an infinite loop under CWE‑190, CWE‑400, and CWE‑835.

Affected Systems

The OpenEXR library distributed by the Academy Software Foundation is affected. Every release prior to 3.2.10, 3.3.12, and 3.4.13 is vulnerable. Applications that process EXR images containing a sample count of 4,294,967,295 (UINT_MAX) can trigger the exploit if they use these libraries. The library is commonly integrated into visual effects pipelines and media processing applications in the motion picture industry, so any software that links against the affected versions and processes untrusted EXR content is at risk.

Risk and Exploitability

The CVSS score of 6.2 indicates medium severity, the EPSS score is not available, and the vulnerability is not listed in CISA's KEV catalog. The flaw is reachable through publicly exposed OpenEXRUtil APIs, so an attacker can supply a crafted EXR file that triggers the infinite loop. The likely attack vector is a remote request that causes an application to ingest a malicious EXR image—such as through an image upload endpoint, a media ingestion service, or a plugin that processes user‑supplied graphics. If an application ingests untrusted EXR content, the result could be a denial of service that monopolizes CPU resources. The attack requires no special privileges.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the OpenEXR library to a version that includes the fix (≥ 3.2.10, ≥ 3.3.12, or ≥ 3.4.13).
  • Rebuild or reconfigure any applications that depend on OpenEXR to link against the updated library.
  • If an immediate upgrade is not feasible, limit processing of EXR files to trusted sources and monitor the application for signs of CPU or memory exhaustion that may indicate an infinite loop.

Generated by OpenCVE AI on August 25, 2026 at 01:50 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
First Time appeared Academysoftwarefoundation
Academysoftwarefoundation openexr
Vendors & Products Academysoftwarefoundation
Academysoftwarefoundation openexr
Type Values Removed Values Added
Metrics ssvc

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

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. Versions prior to 3.2.10, 3.3.12, and 3.4.13 contain an infinite-loop vulnerability in SampleCountChannel. The helper roundListSizeUp() rounds a sample-list size up to the next power of two using repeated unsigned left shifts, which terminates for normal values but fails for UINT_MAX: the sequence reaches 0x80000000, and the next left shift wraps the 32-bit value to 0. Because 0 remains less than UINT_MAX, the loop never progresses and never exits. The bug is reachable through public OpenEXRUtil APIs, either by editing the sample-count buffer through SampleCountChannel::Edit (whose destructor calls endEdit()) or by calling SampleCountChannel::set(x, y, UINT_MAX) on a valid pixel. This issue has been fixed in versions 3.2.10, 3.3.12, and 3.4.13.
Title OpenEXR: OpenEXRUtil SampleCountChannel endEdit() can loop forever on UINT_MAX sample counts
Weaknesses CWE-190
CWE-400
CWE-835
References
Metrics cvssV3_1

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

Weaknesses
  • CWE-190

    Integer Overflow or Wraparound

  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-835

    Loop with Unreachable Exit Condition ('Infinite Loop')

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Aug 25, 2026, 1:37 PM
Reserved
Jun 16, 2026, 6:57 PM
Status
Deferred
Published
Aug 25, 2026, 1:16 AM
Modified
Oct 12, 2026, 3:10 PM
Severity
Moderate
Public date
Aug 25, 2026, 12:39 AM