Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious ZBUFFER-only/oversized-pixel IFF file
-
DeliveryDeliver as asset to VFX pipeline or user
-
ExploitVictim/automation opens file in OpenImageIO
-
Executionread_native_tile copies pixel_bytes() into undersized tile buffer
-
PersistHeap out-of-bounds write corrupts memory
-
ImpactPotential code execution in host process
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, write limits
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the target application process an attacker-supplied Maya IFF (.iff) image through OpenImageIO's iff.imageio reader. The specific trigger is a zbuffer-only tiled IFF whose ZBUFFER (Z-depth) data is exposed via a 16-bit public ImageSpec while the internal pixel size remains 32-bit, OR an IFF whose read fails after partially resizing m_buf so a later read_native_tile() call copies from a half-initialized buffer; in both cases read_native_tile() sizes the copy by m_header.pixel_bytes() rather than ImageSpec::tile_bytes(true). Limiting factors: the vector is local (AV:L) and requires user interaction / file ingestion (UI:R) - the attacker cannot trigger it remotely without the victim opening the crafted file - and affected versions are those prior to 3.0.21.0, 3.1.16.0, and 3.2.0.3-beta1. Risk is amplified in automated render/asset pipelines where untrusted IFF files are batch-processed without a human explicitly opening each file. |
| Impact | This is a genuine memory-corruption bug (CWE-787 heap out-of-bounds write) in OpenImageIO's Maya IFF decoder, but the practical risk is bounded by the local, victim-triggered attack surface. The vendor CVSS3.1 vector (AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H, 7.8) is internally consistent with the root cause: exploitation requires the victim to open/process a crafted IFF file (AV:L + UI:R), no prior authentication is needed (PR:N), and a successful heap OOB write plausibly yields full C:H/I:H/A:H via memory corruption. There is no EPSS score, no CISA KEV listing, and no public exploit provided in the intelligence - status is 'no public exploit identified at time of analysis'. Weighing signals: the high CVSS is driven by the memory-corruption impact triple, not by ease of remote mass-exploitation; because the vector is local and interaction-dependent, this is a patch-in-normal-cycle issue for most consumers rather than an emergency, EXCEPT in automated VFX/render-farm pipelines that ingest untrusted IFF assets, where 'user interaction' collapses to routine batch processing and the effective exposure is higher. No signals conflict; the main caveat is that C:H/I:H/A:H assumes the OOB write is controllably weaponizable to code execution, which the advisory does not independently demonstrate. |
| Exploit ScenarioDerived | An attacker crafts a malicious Maya IFF image - either a ZBUFFER-only (Z-depth) file exposed with a 16-bit ImageSpec while the decoder keeps a 32-bit internal pixel size, or a file that induces a failed read leaving m_buf non-empty - and delivers it to a target that uses OpenImageIO (e.g. a texture/asset in a VFX pipeline or a DCC tool). When the victim or an automated pipeline opens the file, IffInput::read_native_tile() copies using m_header.pixel_bytes() instead of ImageSpec::tile_bytes(true), writing partially initialized data past the undersized caller tile buffer and corrupting the heap. No public exploit code was identified in the provided intelligence. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 18, 2026
Heap out-of-bounds write in OpenImageIO's Maya IFF decoder (src/iff.imageio/iffinput.cpp) lets a crafted .iff file corrupt heap memory in any application built against affected releases prior to 3.0.21.0, 3.1.16.0, or 3.2.0.3-beta1. The trigger is a zbuffer-only tiled IFF whose Z-depth data is exposed through a 16-bit public ImageSpec while the decoder keeps a 32-bit internal pixel size, combined with a failure path that leaves m_buf partially populated so a later read_native_tile() copies half-initialized data into an undersized caller buffer sized by m_header.pixel_bytes() instead of ImageSpec::tile_bytes(true). The CVSS 3.1 vector (AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H, 7.8) confirms no privileges are required but the attack is local and depends on a victim or pipeline opening the malicious image; no public exploit code or active exploitation has been identified at time of analysis, and risk is highest in automated render/asset pipelines that batch-process untrusted IFF files without human review.
RemediationAI
Vendor-released patch: upgrade to OpenImageIO 3.0.21.0, 3.1.16.0, or 3.2.0.3-beta1 (or later) from the tagged releases at https://github.com/AcademySoftwareFoundation/OpenImageIO/releases/tag/v3.0.21.0, https://github.com/AcademySoftwareFoundation/OpenImageIO/releases/tag/v3.1.16.0, and the 3.2.x beta line, applying the upstream change from PR 5268 / commit 9cda48b150294c7f024e680a6c9b0402e50f4816; rebuild all dependent applications and renderer plugins against the patched library, since the vulnerable code lives in a shared imageio plugin rather than in each consumer. No configuration toggle disables only the dangerous code path, so if immediate patching is impossible, relocate or delete the iff.imageio plugin binary from the OpenImageIO plugin directory so the library refuses to open Maya IFF files - the trade-off is that all legitimate .iff assets (including valid RGBA IFFs used by Maya pipelines) stop loading and callers will see format-not-supported errors. As a lower-friction compensating control, parse untrusted IFF assets inside a sandboxed, low-privilege converter process (separate UNIX user, seccomp/AppArmor confinement, address-space and file-size limits) and convert to EXR or PNG before the files reach production tools; this contains a successful heap corruption to the throwaway worker but adds latency and pipeline complexity and can be defeated if the worker is later granted privileged mounts. Pre-screen inbound assets by rejecting any IFF file that contains only a ZBUFFER chunk or declares RGBA chunk sizes of 8 bytes or less, matching the new upstream validation checks, and treat IFF uploads from external vendors or clients as untrusted until the patch is deployed.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
OpenImageIO is a cross-platform image I/O library used throughout VFX and animation pipelines; its iff.imageio plugin implements the Maya IFF format via the IffInput ImageInput subclass. A Maya IFF file is a chunked container, and the decoder's read_header() parses flags governing RGBA color channels, alpha, and Z-depth (ZBUFFER) data. In vulnerable builds, a ZBUFFER-only image was placed into a 16-bit public ImageSpec (m_header.rgba_bits = 32 internally, rgba_count = 1) even though the tile decompressor only understands 8- and 16-bit RGBA pixels, and read_native_tile() computed its copy length from m_header.pixel_bytes() rather than the caller-visible ImageSpec::tile_bytes(true). Because a failed readimg() could leave m_buf nonempty after a partial resize, a subsequent tile request skipped the (failed) decode and memcpy'd partially initialized data into a buffer sized for 16-bit pixels, producing a CWE-787 out-of-bounds write and memory corruption. The affected CPE is cpe:2.3:a:academysoftwarefoundation:openimageio:*:*:*:*:*:*:*:*, i.e. all OpenImageIO releases before the fixed versions. The upstream fix (PR 5268, commit 9cda48b150294c7f024e680a6c9b0402e50f4816) hardens the parser across several related cases: it rejects ZBUFFER-only images outright, validates the color-channel configuration so rgba_count must be 3 or 4, rejects the BLACK flag without color flags, verifies declared chunk sizes fit within the remaining file, rejects nonsensical RGBA chunk sizes (<= 8), and clears m_buf when readimg() fails so no stale half-initialized buffer can be copied later.
Know when Openimageio gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Local malicious-file parsing (AV:L/UI:R) needing no auth (PR:N); a controllable heap OOB write plausibly yields full C:H/I:H/A:H within the host process (S:U).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
OpenImageIO is a toolset for reading, writing, and manipulating image files of any image file format relevant to VFX / animation. Prior to 3.0.21.0, 3.1.16.0, and 3.2.0.3-beta1, A zbuffer-only tiled iff is exposed with a 16-bit public imagespec while the decoder retains a 32-bit internal pixel size. iffinput::read_native_tile() copies according to m_header.pixel_bytes() rather than imagespec::tile_bytes(true), and a failed read can leave m_buf nonempty so a later call copies partially initialized data into the undersized caller buffer, resulting in a heap out-of-bounds write and memory corruption. The affected implementation is identified by src/iff.imageio/iffinput.cpp, IffInput::read_native_tile(), ImageSpec::tile_bytes(true), m_header.pixel_bytes(), ZBUFFER, and m_buf, which define the relevant source path, functions, state, and trigger. This issue is fixed in versions 3.0.21.0, 3.1.16.0, and 3.2.0.3-beta1.
Technical POC Analysis
CWE-787 out-of-bounds write.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A memory-corruption flaw in OpenImageIO's Maya IFF image decoder affects any application, renderer, or asset pipeline built against releases prior to 3.0.21.0, 3.1.16.0, or 3.2.0.3-beta1, allowing a maliciously crafted .iff file to overwrite heap memory when opened. Because the flaw is reachable unauthenticated but requires a user or an automated pipeline to open the file, the practical exposure sits with studio render farms, transcoding services, and asset-ingest workflows that batch-process untrusted third-party images at scale. Leadership should care because a single poisoned asset entering such a pipeline can compromise high-value production systems with full loss of confidentiality, integrity, and availability, and no vendor patch is currently available.
No vendor-released patch identified at time of analysis. Interim mitigations: block or quarantine untrusted .iff files at ingress; disable the Maya IFF decoder or plugin where not operationally required; run decoding processes in sandboxed, least-privilege containers or dedicated low-trust render nodes; validate file type and provenance before decode; restrict network egress from decoder hosts; and monitor for decoder crashes or anomalous memory behavior as potential exploitation indicators.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
More in Openimageio
View allBuffer Overflow vulnerability in OpenImageIO oiio v.2.4.12.0 allows a remote attacker to execute arbitrary code and caus
A code execution vulnerability exists in the DDS scanline parsing functionality of OpenImageIO Project OpenImageIO v2.4.
An out-of-bounds write vulnerability exists in the OpenImageIO::add_exif_item_to_spec functionality of OpenImageIO Proje
A heap based buffer overflow vulnerability exists in the PSD thumbnail resource parsing code of OpenImageIO 2.3.19.0. Ra
A heap based buffer overflow vulnerability exists in tile decoding code of TIFF image parser in OpenImageIO master-branc
A heap out-of-bounds write vulnerability exists in the way OpenImageIO v2.3.19.0 processes RLE encoded BMP images. Rated
A heap out of bounds read vulnerability exists in the handling of IPTC data while parsing TIFF images in OpenImageIO v2.
An issue in OpenImageIO oiio v.2.4.12.0 allows a remote attacker to execute arbitrary code and cause a denial of service
Multiple code execution vulnerabilities exist in the IFFOutput::close() functionality of OpenImageIO Project OpenImageIO
Multiple code execution vulnerabilities exist in the IFFOutput::close() functionality of OpenImageIO Project OpenImageIO
Multiple code execution vulnerabilities exist in the IFFOutput::close() functionality of OpenImageIO Project OpenImageIO
Multiple code execution vulnerabilities exist in the IFFOutput::close() functionality of OpenImageIO Project OpenImageIO
Same weakness CWE-787 – Out-of-bounds Write
View allSame technique Buffer Overflow
View allVendor StatusVendor
SUSE
Severity: Important| Product | Status |
|---|---|
| openSUSE Tumbleweed | Fixed |
EUVD-2026-83130
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB