Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft truncated TGA with oversized dimensions
-
DeliveryVictim converts file to GIF via OpenImageIO
-
ExploitPending frame flushed at output close
-
Execution32-bit overflow in GifSplitPalette corrupts subPixelsA
-
ImpactOut-of-bounds read crashes process (DoS)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection 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 OpenImageIO (prior to 3.0.21.0 / 3.1.16.0 / 3.2.0.3-beta1) be used to WRITE GIF output while reading a maliciously crafted, TRUNCATED TGA input - the specific trigger is a truncated TGA that leaves a pending GIF frame processed during GIFOutput close, combined with image dimensions large enough to overflow the signed 32-bit numPixels × (splitElt−firstElt) product in GifSplitPalette(). Limiting factors: the vector is LOCAL (AV:L) with required user interaction (UI:R) - a user or automated job must invoke the TGA→GIF conversion path; there is no unauthenticated remote trigger, no privilege escalation, and no attacker code execution. Realistic exposure is confined to services or workflows that transcode untrusted images to GIF using OpenImageIO. |
| Impact | This is a genuine but low-priority defensive-hardening issue, not an urgent threat. The CVSS 3.1 vector (AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H, base 5.5) describes a pure availability impact - a process crash - with no confidentiality or integrity loss. The attack is LOCAL (AV:L) and requires user interaction (UI:R): a victim must run an OpenImageIO-based tool that converts a maliciously crafted/truncated TGA into GIF output. There is no remote network exposure and no code execution: the integer overflow in GifSplitPalette() drives an out-of-bounds READ (CWE-125), which in practice terminates the process rather than yielding attacker control. No EPSS score, no CISA KEV listing, and no public proof-of-concept exploit were provided, consistent with a batch of GitHub-advisory-sourced OpenImageIO memory-safety bugs. The 'Information Disclosure' tag CONFLICTS with the vendor vector (C:N) and overstates impact - this is a denial-of-service only. Realistic priority: patch during normal maintenance; it matters most for automated batch/render pipelines that ingest untrusted images, where a crash disrupts a job but does not compromise data. |
| Exploit ScenarioDerived | An attacker submits a crafted, truncated TGA file to an automated pipeline (e.g., a render farm, asset-ingest service, or thumbnailer) that uses OpenImageIO to transcode it to GIF. The truncation leaves a pending GIF frame that is flushed at output-close, where a large image size overflows the signed 32-bit numPixels × partition-width product in GifSplitPalette(), corrupting subPixelsA and forcing an out-of-bounds read that crashes the process. No public exploit code was identified at time of analysis; exploitation is local and requires the victim to process the file. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 18, 2026
Denial of service in OpenImageIO versions prior to 3.0.21.0, 3.1.16.0, and 3.2.0.3-beta1 occurs when the library processes a truncated TGA file while writing GIF output, triggering a signed 32-bit integer overflow in GifSplitPalette() that leads to an out-of-bounds read (CWE-125) and a process crash. The CVSS v3.1 vector (AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H) indicates the attacker is unauthenticated (PR:N) but requires local access and user interaction, with no remote or unauthenticated network trigger. No public exploit code or active exploitation has been identified; this is a low-priority hardening issue for workflows that transcode untrusted images to GIF.
RemediationAI
Vendor-released patch: upgrade to OpenImageIO 3.0.21.0, 3.1.16.0, or 3.2.0.3-beta1. Apply the fix by updating to these versions or later; the patches correct the signed integer overflow by using 64-bit arithmetic in GifSplitPalette(), GifMakePalette(), GifBegin(), and gifinput.cpp. If immediate upgrade is not possible, as a compensating control, avoid processing untrusted or truncated TGA files when writing GIF output, or enforce image dimension limits (e.g., width and height) to prevent the integer overflow condition. Because exploitation requires local access and user interaction, restrict the ability to invoke OpenImageIO on attacker-controlled files, and run image conversion jobs in a sandboxed, low-privilege process. Note that disabling TGA-to-GIF conversion or imposing strict input validation may break legitimate workflows that rely on those formats. Refer to the vendor advisory https://github.com/AcademySoftwareFoundation/OpenImageIO/security/advisories/GHSA-9mwc-fjgj-8wmq and PR https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/5292 for details.
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 an image I/O library used in VFX and animation. The vulnerability is an out-of-bounds read (CWE-125) caused by a signed 32-bit integer overflow in the GifSplitPalette() function of src/gif.imageio/gif.h. When a truncated TGA input leaves a pending GIF frame that is processed during GIFOutput close, the function computes subPixelsA = numPixels * (splitElt - firstElt) / (lastElt - firstElt) using 32-bit signed arithmetic; for large image dimensions this product overflows, corrupting subPixelsA and causing an OOB read while building the GIF palette. The same PR (5292) also fixes related multiplication overflows in GifMakePalette() (imageSize), GifBegin() (oldImage allocation), and in gifinput.cpp (read_native_scanline and read_subimage_data) by casting to 64-bit integers. The CPE string cpe:2.3:a:academysoftwarefoundation:openimageio:*:*:*:*:*:*:*:* confirms all versions of OpenImageIO are potentially affected up to the fixed releases.
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:N/I:N/A:H
Local file-processing vector (AV:L) needing a victim to convert a crafted TGA to GIF (UI:R); out-of-bounds read causes only a crash, so C:N/I:N and A:H.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.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 truncated tga can leave a pending gif frame that is processed during output close. gifsplitpalette() computes numpixels multiplied by the palette partition width in signed 32-bit arithmetic; a large image overflows that intermediate, corrupts subpixelsa, and drives an out-of-bounds read while building the gif palette, resulting in a process crash and denial of service. The affected implementation is identified by src/gif.imageio/gif.h, GifSplitPalette(), numPixels, subPixelsA, GIFOutput, and truncated TGA input, 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.
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.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
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-125 – Out-of-bounds Read
View allSame technique Buffer Overflow
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| openSUSE Tumbleweed | Fixed |
EUVD-2026-83137
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB