Every CVE Search/ Get API key

CVE-2026-43907

OpenImageIO: Integer overflow in QueryRGBBufferSizeInternal leads to heap out-of-bounds write in DPX decoder (kCbYCr and kABGR)

8.3 HighFix available

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, a signed integer overflow in QueryRGBBufferSizeInternal() in DPXColorConverter.cpp leads to a heap-based out-of-bounds write when processing crafted DPX image files. The function computes buffer sizes using 32-bit signed integer arithmetic with negative multipliers (e.g., pixels * -3 * bytes for kCbYCr descriptors and pixels * -4 * bytes for kABGR descriptors), where a negative result is used as an in-band signal that no separate buffer is needed. When the pixel count is sufficiently large, the multiplication overflows INT_MIN and wraps to a small positive value. The caller in dpxinput.cpp interprets this positive value as a required buffer size, allocates an undersized heap buffer via m_decodebuf.resize(), and then writes the full image data into it via fread, resulting in a heap buffer overflow. An attacker can exploit this by crafting a DPX file that triggers the overflow, causing a denial of service (crash) or potentially arbitrary code execution through heap corruption in any application that reads pixel data using OpenImageIO. This vulnerability is fixed in 3.0.18.0 and 3.1.13.0.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
Required

What an attacker can affect

Confidentiality
Low
Integrity
High
Availability
High

Exploit likelihood

0.37%Up 0.3 points since May 15, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.3

OpenImageIO: Integer overflow in QueryRGBBufferSizeInternal leads to heap out-of-bounds write in DPX decoder (kCbYCr and kABGR)

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, a signed integer overflow in QueryRGBBufferSizeInternal() in DPXColorConverter.cpp leads to a heap-based out-of-bounds write when processing crafted DPX image files. The function computes buffer sizes using 32-bit signed integer arithmetic with negative multipliers (e.g., pixels * -3 * bytes for kCbYCr descriptors and pixels * -4 * bytes for kABGR descriptors), where a negative result is used as an in-band signal that no separate buffer is needed. When the pixel count is sufficiently large, the multiplication overflows INT_MIN and wraps to a small positive value. The caller in dpxinput.cpp interprets this positive value as a required buffer size, allocates an undersized heap buffer via m_decodebuf.resize(), and then writes the full image data into it via fread, resulting in a heap buffer overflow. An attacker can exploit this by crafting a DPX file that triggers the overflow, causing a denial of service (crash) or potentially arbitrary code execution through heap corruption in any application that reads pixel data using OpenImageIO. This vulnerability is fixed in 3.0.18.0 and 3.1.13.0.

Record
CVE-2026-43907
CVSS 3.1
8.3 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:H
Weakness
CWE-190, CWE-787
Updated
2026-11-02
EUVDEUVD-2026-30410 8.3

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, a signed integer overflow in QueryRGBBufferSizeInternal() in DPXColorConverter.cpp leads to a heap-based out-of-bounds write when processing crafted DPX image files. The function computes buffer sizes using 32-bit signed integer arithmetic with negative multipliers (e.g., pixels * -3 * bytes for kCbYCr descriptors and pixels * -4 * bytes for kABGR descriptors), where a negative result is used as an in-band signal that no separate buffer is needed. When the pixel count is sufficiently large, the multiplication overflows INT_MIN and wraps to a small positive value. The caller in dpxinput.cpp interprets this positive value as a required buffer size, allocates an undersized heap buffer via m_decodebuf.resize(), and then writes the full image data into it via fread, resulting in a heap buffer overflow. An attacker can exploit this by crafting a DPX file that triggers the overflow, causing a denial of service (crash) or potentially arbitrary code execution through heap corruption in any application that reads pixel data using OpenImageIO. This vulnerability is fixed in 3.0.18.0 and 3.1.13.0.

Record
EUVD-2026-30410
CVSS 3.1
8.3 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:H
Updated
2026-11-02
NVD 8.3

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, a signed integer overflow in QueryRGBBufferSizeInternal() in DPXColorConverter.cpp leads to a heap-based out-of-bounds write when processing crafted DPX image files. The function computes buffer sizes using 32-bit signed integer arithmetic with negative multipliers (e.g., pixels * -3 * bytes for kCbYCr descriptors and pixels * -4 * bytes for kABGR descriptors), where a negative result is used as an in-band signal that no separate buffer is needed. When the pixel count is sufficiently large, the multiplication overflows INT_MIN and wraps to a small positive value. The caller in dpxinput.cpp interprets this positive value as a required buffer size, allocates an undersized heap buffer via m_decodebuf.resize(), and then writes the full image data into it via fread, resulting in a heap buffer overflow. An attacker can exploit this by crafting a DPX file that triggers the overflow, causing a denial of service (crash) or potentially arbitrary code execution through heap corruption in any application that reads pixel data using OpenImageIO. This vulnerability is fixed in 3.0.18.0 and 3.1.13.0.

