CVE-2026-59956: OpenImageIO: Heap-buffer-overread in IffInput::readimg() when ZBUFFER flag is set
OpenImageIO is a toolset for reading, writing, and manipulating image files of any image file format relevant to VFX / animation. Prior to 3.0.20.0, 3.1.15.0, and 3.2.0.3-beta1, An uncompressed 16-bit iff image with a z-buffer makes iffinput::readimg() allocate a temporary scanline from mheader.rgbacount but copy from it using mheader.pixelbytes(), whose stride also includes z-buffer bytes. the oversized memcpy reads beyond the temporary heap buffer and copies adjacent memory into the output image, resulting in a crash or disclosure of adjacent heap data. The affected implementation is identified by src/iff.imageio/iffinput.cpp, IffInput::readimg(), mheader.rgbacount, and mheader.pixelbytes(), which define the relevant source path, functions, state, and trigger. This issue is fixed in versions 3.0.20.0, 3.1.15.0, and 3.2.0.3-beta1.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
OpenImageIOto a version that resolves this vulnerability.Fixed in 3.0.20.0 - Upgrade
Upgrade
OpenImageIOto a version that resolves this vulnerability.Fixed in 3.1.15.0 - Upgrade
Upgrade
OpenImageIOto a version that resolves this vulnerability.Fixed in 3.2.0.3-beta1
Event History
Frequently Asked Questions
Which versions contain the fix?
The issue is fixed in OpenImageIO 3.0.20.0, 3.1.15.0, and 3.2.0.3-beta1. Versions prior to those releases are affected.
What must an attacker provide to trigger the issue?
The attacker needs to cause processing of an uncompressed 16-bit IFF image that has the ZBUFFER flag set. Exploitation requires user interaction, consistent with the supplied CVSS vector.
What is the impact of processing a malicious image?
The oversized memory copy can read beyond a temporary heap buffer, potentially causing a crash or disclosing adjacent heap data through the output image. The provided severity data indicates confidentiality impact and high availability impact, with no integrity impact.
How can I identify the affected code path in a build or source tree?
The affected implementation is in src/iff.imageio/iffinput.cpp, specifically IffInput::readimg(). The vulnerable path allocates using m_header.rgba_count and copies using m_header.pixel_bytes(), where the latter includes z-buffer bytes.