Bug 953902 (CVE-2013-1978) - CVE-2013-1978 gimp: XWD plugin color map heap-based buffer overflow
Summary: CVE-2013-1978 gimp: XWD plugin color map heap-based buffer overflow
Keywords:
Status: CLOSED ERRATA
Alias: CVE-2013-1978
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: 955471 955472 955473 955474 1030899 1037720
Blocks: 879318
TreeView+ depends on / blocked
 
Reported: 2013-04-19 13:27 UTC by Stefan Cornelius
Modified: 2023-05-12 21:35 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-12-14 19:49:24 UTC
Embargoed:


Attachments (Terms of Use)
proposed patch for CVE-2013-1978 (4.19 KB, patch)
2013-11-26 10:06 UTC, Nils Philippsen
no flags Details | Diff
updated patch for CVE-2013-1978 (4.43 KB, patch)
2013-11-27 10:41 UTC, Nils Philippsen
no flags Details | Diff


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2013:1778 0 normal SHIPPED_LIVE Moderate: gimp security update 2013-12-03 21:50:50 UTC

Description Stefan Cornelius 2013-04-19 13:27:21 UTC
Murray McAllister of the Red Hat Security Response Team has discovered a heap-based buffer overflow in the way GIMP, the GNU Image Manipulation Program, performed loading of certain X Window System (XWD) image dumps containing a small number of color map entries but a large number of colors. A remote attacker could provide a specially-crafted XWD format image file that, when processed, would lead to gimp XWD plug-in crash or, potentially, arbitrary code execution with the privileges of the user running the gimp executable.

Comment 3 Nils Philippsen 2013-11-26 10:06:44 UTC
Created attachment 829128 [details]
proposed patch for CVE-2013-1978

The attached patch checks that the number of colormap entries isn't less than the number of colors. While it's not clear if the format specification permits file with a higher number of colormap entries than colors, such files can be constructed and are readable by e.g. ImageMagick tools.

Comment 4 Nils Philippsen 2013-11-27 10:41:39 UTC
Created attachment 829635 [details]
updated patch for CVE-2013-1978

Comment 5 Tomas Hoger 2013-11-27 21:50:19 UTC
The problem here is that load_image() in file-xwd.c reads XWD image file header.  Header contains l_colormap_entries (number of color map entries) and l_ncolors (number of image colors).  xwdcolmap buffer used to store color map is allocated to contain space for l_colormap_entries items:

https://git.gnome.org/browse/gimp/tree/plug-ins/common/file-xwd.c?id=03df8c6#n469

Subsequently, read_xwd_cols() is called to populate the color map buffer.

https://git.gnome.org/browse/gimp/tree/plug-ins/common/file-xwd.c?id=03df8c6#n790

However, this function uses l_ncolors instead of l_colormap_entries as an upper bound when populating xwdcolmap.  Image specifying higher value for l_ncolors than l_colormap_entries causes gimp to overflow the heap based buffer.

Comment 6 Tomas Hoger 2013-11-27 21:52:28 UTC
Acknowledgment:

This issue was discovered by Murray McAllister of the Red Hat Security Response Team.

Comment 7 Vincent Danen 2013-12-03 16:29:42 UTC
Created gimp tracking bugs for this issue:

Affects: fedora-all [bug 1037720]

Comment 8 errata-xmlrpc 2013-12-03 16:52:55 UTC
This issue has been addressed in following products:

  Red Hat Enterprise Linux 5
  Red Hat Enterprise Linux 6

Via RHSA-2013:1778 https://rhn.redhat.com/errata/RHSA-2013-1778.html


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