GIMP 2.8.0 - .FIT File Format Denial of Service
Summary
=======
There is a file handling DoS in GIMP (the GNU Image Manipulation Program) for
the 'fit' file format affecting all versions (Windows and Linux) up to and
including 2.8.0. A file in the fit format with a malformed 'XTENSION' header
will cause a crash in the GIMP program.
CVE number: CVE-2012-3236
Vendor Homepage: http://www.gimp.org/
Date reported to vendor: 25/05/2012
Found by Joseph Sheridan:
href="http://www.reactionpenetrationtesting.co.uk/joseph-sheridan.html
This advisory is posted at:
http://www.reactionpenetrationtesting.co.uk/FIT-file-handling-DoS.html
PoC file is available here:
http://www.reactionpenetrationtesting.co.uk/vuln.fit
https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/19482.fit
Affected Products
=================
Vulnerable Products
+------------------
The following products are known to be affected by this vulnerability:
* GIMP <= 2.8.0 (Windows or Linux builds)
Products Not Vulnerable
+--------------------------------
* GIMP 2.8.1
Details
=======
There is a file handling DoS in GIMP (the GNU Image Manipulation Program) for
the 'fit' file format affecting all versions (Windows and Linux) up to 2.8.0.
A file in the fit format with a malformed 'XTENSION' header will cause a crash
in the GIMP program. The flaw is triggered by opening a crafted 'fit' file or
allowing the file explorer dialog to preview the file.
A file in the fit format starting as follows will trigger the crash:
XTENSIONaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaaaaaHEADER2...
The vulnerable code is in the fits-io.c lines where the program attempts to
copy from a null pointer:
{
fdat = fits_decode_card (fits_search_card (hdr, "XTENSION"), typ_fstring);
strcpy (hdulist->xtension, fdat->fstring);
}
This code can be patched by changing it to the following (as GIMP 2.8.1):
fdat = fits_decode_card (fits_search_card (hdr, "XTENSION"), typ_fstring);
if(fdat != NULL) {
strcpy (hdulist->xtension, fdat->fstring);
} else {
strcpy (errmsg, "No valid XTENSION header found.");
goto err_return;
}
Impact
======
Successful exploitation of the vulnerability may result in an application
crash and denial of service.
Solution
===========
The GIMP team have provided an update for this issue (release 2.8.1).
Workarounds
===========
The fits-io.c file can be patched as above.
Distribution
============
In addition to posting on the website, a text version of this notice
is posted to the following e-mail and Usenet news recipients.
* bugtraq () securityfocus com
* full-disclosure () lists grok org uk
* oss [dash] security [dash] subscribe [at] lists [dot] openwall [dot] com
Future updates of this advisory, if any, will be placed on the ReactionIS
corporate website, but may or may not be actively announced on
mailing lists or newsgroups. Users concerned about this problem are
encouraged to check the URL below for any updates:
http://www.reactionpenetrationtesting.co.uk/FIT-file-handling-DoS.html
========================================================================
====
Reaction Information Security
Lombard House Business Centre,
Suite 117,
12-17 Upper Bridge Street,
Canterbury, Kent, CT1 2NF
Phone: +44 (0)1227 785050
Email: research () reactionis {dot} co {dot} uk
Web: http://www.reactionpenetrationtesting.co.uk
Joseph Sheridan
Technical Director
Principal Consultant
CHECK Team Leader, CREST Infrastructure, CREST Application, CISSP
Tel: 07812052515
Web: www.reactionis.com
Email: joe (at) reactionis.co (dot) uk [email concealed]
Reaction Information Security Limited.
Registered in England No: 6929383
Registered Office: 1, The Mews, 69 New Dover Road, Canterbury, CT1 3DZ
This email and any files transmitted with it are confidential and are intended solely for the use of the individual to whom they are addressed. If you are not the intended recipient please notify the sender. Any unauthorised dissemination or copying of this email or its attachments and any use or disclosure of any information contained in them, is strictly prohibited.
ï Please consider the environment before printing this email