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 valid tiled openexr image whose width is not a multiple of its tile width can trigger an overflow when a caller reads a partial edge-tile rectangle. openexrinput::read_native_tiles() copies each row into the caller buffer using the padded whole-tile scanline_stride rather than user_scanline_bytes for the requested rectangle, resulting in a heap out-of-bounds write and memory corruption. The affected implementation is identified by src/openexr.imageio/exrinput.cpp, OpenEXRInput::read_native_tiles(), partial edge tile, user_scanline_bytes, and scanline_stride, 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.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-122",
"CWE-787"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63422.json"
}{
"extracted_events": [
{
"introduced": "0"
},
{
"fixed": "3.0.21.0"
},
{
"introduced": "3.1.0.0"
},
{
"fixed": "3.1.16.0"
},
{
"introduced": "3.2.0.0-dev"
},
{
"fixed": "3.2.0.3-beta1"
}
],
"source": [
"AFFECTED_FIELD",
"REFERENCES"
]
}
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-63422.json"
[
{
"deprecated": false,
"digest": {
"line_hashes": [
"133232003724485468290090903959090318437",
"222747968080299299434355063342479313599",
"158372479381117240520843187892703412345",
"243247956221019077015774251846906396943",
"110504452708489083103624742241479473745",
"227817022242930953246594696685940925901",
"326044160937027226729003636981221565580",
"224038983571716141530451446234408423976",
"209667680411716447041468787208718724331",
"207630839828168637881112421074669468520",
"201467151119365642602311232512865626886"
],
"threshold": 0.9
},
"id": "CVE-2026-63422-491b6486",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/academysoftwarefoundation/openimageio/commit/7303134f13b0f9dc738b8ecabecd8c9f90cbd4c9",
"target": {
"file": "src/openexr.imageio/exrinput.cpp"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"104441248536973670447074662811748171526",
"302229386835280977246943751796856271609",
"278185370599784017297843929355799293162",
"185588752027607930931611712930845060810",
"58970442581133133264191139167997824966",
"329777351182778313986834988718644224774",
"120935577528617507525292145694399459674",
"174054142883976842372179384184212135540",
"35702931908844780979290820130260179852"
],
"threshold": 0.9
},
"id": "CVE-2026-63422-84259256",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/academysoftwarefoundation/openimageio/commit/7303134f13b0f9dc738b8ecabecd8c9f90cbd4c9",
"target": {
"file": "src/openexr.imageio/exrinput_c.cpp"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "115712949698037202136704905477670655552",
"length": 2997
},
"id": "CVE-2026-63422-90221d0f",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/academysoftwarefoundation/openimageio/commit/7303134f13b0f9dc738b8ecabecd8c9f90cbd4c9",
"target": {
"file": "src/openexr.imageio/exrinput_c.cpp",
"function": "OpenEXRCoreInput::read_native_tiles"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "150876206998868077334647542288386627128",
"length": 3159
},
"id": "CVE-2026-63422-d0a1f93a",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/academysoftwarefoundation/openimageio/commit/7303134f13b0f9dc738b8ecabecd8c9f90cbd4c9",
"target": {
"file": "src/openexr.imageio/exrinput.cpp",
"function": "OpenEXRInput::read_native_tiles"
}
}
]
"2026-09-20T14:13:48Z"