Bug 1894233 (CVE-2020-27756)

Summary: CVE-2020-27756 ImageMagick: division by zero at MagickCore/geometry.c
Product: [Other] Security Response Reporter: Guilherme de Almeida Suckevicz <gsuckevi>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED WONTFIX QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: fedora, jhorak, mike, pahan, rhel8-maint, security-response-team, stransky
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: ImageMagick 7.0.9-0 Doc Type: If docs needed, set a value
Doc Text:
In ParseMetaGeometry() of MagickCore/geometry.c, image height and width calculations can lead to divide-by-zero conditions which also lead to undefined behavior. This flaw can be triggered by a crafted input file processed by ImageMagick and could impact application availability. The patch uses multiplication in addition to the function `PerceptibleReciprocal()` in order to prevent such divide-by-zero conditions.
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-11-24 23:34:35 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: 1901257, 1901258, 1910550    
Bug Blocks: 1891602    

Description Guilherme de Almeida Suckevicz 2020-11-03 19:12:23 UTC
In ImageMagick, a division by zero can lead to outside the range of representable value at MagickCore/geometry.c and signed integer overflow at MagickCore/decorate.c.

Reference:
https://github.com/ImageMagick/ImageMagick/issues/1725

Upstream patch:
https://github.com/ImageMagick/ImageMagick/commit/f35eca82b0c294ff9d0ccad104a881c3ae2ba913

Comment 1 Guilherme de Almeida Suckevicz 2020-11-03 19:12:26 UTC
Acknowledgments:

Name: Suhwan Song (Seoul National University)

Comment 2 Todd Cullum 2020-11-03 23:54:49 UTC
Flaw summary:

In ParseMetaGeometry() of MagickCore/geometry.c, image height and width calculations can lead to divide-by-zero conditions which also lead to undefined behavior. This flaw can be triggered by a crafted input file processed by ImageMagick and could impact application availability. The patch uses multiplication in addition to the function `PerceptibleReciprocal()` in order to prevent such divide-by-zero conditions.

Comment 3 Todd Cullum 2020-11-03 23:56:14 UTC
Statement:

This flaw is out of support scope for Red Hat Enterprise Linux 5, 6, and 7. Inkscape is not affected because it no longer uses a bundled ImageMagick in Red Hat Enterprise Linux 8. For more information regarding support scopes, please see https://access.redhat.com/support/policy/updates/errata .

Comment 4 Guilherme de Almeida Suckevicz 2020-11-24 19:18:54 UTC
Created ImageMagick tracking bugs for this issue:

Affects: epel-8 [bug 1901257]
Affects: fedora-all [bug 1901258]

Comment 5 Product Security DevOps Team 2020-11-24 23:34:35 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-27756