Bug 1939160 (CVE-2021-3478)

Summary: CVE-2021-3478 OpenEXR: Out-of-memory in ScanLineInputFile
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: cbpilm, jeischma, jridky, kwizart, rdieter, rh-spice-bugs
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: OpenEXR 3.0.0-beta, OpenEXR 2.4.3 Doc Type: If docs needed, set a value
Doc Text:
There's a flaw in OpenEXR's scanline input file functionality. An attacker able to submit a crafted file to be processed by OpenEXR could consume excessive system memory. The greatest impact of this flaw is to system availability.
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-11-02 23:22:40 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: 1939190, 1944794, 1944795, 1944796, 1944797    
Bug Blocks: 1929339, 1944841    

Description Michael Kaplan 2021-03-15 17:27:49 UTC
Out-of-memory in openexr_exrcheck_fuzzer

Comment 1 Michael Kaplan 2021-03-15 17:27:54 UTC
External References:

https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=27409

Comment 2 Michael Kaplan 2021-03-15 17:46:03 UTC
Created OpenEXR tracking bugs for this issue:

Affects: fedora-all [bug 1939190]

Comment 3 Todd Cullum 2021-03-30 16:49:38 UTC
This looks like the upstream patch commit: https://github.com/AcademySoftwareFoundation/openexr/commit/bc88cdb6c97fbf5bc5d11ad8ca55306da931283a

Flaw summary:

In ImfScanLineInputFile.cpp, large lineOffset and bytesPerLine tables could cause OpenEXR to allocate excessive memory, causing an impact to system availability. This was due to _data->linesInBuffer missing in the if check.

Comment 6 Cary Phillips 2021-04-23 01:49:56 UTC
This is fixed in OpenEXR v2.5.4, v2.5.5, and v3.0.1 and beyond.

Comment 7 Cary Phillips 2021-05-25 21:40:49 UTC
This is also fixed in OpenEXR v2.4.3
https://github.com/AcademySoftwareFoundation/openexr/blob/master/CHANGES.md#version-243-may-17-2021