Bug 1351069 (CVE-2016-5767)

Summary: CVE-2016-5767 gd: Integer Overflow in gdImagePaletteToTrueColor() resulting in heap overflow
Product: [Other] Security Response Reporter: Andrej Nemec <anemec>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED ERRATA QA Contact: Huzaifa S. Sidhpurwala <huzaifas>
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: abhgupta, databases-maint, dmcphers, fedora, fjanus, hhorak, jialiu, jokerman, jorton, lmeyer, mmccomas, panovotn, rcollet, tiwillia, webstack-team
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: php 5.5.37, php 5.6.23, gd 2.0.34 Doc Type: If docs needed, set a value
Doc Text:
An integer overflow flaw, leading to a heap-based buffer overflow was found in the gdImagePaletteToTrueColor() function of PHP's gd extension. A remote attacker could use this flaw to crash a PHP application or execute arbitrary code with the privileges of the user running that PHP application using gd via a specially crafted image buffer.
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-06-08 02:56:02 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: 1351180, 1356812    
Bug Blocks: 1323912, 1351183    

Description Andrej Nemec 2016-06-29 07:19:53 UTC
The gdImagePaletteToTrueColor() is prone to an integer overflow, which result in heap based overflow.

Upstream bug:

https://bugs.php.net/bug.php?id=72446

Upstream patch:

http://git.php.net/?p=php-src.git;a=commitdiff;h=c395c6e5d7e8df37a21265ff76e48fe75ceb5ae6

CVE assignment:

http://seclists.org/oss-sec/2016/q2/589

Comment 1 Andrej Nemec 2016-06-29 12:04:49 UTC
Created php tracking bugs for this issue:

Affects: fedora-all [bug 1351180]

Comment 2 Fedora Update System 2016-07-02 15:27:37 UTC
php-5.6.23-1.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.

Comment 3 Fedora Update System 2016-07-02 19:22:26 UTC
php-5.6.23-1.fc22 has been pushed to the Fedora 22 stable repository. If problems still persist, please make note of it in this bug report.

Comment 4 Fedora Update System 2016-07-02 19:27:44 UTC
php-5.6.23-1.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.

Comment 5 Huzaifa S. Sidhpurwala 2016-07-11 10:07:15 UTC
Analysis:

This is triggered when a very large image created by imagecreate() is passed to imagepalettetotruecolor(), which triggers an integer overflow followed by heap-buffer overflow.

From a php point of view, this needs to be triggered by an attacker controlled imagecreate(), which is very unlikely situation.

Comment 8 errata-xmlrpc 2016-11-03 21:05:17 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7

Via RHSA-2016:2598 https://rhn.redhat.com/errata/RHSA-2016-2598.html

Comment 10 errata-xmlrpc 2016-11-15 11:41:27 UTC
This issue has been addressed in the following products:

  Red Hat Software Collections for Red Hat Enterprise Linux 6
  Red Hat Software Collections for Red Hat Enterprise Linux 6.7 EUS
  Red Hat Software Collections for Red Hat Enterprise Linux 7
  Red Hat Software Collections for Red Hat Enterprise Linux 7.2 EUS
  Red Hat Software Collections for Red Hat Enterprise Linux 7.3 EUS

Via RHSA-2016:2750 https://rhn.redhat.com/errata/RHSA-2016-2750.html

Comment 11 Tomas Hoger 2020-11-12 21:08:01 UTC
gd upstream was actually fixed long before gd bundled with php via this commit:

https://github.com/libgd/libgd/commit/cfee163a5e848fc3e3fb1d05a30d7557cdd36457

This commit was first included in gd version 2.0.34.

See also:

https://github.com/libgd/libgd/issues/243