Record
CVE-2026-43907
CVSS 3.1
8.3 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:H
Weakness
CWE-190, CWE-787
Updated
2026-11-02
OSV 8.3

OpenImageIO: Integer overflow in QueryRGBBufferSizeInternal leads to heap out-of-bounds write in DPX decoder (kCbYCr and kABGR)

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, a signed integer overflow in QueryRGBBufferSizeInternal() in DPXColorConverter.cpp leads to a heap-based out-of-bounds write when processing crafted DPX image files. The function computes buffer sizes using 32-bit signed integer arithmetic with negative multipliers (e.g., pixels * -3 * bytes for kCbYCr descriptors and pixels * -4 * bytes for kABGR descriptors), where a negative result is used as an in-band signal that no separate buffer is needed. When the pixel count is sufficiently large, the multiplication overflows INT_MIN and wraps to a small positive value. The caller in dpxinput.cpp interprets this positive value as a required buffer size, allocates an undersized heap buffer via m_decodebuf.resize(), and then writes the full image data into it via fread, resulting in a heap buffer overflow. An attacker can exploit this by crafting a DPX file that triggers the overflow, causing a denial of service (crash) or potentially arbitrary code execution through heap corruption in any application that reads pixel data using OpenImageIO. This vulnerability is fixed in 3.0.18.0 and 3.1.13.0.

Record
CVE-2026-43907
CVSS 3.1
8.3 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:H
Weakness
CWE-190, CWE-787
Updated
2026-11-02
OSVDEBIAN-CVE-2026-43907 8.3

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, a signed integer overflow in QueryRGBBufferSizeInternal() in DPXColorConverter.cpp leads to a heap-based out-of-bounds write when processing crafted DPX image files. The function computes buffer sizes using 32-bit signed integer arithmetic with negative multipliers (e.g., pixels * -3 * bytes for kCbYCr descriptors and pixels * -4 * bytes for kABGR descriptors), where a negative result is used as an in-band signal that no separate buffer is needed. When the pixel count is sufficiently large, the multiplication overflows INT_MIN and wraps to a small positive value. The caller in dpxinput.cpp interprets this positive value as a required buffer size, allocates an undersized heap buffer via m_decodebuf.resize(), and then writes the full image data into it via fread, resulting in a heap buffer overflow. An attacker can exploit this by crafting a DPX file that triggers the overflow, causing a denial of service (crash) or potentially arbitrary code execution through heap corruption in any application that reads pixel data using OpenImageIO. This vulnerability is fixed in 3.0.18.0 and 3.1.13.0.

Record
DEBIAN-CVE-2026-43907
CVSS 3.1
8.3 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2026-43907 8.3

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, a signed integer overflow in QueryRGBBufferSizeInternal() in DPXColorConverter.cpp leads to a heap-based out-of-bounds write when processing crafted DPX image files. The function computes buffer sizes using 32-bit signed integer arithmetic with negative multipliers (e.g., pixels * -3 * bytes for kCbYCr descriptors and pixels * -4 * bytes for kABGR descriptors), where a negative result is used as an in-band signal that no separate buffer is needed. When the pixel count is sufficiently large, the multiplication overflows INT_MIN and wraps to a small positive value. The caller in dpxinput.cpp interprets this positive value as a required buffer size, allocates an undersized heap buffer via m_decodebuf.resize(), and then writes the full image data into it via fread, resulting in a heap buffer overflow. An attacker can exploit this by crafting a DPX file that triggers the overflow, causing a denial of service (crash) or potentially arbitrary code execution through heap corruption in any application that reads pixel data using OpenImageIO. This vulnerability is fixed in 3.0.18.0 and 3.1.13.0.

Record
UBUNTU-CVE-2026-43907
CVSS 3.1
8.3 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:H
Updated
2026-11-02
OSVUSN-8438-1 No score

openimageio vulnerabilities

It was discovered that OpenImageIO incorrectly performed bounds checking when processing SGI files. An attacker could possibly use this issue to cause a denial of service or execute arbitrary code. (CVE-2026-43903)

It was discovered that OpenImageIO incorrectly handled run-length encoding when processing Softimage PIC files. An attacker could possibly use this issue to cause a denial of service or execute arbitrary code. (CVE-2026-43904)

It was discovered that OpenImageIO incorrectly validated subimage metadata when processing HEIF files. An attacker could possibly use this issue to cause a denial of service or execute arbitrary code. This issue only affected Ubuntu 20.04 LTS, Ubuntu 24.04 LTS and Ubuntu 26.04 LTS. (CVE-2026-43906)

