Bug 1988980 (CVE-2020-19716)

Summary: CVE-2020-19716 exiv2: buffer overflow in Databuf function in types.cpp leads to DoS
Product: [Other] Security Response Reporter: Dhananjay Arunesh <darunesh>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED WONTFIX QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: jgrulich, michel, rdieter
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: exiv2 0.27.3 Doc Type: If docs needed, set a value
Doc Text:
There's a flaw in exiv2. An attacker able to submit a crafted file to an application linked with exiv2 could trigger excessive resource consumption or a null pointer dereference, leading to an impact to application availability.
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-08-06 01:07:49 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: 1988981    
Bug Blocks: 1988983    

Description Dhananjay Arunesh 2021-08-02 08:28:38 UTC
A buffer overflow vulnerability in the Databuf function in types.cpp of Exiv2
v0.27.1 leads to a denial of service (DOS).

References:
https://github.com/Exiv2/exiv2/issues/980

Comment 1 Dhananjay Arunesh 2021-08-02 08:28:57 UTC
Created exiv2 tracking bugs for this issue:

Affects: fedora-all [bug 1988981]

Comment 2 Product Security DevOps Team 2021-08-06 01:07:49 UTC
This bug is now closed. Further updates for individual products will be reflected on the CVE page(s):

https://access.redhat.com/security/cve/cve-2020-19716

Comment 4 Todd Cullum 2021-08-06 17:05:15 UTC
Flaw summary:

In rafimage.cpp, Exiv2::DataBuf::DataBuf() attempts to allocate (via `new`) a buffer of `size`. As `size` is controlled by an input file, it could be too large in which case it will either cause a giant allocation or failure, resulting in NULL pointer. There is no check for NULL prior to calling std::memcpy() and attempting to write data to the buffer. This could lead to a crash of the application linked with the exiv2 library.