Skip to main content

OpenImageIO EUVDEUVD-2026-83130

| CVE-2026-63419 HIGH
Out-of-bounds Write (CWE-787)
2026-09-18 GitHub_M
7.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft malicious ZBUFFER-only/oversized-pixel IFF file
  2. Delivery
    Deliver as asset to VFX pipeline or user
  3. Exploit
    Victim/automation opens file in OpenImageIO
  4. Execution
    read_native_tile copies pixel_bytes() into undersized tile buffer
  5. Persist
    Heap out-of-bounds write corrupts memory
  6. Impact
    Potential 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

OpenImageIO 3.2.0.0-dev, < 3.2.0.3-beta1
OpenImageIO < 3.0.21.0
OpenImageIO 3.1.0.0, < 3.1.16.0

Affected Packages

euvd openimageio fix: 3.0.21.0, 3.1.16.0
euvd openimageio_3_2_0_0_dev fix: 3.2.0.3-beta1

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

Vendor (GitHub_M) PRIMARY 7.8 HIGH
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 7.8 HIGH

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).

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Sep 18, 2026 - 17:17 EUVD
CVE Published
Sep 18, 2026 - 15:46 cve.org
HIGH 7.8

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.2%
Top 88% exploitable
Prevalence
Medium
de facto image I/O library across VFX/animation pipelines and DCC tools, not general-purpose
Data Quality
7 sources
Confidence: High

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

CVE-2023-42299 CRITICAL POC
9.8 Nov 02

Buffer Overflow vulnerability in OpenImageIO oiio v.2.4.12.0 allows a remote attacker to execute arbitrary code and caus

CVE-2022-41838 CRITICAL POC
9.8 Dec 22

A code execution vulnerability exists in the DDS scanline parsing functionality of OpenImageIO Project OpenImageIO v2.4.

CVE-2022-41837 CRITICAL POC
9.8 Dec 22

An out-of-bounds write vulnerability exists in the OpenImageIO::add_exif_item_to_spec functionality of OpenImageIO Proje

CVE-2022-41794 CRITICAL POC
9.8 Dec 22

A heap based buffer overflow vulnerability exists in the PSD thumbnail resource parsing code of OpenImageIO 2.3.19.0. Ra

CVE-2022-41639 CRITICAL POC
9.8 Dec 22

A heap based buffer overflow vulnerability exists in tile decoding code of TIFF image parser in OpenImageIO master-branc

CVE-2022-38143 CRITICAL POC
9.8 Dec 22

A heap out-of-bounds write vulnerability exists in the way OpenImageIO v2.3.19.0 processes RLE encoded BMP images. Rated

CVE-2022-41649 CRITICAL POC
9.1 Dec 22

A heap out of bounds read vulnerability exists in the handling of IPTC data while parsing TIFF images in OpenImageIO v2.

CVE-2023-42295 HIGH POC
8.8 Oct 23

An issue in OpenImageIO oiio v.2.4.12.0 allows a remote attacker to execute arbitrary code and cause a denial of service

CVE-2022-43602 HIGH POC
8.1 Dec 22

Multiple code execution vulnerabilities exist in the IFFOutput::close() functionality of OpenImageIO Project OpenImageIO

CVE-2022-43601 HIGH POC
8.1 Dec 22

Multiple code execution vulnerabilities exist in the IFFOutput::close() functionality of OpenImageIO Project OpenImageIO

CVE-2022-43600 HIGH POC
8.1 Dec 22

Multiple code execution vulnerabilities exist in the IFFOutput::close() functionality of OpenImageIO Project OpenImageIO

CVE-2022-43599 HIGH POC
8.1 Dec 22

Multiple code execution vulnerabilities exist in the IFFOutput::close() functionality of OpenImageIO Project OpenImageIO

Vendor StatusVendor

SUSE

Severity: Important
Product Status
openSUSE Tumbleweed Fixed

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy