Bug 1939159 (CVE-2021-3477) - CVE-2021-3477 OpenEXR: Heap-buffer-overflow in Imf_2_5::DeepTiledInputFile::readPixelSampleCounts
Summary: CVE-2021-3477 OpenEXR: Heap-buffer-overflow in Imf_2_5::DeepTiledInputFile::r...
Keywords:
Status: CLOSED WONTFIX
Alias: CVE-2021-3477
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On: 1939185 1944785 1944786 1944787 1944788
Blocks: 1929339 1944836
TreeView+ depends on / blocked
 
Reported: 2021-03-15 17:27 UTC by Michael Kaplan
Modified: 2022-04-17 21:13 UTC (History)
6 users (show)

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 deep tile sample size calculations. An attacker who is able to submit a crafted file to be processed by OpenEXR could trigger an integer overflow, subsequently leading to an out-of-bounds read. The greatest risk of this flaw is to application availability.
Clone Of:
Environment:
Last Closed: 2021-11-02 23:21:23 UTC
Embargoed:


Attachments (Terms of Use)

Description Michael Kaplan 2021-03-15 17:27:40 UTC
Heap-buffer-overflow in Imf_2_5::DeepTiledInputFile::readPixelSampleCounts

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

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

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

Affects: fedora-all [bug 1939185]

Comment 3 Todd Cullum 2021-03-30 16:34:20 UTC
I *believe* this is the upstream patch: https://github.com/AcademySoftwareFoundation/openexr/commit/467be80b75642efbbe6bdace558079f68c16acb1

It is not quite clear from the oss-fuzz output (I don't have access to the "detailed report."

Flaw summary:

Integer overflow in DeepTiledInputFile::initialize() of src/lib/OpenEXR/ImfDeepTiledInputFile.cpp could lead to an out-of-bounds read in DeepTiledInputFile::readPixelSampleCounts() based on the file's tileDesc.xSize and tileDesc.ySize.

Comment 6 Cary Phillips 2021-04-23 01:48:39 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:41:23 UTC
This is also fixed in OpenEXR v2.4.3
https://github.com/AcademySoftwareFoundation/openexr/blob/master/CHANGES.md#version-243-may-17-2021


Note You need to log in before you can comment on or make changes to this bug.