CVE-2026-34380

OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. From 3.2.0 to before 3.2.7, 3.3.9, and 3.4.9, a signed integer overflow exists in undo_pxr24_impl() in src/lib/OpenEXRCore/internal_pxr24.c at line 377. The expression (uint64_t)(w * 3) computes w * 3 as a signed 32-bit integer before casting to uint64_t. When w is large, this multiplication constitutes undefined behavior under the C standard. On tested builds (clang/gcc without sanitizers), two's-complement wraparound commonly occurs, and for specific values of w the wrapped result is a small positive integer, which may allow the subsequent bounds check to pass incorrectly. If the check is bypassed, the decoding loop proceeds to write pixel data through dout, potentially extending far beyond the allocated output buffer. This vulnerability is fixed in 3.2.7, 3.3.9, and 3.4.9.
Configurations

Configuration 1 (hide)

OR cpe:2.3:a:openexr:openexr:*:*:*:*:*:*:*:*
cpe:2.3:a:openexr:openexr:*:*:*:*:*:*:*:*
cpe:2.3:a:openexr:openexr:*:*:*:*:*:*:*:*

History

26 Oct 2026, 21:10

Type Values Removed Values Added
Summary
  • (es) OpenEXR proporciona la especificación e implementación de referencia del formato de archivo EXR, un formato de almacenamiento de imágenes para la industria cinematográfica. Desde la versión 3.2.0 hasta antes de la 3.2.7, 3.3.9 y 3.4.9, existe un desbordamiento de entero con signo en undo_pxr24_impl() en src/lib/OpenEXRCore/internal_pxr24.c en la línea 377. La expresión (uint64_t)(w * 3) calcula w * 3 como un entero con signo de 32 bits antes de convertirlo a uint64_t. Cuando w es grande, esta multiplicación constituye un comportamiento indefinido según el estándar C. En compilaciones probadas (clang/gcc sin sanitizers), comúnmente ocurre un desbordamiento por complemento a dos, y para valores específicos de w el resultado desbordado es un entero positivo pequeño, lo que puede permitir que la comprobación de límites subsiguiente pase incorrectamente. Si la comprobación es eludida, el bucle de decodificación procede a escribir datos de píxeles a través de dout, extendiéndose potencialmente mucho más allá del búfer de salida asignado. Esta vulnerabilidad se corrige en las versiones 3.2.7, 3.3.9 y 3.4.9.

Information

Published : 2026-04-06 16:16

Updated : 2026-10-26 21:10


NVD link : CVE-2026-34380

Mitre link : CVE-2026-34380

CVE.ORG link : CVE-2026-34380


JSON object : View

Products Affected

openexr

  • openexr
CWE
CWE-190

Integer Overflow or Wraparound

CWE-787

Out-of-bounds Write