{"id":"CVE-2026-59981","summary":"OpenEXR: Heap OOB read in SampleCountChannel row when using nonzero dataWindow","details":"OpenEXR is the reference implementation and specification for the EXR image file format, widely used in the motion picture industry. In versions through 3.2.10, 3.3.0 through 3.3.12, and 3.4.0 through 3.4.13, the OpenEXRUtil library returns an out-of-bounds pointer from the SampleCountChannel::row() API when a deep image has a non-zero dataWindow origin. The row() accessor is documented as 0-based and computes its address from an internal base that is offset for absolute pixel coordinates, so the two coordinate models conflict whenever dataWindow.min is non-zero. For a deep image whose data window has a large negative vertical origin, row(0) points far outside the allocated sample-count buffer. An application that opens an attacker-controlled deep EXR file and accesses sample counts through row() performs an out-of-bounds read, which can crash the process or, under a controlled heap layout, return adjacent heap memory as sample-count values. This issue is fixed in versions 3.2.11, 3.3.13, and 3.4.14.","aliases":["GHSA-m799-ffc3-8pxc"],"modified":"2026-10-28T11:18:15.979779416Z","published":"2026-08-25T19:58:37.163Z","related":["ALSA-2026:82345","ALSA-2026:84796","ALSA-2026:86983","SUSE-SU-2026:23604-1","SUSE-SU-2026:4003-1","openSUSE-SU-2026:11612-1","openSUSE-SU-2026:12184-1","openSUSE-SU-2026:21737-1"],"database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-125"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/59xxx/CVE-2026-59981.json"},"references":[{"type":"ADVISORY","url":"https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-m799-ffc3-8pxc"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/59xxx/CVE-2026-59981.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-59981"},{"type":"FIX","url":"https://github.com/AcademySoftwareFoundation/openexr/commit/37f03b6ed90f3dd9910f31de3a40f25f2bc2aca1"},{"type":"FIX","url":"https://github.com/AcademySoftwareFoundation/openexr/commit/55b7958ecb5ac32c427ff39c1e063f6f7bbee77c"},{"type":"FIX","url":"https://github.com/AcademySoftwareFoundation/openexr/commit/aef02224ba282a802de65d16c49c1cdb82089dec"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/academysoftwarefoundation/openexr","events":[{"introduced":"0"},{"fixed":"ba4b1af3a096e8f69e1836b210976585189a5fca"},{"introduced":"c7d3eac70ccde2c4ed484c6638b83ba872f71464"},{"fixed":"ca50a6bb1f64c4d53362e4b67aec33e67cb7d425"},{"introduced":"20a65852895894434bea88613f6d29ac8e88bd6e"},{"fixed":"777d231a179de1711d2a942810d9559216ab3f4c"},{"fixed":"37f03b6ed90f3dd9910f31de3a40f25f2bc2aca1"},{"fixed":"55b7958ecb5ac32c427ff39c1e063f6f7bbee77c"},{"fixed":"aef02224ba282a802de65d16c49c1cdb82089dec"}],"database_specific":{"extracted_events":[{"source":"AFFECTED_FIELD","strategy":"StringRangeExpression","range":[{"introduced":"0"},{"fixed":"3.2.11"}]},{"strategy":"StringRangeExpression","range":[{"introduced":"3.3.0"},{"fixed":"3.3.13"}],"source":"AFFECTED_FIELD"},{"range":[{"introduced":"3.4.0"},{"fixed":"3.4.14"}],"source":"AFFECTED_FIELD","strategy":"StringRangeExpression"},{"source":"REFERENCES_COMMIT","range":[{"fixed":"37f03b6ed90f3dd9910f31de3a40f25f2bc2aca1"}]},{"source":"REFERENCES_COMMIT","range":[{"fixed":"55b7958ecb5ac32c427ff39c1e063f6f7bbee77c"}]},{"range":[{"fixed":"aef02224ba282a802de65d16c49c1cdb82089dec"}],"source":"REFERENCES_COMMIT"}]}}],"versions":["v3.4.13-rc3","v3.4.13","v3.3.12-rc","v3.3.12","v3.2.10-rc","v3.2.10","v3.2.9-rc","v3.2.9","v3.3.11-rc3","v3.3.11","v3.4.13-rc2","v3.4.13-rc","v3.4.12","v3.4.12-rc2","v3.4.11-rc3","v3.4.11","v3.4.11-rc2","v3.4.11-rc","v3.4.10-rc","v3.4.10","v3.3.10-rc2","v3.3.10","v3.2.8-rc","v3.2.8","v3.3.10-rc","v3.2.7-rc","v3.2.7","v3.3.9-rc2","v3.3.9","v3.4.9","v3.3.9-rc","v3.2.6-rc","v3.2.6","v3.3.8-rc","v3.3.8","v3.4.9-rc","v3.4.8-rc","v3.4.8","v3.4.7","v3.4.7-rc","v3.4.6","v3.4.6-rc","v3.2.5-rc","v3.2.5","v3.3.7-rc4","v3.3.7","v3.4.5","v3.4.5-rc","v3.3.7-rc3","v3.3.7-rc2","v3.3.7-rc","v3.3.6","v3.4.4-rc2","v3.4.4","v3.4.4-rc","v3.4.3-rc3","v3.4.3","v3.3.6-rc4","v3.3.6-rc3","v3.4.3-rc2","v3.2.4-rc2","v3.2.4","v3.3.6-rc2","v3.4.3-rc","v3.3.6-rc","v3.3.5","v3.4.2-rc2","v3.4.2","v3.4.2-rc","v3.4.1-rc2","v3.4.1","v3.4.1-rc","v3.4.0","v3.3.5-rc3","v3.3.5-rc","v3.3.4-rc","v3.3.4","v3.3.3-rc1","v3.3.3","v3.3.3-rc","v3.3.2-rc4","v3.3.2","v3.3.2-rc3","v3.3.2-rc2","v3.3.2-rc","v3.3.1-rc","v3.3.1","v3.3.0-rc2","v3.3.0","v3.2.4-rc","v3.2.3-rc2","v3.2.3","v3.2.3-rc","v3.2.2","v3.2.2-rc2","v3.2.2-rc","v3.2.1-rc","v3.2.1","v3.2.0-rc4","v3.2.0","v3.2.0-rc3","v3.2.0-rc2","v3.2.0-rc","v3.0.0-beta","v2.5.0","v2.4.0","v2.4.0-beta.1","v2.3.0","v2.1.0","v2.0.1","v2.0.0.GM","v2.0.0","v1.7.1","OPENEXR_1_0_4"],"database_specific":{"vanir_signatures":[{"source":"https://github.com/academysoftwarefoundation/openexr/commit/37f03b6ed90f3dd9910f31de3a40f25f2bc2aca1","target":{"file":"src/lib/OpenEXRUtil/ImfFlatImageChannel.h","function":"row"},"deprecated":false,"digest":{"function_hash":"158796205751142772897768494416029777845","length":72},"id":"CVE-2026-59981-029f7024","signature_type":"Function","signature_version":"v1"},{"deprecated":false,"digest":{"line_hashes":["33088020735471794752811703951061431685","295620870024032927240760181809029871864","18812187228488125594640742038424998789","161132528775893895852039169535639786485","13857654978500129048888096659620392393","120073767694878138826856607156011155405","260664129758642251505016801450453866427","331184302860071834278978743063489719015","285166751721855665171686788274856720506","68168968677568436872626054001993677402"],"threshold":0.9},"id":"CVE-2026-59981-1a27d03d","signature_type":"Line","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/37f03b6ed90f3dd9910f31de3a40f25f2bc2aca1","target":{"file":"src/lib/OpenEXRUtil/ImfDeepImageChannel.h"}},{"digest":{"line_hashes":["39369499439165929212425823308619691159","266760019383743716150584509388851496900","42653368493869997497314442718458143516","103671658102312103092147353335086631542","107073319122823109909174352669628305239","232275175117863456315395640753074673444","240512483478303665726891746749257419994"],"threshold":0.9},"id":"CVE-2026-59981-243fa8bb","signature_type":"Line","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/55b7958ecb5ac32c427ff39c1e063f6f7bbee77c","target":{"file":"src/test/OpenEXRUtilTest/testDeepImage.cpp"},"deprecated":false},{"deprecated":false,"digest":{"length":66,"function_hash":"110585950910128101596843041345344169165"},"id":"CVE-2026-59981-2948d9bf","signature_type":"Function","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/37f03b6ed90f3dd9910f31de3a40f25f2bc2aca1","target":{"file":"src/lib/OpenEXRUtil/ImfFlatImageChannel.h","function":"row"}},{"signature_type":"Function","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/aef02224ba282a802de65d16c49c1cdb82089dec","target":{"file":"src/lib/OpenEXRUtil/ImfDeepImageChannel.h","function":"row"},"deprecated":false,"digest":{"length":66,"function_hash":"110585950910128101596843041345344169165"},"id":"CVE-2026-59981-2a79c749"},{"digest":{"line_hashes":["33088020735471794752811703951061431685","295620870024032927240760181809029871864","18812187228488125594640742038424998789","161132528775893895852039169535639786485","13857654978500129048888096659620392393","120073767694878138826856607156011155405","260664129758642251505016801450453866427","331184302860071834278978743063489719015","285166751721855665171686788274856720506","68168968677568436872626054001993677402"],"threshold":0.9},"id":"CVE-2026-59981-2b130667","signature_type":"Line","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/aef02224ba282a802de65d16c49c1cdb82089dec","target":{"file":"src/lib/OpenEXRUtil/ImfDeepImageChannel.h"},"deprecated":false},{"deprecated":false,"digest":{"function_hash":"158796205751142772897768494416029777845","length":72},"id":"CVE-2026-59981-33f1523a","signature_type":"Function","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/37f03b6ed90f3dd9910f31de3a40f25f2bc2aca1","target":{"file":"src/lib/OpenEXRUtil/ImfDeepImageChannel.h","function":"row"}},{"target":{"file":"src/lib/OpenEXRUtil/ImfSampleCountChannel.h"},"deprecated":false,"digest":{"line_hashes":["254502877786632950204708836805398063097","114228806546493661120860686230784564472","226198338003979056262324399968515474804","301136904542702397400972023161823894536"],"threshold":0.9},"id":"CVE-2026-59981-358477e2","signature_type":"Line","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/aef02224ba282a802de65d16c49c1cdb82089dec"},{"target":{"file":"src/lib/OpenEXRUtil/ImfDeepImageChannel.h","function":"row"},"deprecated":false,"digest":{"function_hash":"158796205751142772897768494416029777845","length":72},"id":"CVE-2026-59981-439b3ef3","signature_type":"Function","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/aef02224ba282a802de65d16c49c1cdb82089dec"},{"id":"CVE-2026-59981-56d7b9d4","signature_type":"Line","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/55b7958ecb5ac32c427ff39c1e063f6f7bbee77c","target":{"file":"src/lib/OpenEXRUtil/ImfDeepImageChannel.h"},"deprecated":false,"digest":{"threshold":0.9,"line_hashes":["33088020735471794752811703951061431685","295620870024032927240760181809029871864","18812187228488125594640742038424998789","161132528775893895852039169535639786485","13857654978500129048888096659620392393","120073767694878138826856607156011155405","260664129758642251505016801450453866427","331184302860071834278978743063489719015","285166751721855665171686788274856720506","68168968677568436872626054001993677402"]}},{"target":{"file":"src/lib/OpenEXRUtil/ImfSampleCountChannel.h"},"deprecated":false,"digest":{"threshold":0.9,"line_hashes":["254502877786632950204708836805398063097","114228806546493661120860686230784564472","226198338003979056262324399968515474804","301136904542702397400972023161823894536"]},"id":"CVE-2026-59981-5c388692","signature_type":"Line","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/55b7958ecb5ac32c427ff39c1e063f6f7bbee77c"},{"deprecated":false,"digest":{"threshold":0.9,"line_hashes":["69030260872799709258455909920858315950","79627724265277323862740959468206508283","18812187228488125594640742038424998789","242912398733734525914089318487284155868","176075231185443607266967389174586416626","178298400957258287113074708337116367137","24661120780328304642855224802032703976","277232867296595662039933500404193229201","247908825518859004264210074910806670668","125277615393647158451864593506443900735"]},"id":"CVE-2026-59981-6040ef06","signature_type":"Line","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/aef02224ba282a802de65d16c49c1cdb82089dec","target":{"file":"src/lib/OpenEXRUtil/ImfFlatImageChannel.h"}},{"deprecated":false,"digest":{"line_hashes":["69030260872799709258455909920858315950","79627724265277323862740959468206508283","18812187228488125594640742038424998789","242912398733734525914089318487284155868","176075231185443607266967389174586416626","178298400957258287113074708337116367137","24661120780328304642855224802032703976","277232867296595662039933500404193229201","247908825518859004264210074910806670668","125277615393647158451864593506443900735"],"threshold":0.9},"id":"CVE-2026-59981-61895ded","signature_type":"Line","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/37f03b6ed90f3dd9910f31de3a40f25f2bc2aca1","target":{"file":"src/lib/OpenEXRUtil/ImfFlatImageChannel.h"}},{"id":"CVE-2026-59981-6b483d18","signature_type":"Function","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/aef02224ba282a802de65d16c49c1cdb82089dec","target":{"file":"src/lib/OpenEXRUtil/ImfSampleCountChannel.h","function":"SampleCountChannel::row"},"deprecated":false,"digest":{"function_hash":"314156685687285098169350094337245807471","length":119}},{"deprecated":false,"digest":{"function_hash":"314156685687285098169350094337245807471","length":119},"id":"CVE-2026-59981-6d01d8e3","signature_type":"Function","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/55b7958ecb5ac32c427ff39c1e063f6f7bbee77c","target":{"file":"src/lib/OpenEXRUtil/ImfSampleCountChannel.h","function":"SampleCountChannel::row"}},{"deprecated":false,"digest":{"line_hashes":["69030260872799709258455909920858315950","79627724265277323862740959468206508283","18812187228488125594640742038424998789","242912398733734525914089318487284155868","176075231185443607266967389174586416626","178298400957258287113074708337116367137","24661120780328304642855224802032703976","277232867296595662039933500404193229201","247908825518859004264210074910806670668","125277615393647158451864593506443900735"],"threshold":0.9},"id":"CVE-2026-59981-7cf1858a","signature_type":"Line","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/55b7958ecb5ac32c427ff39c1e063f6f7bbee77c","target":{"file":"src/lib/OpenEXRUtil/ImfFlatImageChannel.h"}},{"target":{"file":"src/test/OpenEXRUtilTest/testDeepImage.cpp"},"deprecated":false,"digest":{"threshold":0.9,"line_hashes":["39369499439165929212425823308619691159","266760019383743716150584509388851496900","42653368493869997497314442718458143516","103671658102312103092147353335086631542","107073319122823109909174352669628305239","232275175117863456315395640753074673444","240512483478303665726891746749257419994"]},"id":"CVE-2026-59981-801b3656","signature_type":"Line","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/aef02224ba282a802de65d16c49c1cdb82089dec"},{"signature_type":"Function","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/55b7958ecb5ac32c427ff39c1e063f6f7bbee77c","target":{"file":"src/lib/OpenEXRUtil/ImfDeepImageChannel.h","function":"row"},"deprecated":false,"digest":{"length":66,"function_hash":"110585950910128101596843041345344169165"},"id":"CVE-2026-59981-81059b4b"},{"signature_type":"Function","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/aef02224ba282a802de65d16c49c1cdb82089dec","target":{"file":"src/lib/OpenEXRUtil/ImfFlatImageChannel.h","function":"row"},"deprecated":false,"digest":{"function_hash":"158796205751142772897768494416029777845","length":72},"id":"CVE-2026-59981-97e56df8"},{"deprecated":false,"digest":{"function_hash":"314156685687285098169350094337245807471","length":119},"id":"CVE-2026-59981-a2305b70","signature_type":"Function","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/37f03b6ed90f3dd9910f31de3a40f25f2bc2aca1","target":{"file":"src/lib/OpenEXRUtil/ImfSampleCountChannel.h","function":"SampleCountChannel::row"}},{"digest":{"function_hash":"158796205751142772897768494416029777845","length":72},"id":"CVE-2026-59981-aae2caac","signature_type":"Function","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/55b7958ecb5ac32c427ff39c1e063f6f7bbee77c","target":{"function":"row","file":"src/lib/OpenEXRUtil/ImfFlatImageChannel.h"},"deprecated":false},{"digest":{"function_hash":"110585950910128101596843041345344169165","length":66},"id":"CVE-2026-59981-bbf865bf","signature_type":"Function","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/37f03b6ed90f3dd9910f31de3a40f25f2bc2aca1","target":{"file":"src/lib/OpenEXRUtil/ImfDeepImageChannel.h","function":"row"},"deprecated":false},{"deprecated":false,"digest":{"function_hash":"110585950910128101596843041345344169165","length":66},"id":"CVE-2026-59981-cd43c617","signature_type":"Function","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/55b7958ecb5ac32c427ff39c1e063f6f7bbee77c","target":{"function":"row","file":"src/lib/OpenEXRUtil/ImfFlatImageChannel.h"}},{"digest":{"length":447,"function_hash":"161641068831394744715730264042097066174"},"id":"CVE-2026-59981-ce2ca0b7","signature_type":"Function","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/aef02224ba282a802de65d16c49c1cdb82089dec","target":{"function":"testDeepImage","file":"src/test/OpenEXRUtilTest/testDeepImage.cpp"},"deprecated":false},{"source":"https://github.com/academysoftwarefoundation/openexr/commit/55b7958ecb5ac32c427ff39c1e063f6f7bbee77c","target":{"file":"src/test/OpenEXRUtilTest/testDeepImage.cpp","function":"testDeepImage"},"deprecated":false,"digest":{"function_hash":"161641068831394744715730264042097066174","length":447},"id":"CVE-2026-59981-d1912d1a","signature_type":"Function","signature_version":"v1"},{"source":"https://github.com/academysoftwarefoundation/openexr/commit/37f03b6ed90f3dd9910f31de3a40f25f2bc2aca1","target":{"function":"testDeepImage","file":"src/test/OpenEXRUtilTest/testDeepImage.cpp"},"deprecated":false,"digest":{"function_hash":"161641068831394744715730264042097066174","length":447},"id":"CVE-2026-59981-d3ad8b7e","signature_type":"Function","signature_version":"v1"},{"signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/aef02224ba282a802de65d16c49c1cdb82089dec","target":{"function":"row","file":"src/lib/OpenEXRUtil/ImfFlatImageChannel.h"},"deprecated":false,"digest":{"function_hash":"110585950910128101596843041345344169165","length":66},"id":"CVE-2026-59981-d513f6a7","signature_type":"Function"},{"deprecated":false,"digest":{"line_hashes":["39369499439165929212425823308619691159","266760019383743716150584509388851496900","42653368493869997497314442718458143516","103671658102312103092147353335086631542","107073319122823109909174352669628305239","232275175117863456315395640753074673444","240512483478303665726891746749257419994"],"threshold":0.9},"id":"CVE-2026-59981-e08c2a28","signature_type":"Line","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/37f03b6ed90f3dd9910f31de3a40f25f2bc2aca1","target":{"file":"src/test/OpenEXRUtilTest/testDeepImage.cpp"}},{"target":{"file":"src/lib/OpenEXRUtil/ImfSampleCountChannel.h"},"deprecated":false,"digest":{"threshold":0.9,"line_hashes":["254502877786632950204708836805398063097","114228806546493661120860686230784564472","226198338003979056262324399968515474804","301136904542702397400972023161823894536"]},"id":"CVE-2026-59981-ebc09a22","signature_type":"Line","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/37f03b6ed90f3dd9910f31de3a40f25f2bc2aca1"},{"signature_type":"Function","signature_version":"v1","source":"https://github.com/academysoftwarefoundation/openexr/commit/55b7958ecb5ac32c427ff39c1e063f6f7bbee77c","target":{"file":"src/lib/OpenEXRUtil/ImfDeepImageChannel.h","function":"row"},"deprecated":false,"digest":{"length":72,"function_hash":"158796205751142772897768494416029777845"},"id":"CVE-2026-59981-ff962b91"}],"vanir_signatures_modified":"2026-10-28T11:18:15Z","source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-59981.json"}}],"schema_version":"1.9.2","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H"}]}