Bug 1929323 (CVE-2020-16589)

Summary: CVE-2020-16589 OpenEXR: A heap-based buffer overflow in writeTileData in ImfTiledOutputFile.cpp could result in a DOS via a crafted EXR file
Product: [Other] Security Response Reporter: Michael Kaplan <mkaplan>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED WONTFIX QA Contact:
Severity: low Docs Contact:
Priority: low    
Version: unspecifiedCC: jeischma, jridky, kwizart, manisandro, rdieter, rh-spice-bugs
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: openexr 2.4.0 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-11-02 23:07:42 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1929325, 1929326, 1930957, 1930958, 1930959    
Bug Blocks: 1929327    

Description Michael Kaplan 2021-02-16 16:41:45 UTC
A heap-based buffer overflow exists in Academy Software Foundation OpenEXR 2.3.0 in writeTileData in ImfTiledOutputFile.cpp that can cause a denial of service via a crafted EXR file.

https://github.com/AcademySoftwareFoundation/openexr/commit/6bb36714528a9563dd3b92720c5063a1284b86f8
https://github.com/AcademySoftwareFoundation/openexr/issues/494

Comment 2 Michael Kaplan 2021-02-16 16:42:32 UTC
Created OpenEXR tracking bugs for this issue:

Affects: fedora-all [bug 1929325]

Comment 5 Todd Cullum 2021-02-19 21:25:24 UTC
Statement:

This flaw is out of support scope for OpenEXR as shipped with Red Hat Enterprise Linux 6 and 7. For more information on Red Hat Enterprise Linux support scope, please see https://access.redhat.com/support/policy/updates/errata/ .

Comment 7 Todd Cullum 2021-02-24 17:45:36 UTC
Flaw summary:

TiledInputFile::rawTileData() did not validate the tile coordinates before reading from the tile buffer, which could lead to an out-of-bounds read during copyPixels(). The patch uses isValidTile() to correct this.

Upstream patch: https://github.com/peterhillman/openexr/commit/a6512959ac823ac89027ef373deff6f386920bb9