Bug 1952607 (CVE-2021-29458) - CVE-2021-29458 exiv2: Out-of-bounds read in Exiv2::Internal::CrwMap::encode
Summary: CVE-2021-29458 exiv2: Out-of-bounds read in Exiv2::Internal::CrwMap::encode
Keywords:
Status: CLOSED ERRATA
Alias: CVE-2021-29458
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On: 1952608 1953758 1953759
Blocks: 1949273
TreeView+ depends on / blocked
 
Reported: 2021-04-22 16:39 UTC by Guilherme de Almeida Suckevicz
Modified: 2022-04-17 21:19 UTC (History)
3 users (show)

Fixed In Version: exiv2 0.27.4-RC2
Doc Type: If docs needed, set a value
Doc Text:
There is a flaw in exiv2. An attacker who is able to submit a crafted file to be processed by an application linked with exiv2 could trigger an out-of-bounds read. The greatest risk of this flaw is to application availability and data confidentiality.
Clone Of:
Environment:
Last Closed: 2021-11-02 23:29:56 UTC
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2021:4173 0 None None None 2021-11-09 17:34:10 UTC

Description Guilherme de Almeida Suckevicz 2021-04-22 16:39:57 UTC
Exiv2 is a command-line utility and C++ library for reading, writing, deleting, and modifying the metadata of image files. An out-of-bounds read was found in Exiv2 versions v0.27.3 and earlier. The out-of-bounds read is triggered when Exiv2 is used to write metadata into a crafted image file. An attacker could potentially exploit the vulnerability to cause a denial of service by crashing Exiv2, if they can trick the victim into running Exiv2 on a crafted image file. Note that this bug is only triggered when writing the metadata, which is a less frequently used Exiv2 operation than reading the metadata. For example, to trigger the bug in the Exiv2 command-line application, you need to add an extra command-line argument such as insert. The bug is fixed in version v0.27.4.

References:
https://github.com/Exiv2/exiv2/security/advisories/GHSA-57jj-75fm-9rq5
https://github.com/Exiv2/exiv2/issues/1530

Upstream patch:
https://github.com/Exiv2/exiv2/pull/1536

Comment 1 Guilherme de Almeida Suckevicz 2021-04-22 16:40:18 UTC
Created exiv2 tracking bugs for this issue:

Affects: fedora-all [bug 1952608]

Comment 2 Todd Cullum 2021-04-26 20:12:07 UTC
Flaw summary:

In CrwMap::encode0x1810 of src/crwimage_int.cpp, there exists an integer overflow which can lead to an out-of-bounds read. This is due to an improper size comparison that checks `if (cc && cc->size() > size)` but does not check for `if (cc->size() < size)`. The upstream patch introduces the latter check to prevent this.

Comment 6 Todd Cullum 2021-04-26 21:24:32 UTC
External References:

https://github.com/Exiv2/exiv2/security/advisories/GHSA-57jj-75fm-9rq5

Comment 8 errata-xmlrpc 2021-11-09 17:34:09 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8

Via RHSA-2021:4173 https://access.redhat.com/errata/RHSA-2021:4173


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