It was discovered that OpenImageIO contained multiple integer overflow vulnerabilities when processing DPX files. An attacker could possibly use these issues to cause a denial of service or execute arbitrary code. (CVE-2026-43907, CVE-2026-43908, CVE-2026-43909)

Record
USN-8438-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
openimageio
Debian:12
All versions, plus listed versions
2.4.12.0+dfsg-12.4.13.0+dfsg-12.4.14.0+dfsg-12.4.16.0+dfsg-12.4.17.0+dfsg-1
Show 17 moreShow less
2.4.17.0+dfsg-1.12.4.7.1+dfsg-22.4.9.0+dfsg-12.5.10.1+dfsg-12.5.12.0+dfsg-12.5.12.0+dfsg-22.5.14.0+dfsg-12.5.15.0+dfsg-12.5.16.0+dfsg-12.5.18.0+dfsg-12.5.19.1+dfsg-12.5.19.1+dfsg-22.5.7.0+dfsg-13.1.18.0+dfsg-13.1.18.0+dfsg-23.1.18.1+dfsg-13.1.18.1+dfsg-2
None known
openimageio
Debian:13
All versions, plus listed versions
2.5.18.0+dfsg-12.5.19.1+dfsg-12.5.19.1+dfsg-23.1.18.0+dfsg-13.1.18.0+dfsg-23.1.18.1+dfsg-13.1.18.1+dfsg-2
None known
openimageio
Debian:14
before 3.1.18.0+dfsg-2, plus listed versions
2.5.18.0+dfsg-12.5.19.1+dfsg-12.5.19.1+dfsg-23.1.18.0+dfsg-1
3.1.18.0+dfsg-2
openimageio
Ubuntu:Pro:16.04:LTS
before 1.6.11~dfsg0-1ubuntu1+esm2, plus listed versions
1.5.17~dfsg0-1ubuntu21.5.20~dfsg0-1ubuntu21.5.23~dfsg0-1ubuntu11.6.9~dfsg0-4ubuntu11.6.10~dfsg0-1ubuntu11.6.10~dfsg0-2ubuntu11.6.11~dfsg0-1ubuntu1
1.6.11~dfsg0-1ubuntu1+esm2
openimageio
Ubuntu:Pro:18.04:LTS
before 1.7.17~dfsg0-1ubuntu2+esm1, plus listed versions
1.6.17~dfsg0-1ubuntu51.7.17~dfsg0-1ubuntu2
1.7.17~dfsg0-1ubuntu2+esm1
openimageio
Ubuntu:Pro:20.04:LTS
before 2.1.12.0~dfsg0-1ubuntu0.1~esm1, plus listed versions
2.0.10~dfsg0-12.0.11~dfsg0-12.0.12~dfsg0-12.0.12~dfsg0-1build12.0.12~dfsg0-1build22.1.10.1~dfsg0-5ubuntu42.1.10.1~dfsg0-5ubuntu52.1.12.0~dfsg0-1
2.1.12.0~dfsg0-1ubuntu0.1~esm1
openimageio
Ubuntu:22.04:LTS
All versions, plus listed versions
2.2.10.1+dfsg-1build12.2.18.0+dfsg-12.2.18.0+dfsg-1build22.2.18.0+dfsg-1ubuntu2
None known
openimageio
Ubuntu:Pro:24.04:LTS
before 2.4.17.0+dfsg-1.1ubuntu0.1~esm1, plus listed versions
2.4.14.0+dfsg-12.4.16.0+dfsg-12.4.16.0+dfsg-1build12.4.17.0+dfsg-12.4.17.0+dfsg-1build12.4.17.0+dfsg-1.1build32.4.17.0+dfsg-1.1build4
2.4.17.0+dfsg-1.1ubuntu0.1~esm1
openimageio
Ubuntu:25.10
All versions, plus listed versions
2.5.18.0+dfsg-1build12.5.18.0+dfsg-1build2
None known
openimageio
Ubuntu:26.10
All versions, plus listed versions
2.5.19.1+dfsg-22.5.19.1+dfsg-2build12.5.19.1+dfsg-2build2
None known
openimageio
Ubuntu:Pro:26.04:LTS
before 2.5.19.1+dfsg-2ubuntu0.1~esm1, plus listed versions
2.5.18.0+dfsg-1build22.5.19.1+dfsg-1build12.5.19.1+dfsg-1build32.5.19.1+dfsg-1build52.5.19.1+dfsg-2
2.5.19.1+dfsg-2ubuntu0.1~esm1

History

History
RecordedChangedSources
first indexedCVE List, EUVD, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-43907 is a high vulnerability (CVSS 8.3) in Academysoftwarefoundation Openimageio, published May 14, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.37%, the 30th percentile. Fixed in openimageio 3.1.18.0+dfsg-2.

References

Show 6 moreShow less
MoveEnter Open