CVE-2026-34379 PUBLISHED

OpenEXR has a misaligned write in LossyDctDecoder_execute leading to undefined behavior (DWA/DWAB decompression)

Assigner: GitHub_M
Reserved: 27.03.2026 Published: 06.04.2026 Updated: 06.04.2026

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 misaligned memory write vulnerability exists in LossyDctDecoder_execute() in src/lib/OpenEXRCore/internal_dwa_decoder.h:749. When decoding a DWA or DWAB-compressed EXR file containing a FLOAT-type channel, the decoder performs an in-place HALF→FLOAT conversion by casting an unaligned uint8_t * row pointer to float * and writing through it. Because the row buffer may not be 4-byte aligned, this constitutes undefined behavior under the C standard and crashes immediately on architectures that enforce alignment (ARM, RISC-V, etc.). On x86 it is silently tolerated at runtime but remains exploitable via compiler optimizations that assume aligned access. This vulnerability is fixed in 3.2.7, 3.3.9, and 3.4.9.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H
CVSS Score: 7.1

Product Status

Vendor AcademySoftwareFoundation
Product openexr
Versions
  • Version >= 3.2.0, < 3.2.7 is affected
  • Version >= 3.3.0, < 3.3.9 is affected
  • Version >= 3.4.0, < 3.4.9 is affected

References

Problem Types

  • CWE-704: Incorrect Type Conversion or Cast CWE
  • CWE-787: Out-of-bounds Write CWE
  • CWE-843: Access of Resource Using Incompatible Type ('Type Confusion') CWE