OpenEXR has a signed 32-bit Overflow in PIZ Decoder Leads to OOB Read/Write
OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. From 3.1.0 to before 3.2.7, 3.3.9, and 3.4.9, internal_exr_undo_piz() advances the working wavelet pointer with signed 32-bit arithmetic. Because nx, ny, and wcount are int, a crafted EXR file can make this product overflow and wrap. The next channel then decodes from an incorrect address. The wavelet decode path operates in place, so this yields both out-of-bounds reads and out-of-bounds writes. This vulnerability is fixed in 3.2.7, 3.3.9, and 3.4.9.
References
Affected products
- ==>= 3.2.0, < 3.2.7
- ==>= 3.4.0, < 3.4.9
- ==>= 3.1.0, <= 3.1.13
- ==>= 3.3.0, < 3.3.9
Matching in nixpkgs
pkgs.openexr
High dynamic-range (HDR) image file format
pkgs.openexr_2
High dynamic-range (HDR) image file format
pkgs.openexrid-unstable
OpenEXR files able to isolate any object of a CG image with a perfect antialiazing
-
nixos-unstable 2017-09-17
- nixpkgs-unstable 2017-09-17
- nixos-unstable-small 2017-09-17
-
nixos-25.11 2017-09-17
- nixos-25.11-small 2017-09-17
- nixpkgs-25.11-darwin 2017-09-17
Package maintainers
-
@paperdigits Mica Semrick <mica@silentumbrella.com>
-
@guibou Guillaume Bouchard <guillaum.bouchard@gmail.com>