Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft .cin with numberOfElements>8
-
DeliveryDeliver malicious image to victim pipeline
-
ExploitVictim app opens file via OpenImageIO
-
ExecutionCineonInput::open() overruns strings[8] stack array
-
PersistCorrupt adjacent stack memory
-
ImpactProcess crash / DoS
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Stack buffer bounds checking
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the victim (or an automated pipeline) to open or process a crafted Cineon .cin file whose header field numberOfElements exceeds the format maximum of 8, using an application linked against OpenImageIO prior to 3.0.20.0 / 3.1.15.0 / 3.2.0.3-beta1. This affects default configurations of the Cineon reader - no special feature toggle is needed - but exploitation is limited by the local attack vector (AV:L) and mandatory user interaction/file handling (UI:R): the attacker cannot trigger it remotely without inducing the target to ingest the malicious image. Practical impact is a crash of the processing application; broader consequences depend on how the corrupted stack pointers are subsequently used. |
| Impact | This is a genuine but non-urgent memory-corruption flaw in OpenImageIO's Cineon reader. The vendor CVSS 3.1 vector (AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H = 6.1) is internally consistent and I agree with it: exploitation is local and requires the victim to open or process an attacker-supplied .cin file (UI:R), with the dominant impact being a crash/DoS (A:H) and limited integrity impact (I:L) from the out-of-bounds pointer writes. No EPSS score, no CISA KEV listing, and no public exploit code were provided; the only 'proof' artifact is a regression test input (broken_bitdepth.cin) added alongside the fix, which is a defensive test file, not a weaponized exploit - so exploitation status is 'no public exploit identified at time of analysis.' There is no SSVC decision data in the input. Notably, the description states the bug writes attacker-influenced pointers 'beyond the stack buffer and into adjacent state,' which is a hallmark of a potentially more-than-DoS condition (possible control-flow corruption), yet the vendor conservatively scored confidentiality N and integrity only L; defenders processing untrusted images at scale should treat the I:L rating as a possible under-statement while accepting that the practical, reliable outcome is a crash. Overall: a real bug worth patching in image pipelines but not a drop-everything network-exploitable issue. |
| Exploit ScenarioDerived | An attacker crafts a malicious Cineon (.cin) image whose header sets numberOfElements to a value greater than 8 (the test uses 255) and delivers it to a victim who renders, converts, or thumbnails it with an application built on OpenImageIO. When CineonInput::open() loops on the unchecked count to fill the fixed strings[8] stack array, it writes pointers past the buffer into adjacent stack state, corrupting memory and crashing the process. No public exploit exists beyond the vendor's regression test file; exploitation requires local file processing and user/pipeline interaction (UI:R). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 18, 2026
Stack-based buffer overflow in OpenImageIO's Cineon image reader (CineonInput::open()) lets a crafted .cin file that declares more than the format's maximum of eight channels overwrite stack pointers and corrupt adjacent memory, crashing the application that processes it. Exploitation requires the victim or an automated pipeline to open the malicious file (CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H, 6.1), so it cannot be triggered remotely without inducing file ingestion; the assessed impact is denial of service with only low integrity risk and no confidentiality loss. No public exploit identified at time of analysis and the issue is not in CISA KEV; vendor fixes shipped in OpenImageIO 3.0.20.0, 3.1.15.0, and 3.2.0.3-beta1.
RemediationAI
Vendor-released patch: upgrade OpenImageIO to 3.0.20.0, 3.1.15.0, or 3.2.0.3-beta1 (or later) as described in advisory https://github.com/AcademySoftwareFoundation/OpenImageIO/security/advisories/GHSA-xh8r-vmqq-56pp; the fix is in PR https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/5250 / commit 908f22f5528e88e5e96184c194caa26b54b2b85f and adds header validation (channel count 1-8, bit depth 1-32). If immediate upgrading is not possible, compensating controls are: avoid opening or batch-processing untrusted Cineon .cin files with OpenImageIO-based tools (trade-off: blocks legitimate third-party image ingestion workflows), route all .cin decoding through an isolated, low-privilege sandboxed or containerized process with resource limits so a crash does not affect the host pipeline (trade-off: added operational complexity and reduced throughput), and pre-validate the Cineon header's NumberOfElements field with an independent parser before handing files to OpenImageIO (trade-off: requires custom tooling and must be kept in sync with format changes). Note that these are mitigations only; because the bug is in the library's decoder loop, patching is the only complete fix.
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
Cineon (.cin) is a Kodak-developed 10-bit digital film image format widely used in VFX and DI pipelines; its header carries per-channel metadata including NumberOfElements (the channel count) and a BitDepth value for each channel. In OpenImageIO's reader src/cineon.imageio/cineoninput.cpp, CineonInput::open() read NumberOfElements and used it directly as the loop bound while populating a fixed-size strings[8] stack array, so a header value above eight wrote pointers past the end of that buffer into adjacent stack state - a classic CWE-121 stack-based buffer overflow. The upstream fix in PR 5250 (commit 908f22f5528e88e5e96184c194caa26b54b2b85f) introduces a bound check requiring nchannels to be between 1 and 8 (errorfmt "Invalid number of channels {} (must be 1-8)"), validates each channel's BitDepth to 1-32 bits, and passes explicit size limits to check_open (width/height up to 1<<20, 1-8 channels); the test suite adds testsuite/cineon/src/broken_bitdepth.cin as a regression case. The affected CPE is cpe:2.3:a:academysoftwarefoundation:openimageio:*:*:*:*:*:*:*:* - all releases before the patched versions.
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:L/A:H
Local crafted-file trigger with required interaction (AV:L/UI:R), no auth (PR:N); out-of-bounds pointer writes give limited integrity impact (I:L) and reliable crash (A:H), no confidentiality (C:N).
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.20.0, 3.1.15.0, and 3.2.0.3-beta1, A crafted cineon file can supply a numberofelements value greater than the format maximum of eight. cineoninput::open() uses that unchecked value as the loop bound while filling the fixed strings[8] array, writing pointers beyond the stack buffer and into adjacent state, resulting in memory corruption and denial of service. The affected implementation is identified by src/cineon.imageio/cineoninput.cpp, CineonInput::open(), numberOfElements, and strings[8], 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.
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.
A stack-based buffer overflow occurs when a program writes more data to a buffer located on the stack than it was allocated to hold.
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
EUVD-2026-83122
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB