{"api_version":"1","generated_at":"2026-08-25T03:48:38+00:00","cve":"CVE-2026-54920","urls":{"html":"https://cve.report/CVE-2026-54920","api":"https://cve.report/api/cve/CVE-2026-54920.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-54920","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-54920"},"summary":{"title":"OpenEXR: Integer overflow and uninitialized pointer cause invalid delete in OpenEXRUtil image resize","description":"OpenEXR is the reference implementation and specification for the EXR image format, widely used in the motion picture industry. In versions 3.4.0 through 3.4.12, a reachable assertion failure in the HTJ2K decode path allows a crafted HTJ2K-compressed EXR file to cause an unconditional process abort in any application that calls exr_start_read() on untrusted input, resulting in denial of service. The crash is triggered by a QCD marker whose lower five bits are zero, which OpenEXR passes into the vendored OpenJPH library while constructing the codestream and evaluating its quantization delta parameters. OpenJPH uses an assertion rather than a recoverable error to validate those bits, so any invalid value calls abort() directly and cannot be intercepted by surrounding error handling, a problem compounded by OpenEXR wrapping only its internal HT header parser in error handling while leaving the later codestream read and construction calls unprotected. This issue has been resolved in version 3.4.13.","state":"PUBLISHED","assigner":"GitHub_M","published_at":"2026-08-25 01:16:36","updated_at":"2026-08-25 01:16:36"},"problem_types":["CWE-190","CWE-824","CWE-190 CWE-190: Integer Overflow or Wraparound","CWE-824 CWE-824: Access of Uninitialized Pointer"],"metrics":[{"version":"3.1","source":"security-advisories@github.com","type":"Secondary","score":"0","severity":"NONE","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N","baseScore":0,"baseSeverity":"NONE","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"NONE"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"0","severity":"NONE","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N","data":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":0,"baseSeverity":"NONE","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N","version":"3.1"}}],"references":[{"url":"https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-fp75-87pr-8329","name":"https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-fp75-87pr-8329","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-54920","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-54920","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"AcademySoftwareFoundation","product":"openexr","version":"affected < 3.2.10","platforms":[]},{"source":"CNA","vendor":"AcademySoftwareFoundation","product":"openexr","version":"affected >= 3.3.0, <= 3.3.12","platforms":[]},{"source":"CNA","vendor":"AcademySoftwareFoundation","product":"openexr","version":"affected >= 3.4.0, <= 3.4.13","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"product":"openexr","vendor":"AcademySoftwareFoundation","versions":[{"status":"affected","version":"< 3.2.10"},{"status":"affected","version":">= 3.3.0, <= 3.3.12"},{"status":"affected","version":">= 3.4.0, <= 3.4.13"}]}],"descriptions":[{"lang":"en","value":"OpenEXR is the reference implementation and specification for the EXR image format, widely used in the motion picture industry. In versions 3.4.0 through 3.4.12, a reachable assertion failure in the HTJ2K decode path allows a crafted HTJ2K-compressed EXR file to cause an unconditional process abort in any application that calls exr_start_read() on untrusted input, resulting in denial of service. The crash is triggered by a QCD marker whose lower five bits are zero, which OpenEXR passes into the vendored OpenJPH library while constructing the codestream and evaluating its quantization delta parameters. OpenJPH uses an assertion rather than a recoverable error to validate those bits, so any invalid value calls abort() directly and cannot be intercepted by surrounding error handling, a problem compounded by OpenEXR wrapping only its internal HT header parser in error handling while leaving the later codestream read and construction calls unprotected. This issue has been resolved in version 3.4.13."}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":0,"baseSeverity":"NONE","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-190","description":"CWE-190: Integer Overflow or Wraparound","lang":"en","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-824","description":"CWE-824: Access of Uninitialized Pointer","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-08-25T00:10:39.077Z","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","shortName":"GitHub_M"},"references":[{"name":"https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-fp75-87pr-8329","tags":["x_refsource_CONFIRM"],"url":"https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-fp75-87pr-8329"}],"source":{"advisory":"GHSA-fp75-87pr-8329","discovery":"UNKNOWN"},"title":"OpenEXR: Integer overflow and uninitialized pointer cause invalid delete in OpenEXRUtil image resize"}},"cveMetadata":{"assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","assignerShortName":"GitHub_M","cveId":"CVE-2026-54920","datePublished":"2026-08-25T00:10:39.077Z","dateReserved":"2026-06-16T13:49:33.557Z","dateUpdated":"2026-08-25T00:10:39.077Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-08-25 01:16:36","lastModifiedDate":"2026-08-25 01:16:36","problem_types":["CWE-190","CWE-824","CWE-190 CWE-190: Integer Overflow or Wraparound","CWE-824 CWE-824: Access of Uninitialized Pointer"],"metrics":{"cvssMetricV31":[{"source":"security-advisories@github.com","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N","baseScore":0,"baseSeverity":"NONE","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"NONE"},"exploitabilityScore":3.9,"impactScore":0}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"54920","Ordinal":"1","Title":"OpenEXR: Integer overflow and uninitialized pointer cause invali","CVE":"CVE-2026-54920","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"54920","Ordinal":"1","NoteData":"OpenEXR is the reference implementation and specification for the EXR image format, widely used in the motion picture industry. In versions 3.4.0 through 3.4.12, a reachable assertion failure in the HTJ2K decode path allows a crafted HTJ2K-compressed EXR file to cause an unconditional process abort in any application that calls exr_start_read() on untrusted input, resulting in denial of service. The crash is triggered by a QCD marker whose lower five bits are zero, which OpenEXR passes into the vendored OpenJPH library while constructing the codestream and evaluating its quantization delta parameters. OpenJPH uses an assertion rather than a recoverable error to validate those bits, so any invalid value calls abort() directly and cannot be intercepted by surrounding error handling, a problem compounded by OpenEXR wrapping only its internal HT header parser in error handling while leaving the later codestream read and construction calls unprotected. This issue has been resolved in version 3.4.13.","Type":"Description","Title":"OpenEXR: Integer overflow and uninitialized pointer cause invali"}]}}}