{"id":"CVE-2026-63422","summary":"OpenImageIO OpenEXR plugin partial edge tile heap out-of-bounds write","details":"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.","aliases":["GHSA-xh5r-whph-qmc5"],"modified":"2026-09-20T14:13:48.656182Z","published":"2026-09-18T15:37:57.906Z","related":["openSUSE-SU-2026:11442-1"],"database_specific":{"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"},"references":[{"type":"WEB","url":"https://github.com/AcademySoftwareFoundation/OpenImageIO/releases/tag/v3.0.21.0"},{"type":"WEB","url":"https://github.com/AcademySoftwareFoundation/OpenImageIO/releases/tag/v3.1.16.0"},{"type":"ADVISORY","url":"https://github.com/AcademySoftwareFoundation/OpenImageIO/security/advisories/GHSA-xh5r-whph-qmc5"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63422.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-63422"},{"type":"FIX","url":"https://github.com/AcademySoftwareFoundation/OpenImageIO/commit/7303134f13b0f9dc738b8ecabecd8c9f90cbd4c9"},{"type":"FIX","url":"https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/5295"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/academysoftwarefoundation/openimageio","events":[{"introduced":"0"},{"introduced":"a0940a9f1e4a8ff20edc9d550a4dea4723d1aa58"},{"fixed":"710eeafcf7cd75fbfd5e34387ee4c373aa875356"},{"fixed":"f3f12ab761fbccaa644937780e7246674033c407"},{"fixed":"45414c1aedcd3cc98244b4c5802ec53e91976f70"},{"fixed":"7303134f13b0f9dc738b8ecabecd8c9f90cbd4c9"}],"database_specific":{"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"]}}],"versions":["v3.1.15.0","v3.0.20.0","v3.0.19.1","v3.1.14.1","v3.1.14.0","v3.0.19.0","v3.0.18.1","v3.1.13.1","v3.2.0.2-dev","v3.1.13.0","v3.0.18.0","v3.1.12.0","v3.0.17.0","v3.1.11.0","v3.0.16.0","v3.2.0.0-dev","v3.1.10.0","v3.0.15.0","v3.0.14.0","v3.1.9.0","v3.0.13.0","v3.1.8.0","v3.0.12.0","v3.1.7.0","v3.0.11.0","v3.1.6.2","v3.1.6.1","v3.1.6.0-rc1","v3.1.5.0-beta2","v3.0.10.1","v3.0.10.0","v3.1.4.0-beta","v3.0.9.0","v3.0.8.1","v3.0.8.0","v3.0.7.0","v3.0.6.1","v3.0.6.0","v3.0.5.0","v3.0.4.0","v3.0.3.1","v3.0.3.0","v3.0.2.0","v3.0.1.0","v3.0.0.3","v3.0.0.2-RC1","v3.0.0.1-beta2","v3.0.0.0-beta1","v2.6.5.0-dev","v2.6.2.0-dev","v2.6.1.0-dev","v2.5.2.0-dev","v2.5.0.0-dev","v2.4.2.2-dev","v2.4.2.1-dev","v2.4.2.0-dev","v2.4.1.1-dev","v2.4.0.3-dev","v2.4.0.2-dev","v2.4.0.1-dev","v2.4.0.0-dev","v2.3.6.0-dev","v2.3.5.0-dev","Release-2.3.4.0-dev","Release-2.3.3.0-dev","Release-2.3.2.0-dev","Release-2.3.1.0-dev","Release-2.3.0.0-dev","Release-2.2.3.0-dev","Release-2.2.2.0-dev","Release-2.2.1.1-dev","Release-2.2.1.0-dev","Release-2.2.0.0-dev","Release-2.1.8.0-RC1","Release-2.1.7-beta","Release-2.1.5.0-dev","Release-2.1.4.0-dev","Release-2.1.3-dev","spi-spcomp2-release-49.1","spi-Arn3.7.42.0","Release-2.1.2-dev","Release-2.1.1-dev","Release-2.1.0-dev","spi-spcomp2-release-48.0","spi-Arn3.7.25.0","spi-spcomp2-release-47.0","spi-Arn3.7.23.3","Release-2.0.1-RC1","Release-2.0.0-beta1","spi-spcomp2-release-45.4","spi-spcomp2-release-45.3","spi-spcomp2-release-45.1","spi-spcomp2-release-45.0","Release-1.9.4dev","Release-1.9.3dev","Release-1.9.2dev","spiArn-3.6.86.0","spi-spcomp2-release-44.2","spiArn-3.6.94.0","spi-spcomp2-release-44.1","spi-spcomp2-release-44.0","spiArn-3.6.84.0","spiArn-3.6.74.0","spi-Arn3.6.72.1","Release-1.9.1dev","spi-Arn3.6.69.3","spi-spcomp2-release-43.0","spi-Arn3.6.64.6","Release-1.8.4dev","spi-spcomp2-release-42.0-rhel7","spi-Arn3.6.36.0","Release-1.8.3dev","Release-1.8.2dev","spi-Arn3.6.33.4","spi-Arn3.6.27.0","Release-1.8.1dev","spi-Arn3.6.21.3","spi-Arn3.6.18.0","Release-1.8.0dev","spi-spcomp2-release-41.0","Release-1.7.6RC1","spi-Arn3.6.7.1","Release-1.7.5beta","Release-1.7.4dev","Release-1.7.3dev","spi-Arn3.5.93.10","spi-Arn3.5.91.0","Release-1.7.2dev","spi-Arn3.5.90.0","spiArn3.5.82.0","Release-1.7.1dev","Release-1.7.0dev","spiArn3.5.75.0","spi-spcomp2-release-39.1","Release-1.6.6beta","spiArn3.5.68.0","spi-spcomp2-release-38.0","spiArn3.5.66.0","spi-Arn3.5.82.0","spi-Arn3.5.75.0","spi-Arn3.5.68.0","spi-Arn3.5.66.0","spi-Arn3.4.72.0","spi-Arn3.4.71.0","Release-1.6.4dev","spiArn3.5.50.0","spi-Arn3.5.50.0","Release-1.6.3dev","spiArn3.5.48.0","spi-Arn3.5.48.0","spiArn3.5.45.1","spiArn3.5.45.0","spi-Arn3.5.45.1","spi-Arn3.5.45.0","spi-Arn3.5.41.0","Release-1.6.2dev","spi-Arn3.5.37.0","spi-Arn3.5.35.0","Release-1.6.1dev","spi-Arn3.5.31.0","spi-Arn3.5.28.0","spi-Arn3.5.26.0","spi-Arn3.5.25.0","Release-1.5.7dev","spi-Arn3.5.24.0","Release-1.5.6dev","Release-1.5.5dev","spi-Arn3.5.16.0","spi-Arn3.5.14.0","Release-1.5.4dev-pre-SIMD","spi-Arn3.5.13.1","Release-1.5.3dev","spi-Arn3.5.12.0","Release-1.5.2dev","spi-Arn3.5.11.0","spi-Arn3.5.10.0","Release-1.5.1dev","spi-Arn3.5.8.0","Release-1.5.0dev","spi-Arn3.5.5.0","Release-1.4.6RC1","spi-Arn3.5.2.0","Release-1.4.5dev","spi-Arn3.5.0.0","spi-Arn3.4.73.7","Release-1.4.4dev","Release-1.4.3dev","spi-v8-Arn3.4.73.6","spi-Arn3.4.73.6","Release-1.4.2dev","spi-v7-Arn3.4.73.3","Release-1.4.1dev","Release-1.3.6-dev","Arnold-3.4.72.0","arnold-3.4.71.0","Release-1.3.5-dev","Release-1.3.5","Release-1.3.4-dev","Release-1.3.3-dev","Release-1.3.2-dev","Release-1.3.1-dev","Release-1.3.0-dev","Release-1.1.1","Release-1.1.0","Release-1.1.0-beta4","Release-1.1.0-beta3","Release-1.1.0-beta2","Release-1.1.0-beta1","Release-1.0.1","Release-1.0.0","Release-0.10.0","spi-SpComp2-v20","spi-SpComp2-v9"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-63422.json","vanir_signatures_modified":"2026-09-20T14:13:48Z","vanir_signatures":[{"signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openimageio/commit/7303134f13b0f9dc738b8ecabecd8c9f90cbd4c9","target":{"file":"src/openexr.imageio/exrinput.cpp"},"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"},{"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"}},{"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":{"function":"OpenEXRCoreInput::read_native_tiles","file":"src/openexr.imageio/exrinput_c.cpp"},"deprecated":false},{"signature_type":"Function","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openimageio/commit/7303134f13b0f9dc738b8ecabecd8c9f90cbd4c9","target":{"function":"OpenEXRInput::read_native_tiles","file":"src/openexr.imageio/exrinput.cpp"},"deprecated":false,"digest":{"function_hash":"150876206998868077334647542288386627128","length":3159},"id":"CVE-2026-63422-d0a1f93a"}]}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"}]}