Bug 1870249 (CVE-2020-17538)

Summary: CVE-2020-17538 ghostscript: buffer overflow in GetNumSameData() in contrib/lips4/gdevlips.c could result in a DoS
Product: [Other] Security Response Reporter: Michael Kaplan <mkaplan>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: amasferr, chazlett, deekej, mosvald, twaugh, zdohnal
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: ghostscript 9.51 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-05-18 20:35:44 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: 1870251, 1872034, 1872035    
Bug Blocks: 1870273    

Description Michael Kaplan 2020-08-19 15:26:07 UTC
A buffer overflow vulnerability in GetNumSameData() in contrib/lips4/gdevlips.c of Artifex Software GhostScript v9.50 allows a remote attacker to cause a denial of service via a crafted PDF file. This is fixed in v9.51.

References:

https://bugs.ghostscript.com/show_bug.cgi?id=701792
https://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=9f39ed4a92578a020ae10459643e1fe72573d134

Comment 1 Michael Kaplan 2020-08-19 15:26:36 UTC
Created ghostscript tracking bugs for this issue:

Affects: fedora-all [bug 1870251]

Comment 3 Todd Cullum 2020-08-24 21:31:35 UTC
Mitigation:

Mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base or stability.

Comment 5 Todd Cullum 2020-08-24 21:35:06 UTC
Flaw Summary:

The GetNumSameData() function in /contrib/lips4/gdevlips.c could perform a buffer overflow due to while loop conditions in an improper order:

`while (*curPtr == *(curPtr + count) && maxnum > count)`

In this case, `maxnum > count` should be checked prior to dereferencing `curPtr + count` conditions to avoid a potential heap buffer overread. The patch does this.

Comment 6 Todd Cullum 2020-08-24 21:36:35 UTC
I was not able to reproduce the issue as described upstream with ASAN on RHEL, but do see the source code line in the file. As such, I've marked it as Low.

Comment 7 errata-xmlrpc 2021-05-18 15:37:14 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8

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

Comment 8 Product Security DevOps Team 2021-05-18 20:35:44 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-17538