OpenImageIO: SGI RLE decoder heap buffer overflow OIIO_DASSERT bounds checks are no-ops in release builds
Key facts
- Attack vector
- Local
- Privileges required
- None
- User interaction
- Active
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-787 and the CVSS impact.
Summary
OpenImageIO is a toolset for reading, writing, and manipulating image files of any image file format relevant to VFX / animation. Prior to 3.0.18.0 and 3.1.13.0, sgiinput.cpp:265,274 use OIIO_DASSERT for bounds checking in the RLE decode loop. In release builds, OIIO_DASSERT compiles to ((void)sizeof(x)) (dassert.h:210), making all bounds checks no-ops. A crafted .sgi file with RLE count exceeding scanline width causes heap buffer overflow and crash. This vulnerability is fixed in 3.0.18.0 and 3.1.13.0.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| AcademySoftwareFoundation | OpenImageIO | before 3.0.18.0; 3.1.4.0-beta to before 3.1.13.0 | 3.0.18.0, 3.1.13.0 | Patch available | CNA |
- OpenImageIO VendorAcademySoftwareFoundation Affected before 3.0.18.0; 3.1.4.0-beta to before 3.1.13.0 Fixed in 3.0.18.0, 3.1.13.0 Patch available CNA
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:openimageio:openimageio:*:*:*:*:*:*:*:* | before 3.0.18.0; 3.1.4.0 to before 3.1.13.0 | Vulnerable | OpenImageIO Project |
- cpe:2.3:a:openimageio:openimageio:*:*:*:*:*:*:*:* Versions before 3.0.18.0; 3.1.4.0 to before 3.1.13.0 Vulnerable ·OpenImageIO Project
Remediation
- Fix · CNA OpenImageIO (AcademySoftwareFoundation) Fixed in 3.0.18.0, 3.1.13.0
Vendor assessments
Timeline
- 2026-10-02 Threatist record created from CVE-2026-43903
References
More AcademySoftwareFoundation vulnerabilities
- TI-2026-30739 OpenColorIO vulnerable to stack buffer overflow via unbounded `sscanf %s` in Spi3D (.spi3d) LUT parser CVSS 4.0HIGH 8.4
- TI-2026-38605 OpenEXR: Unhandled assert abort in HTJ2K decoder via crafted QCD marker (DoS) CVSS 4.0HIGH 7.1
- TI-2026-48281 OpenEXR: Heap out-of-bounds write in exrmultiview with subsampled channel union CVSS 3.1HIGH 7.1
- TI-2026-48279 OpenEXR: Heap buffer overflow in PyOpenEXR from literal/prefixed RGB channel name collision CVSS 3.1HIGH 7.1
- TI-2026-42768 OpenEXR: Heap OOB read in SampleCountChannel row when using nonzero dataWindow CVSS 3.1HIGH 7.1
- TI-2026-42338 OpenEXR: Out-of-bounds read in DeepImageChannel::row() for non-zero dataWindow origin CVSS 3.1HIGH 7.1
Sources
- CVE-2026-43903 · CVE Program
- CVE-2026-43903 · NVD
- FIRST EPSS
- CVE-2026-43903 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences