Your message dated Tue, 11 Jul 2006 14:47:26 -0700
with message-id <[EMAIL PROTECTED]>
and subject line Bug#377049: fixed in gimp 2.2.12-1
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: gimp
Version: 2.2.6-1
Severity: grave
Tags: security patch
Justification: user security hole

I have reported this bug privately to the maintainer and the security
team, but it turns out that the upstream developers have no way of
reporting security bugs privately, so it is hereby in the open. It
is #346742 in the upstream bug tracking system.

The problem is in the function xcf_load_vector() in app/xcf/xcf-load.c
of the source tree. For each "stroke" being read, the code reads an
uint32 from the XCF file into the variable num_axes, and then for each
control proint of the stroke reads num_axes floats from the file into
the stack-allocated array coords whose size is hard-coded as 6.

A malicious XCF file creater could write a large number into the
num_axes position and trick the XCF reader into overwriting part of
the stack with raw data read from the file. On little-endian systems,
the function xcf_read_float() that actually reads the floats does a
byte-order conversion on the data it reads but does not do any special
float processing, so an attacker has direct control of the data
written to the stack.

I have not attempted to construct an working exploit (though I did
verify being able to crash Gimp with a naively patched image file),
but there seems to be no reason why the overrun could not be used to
mount a standard arbitrary code execution attack if one can get the
victim to try to load an appropriately crafted image file.

The attack is in the VECTORS property of an XCF file which pure XCF
_viewers_ (e.g. imagemagick or xcftools) normally skip without
parsing.  Thus an attack file can easily be written such that the
image will display correctly with no symptoms at all in a viewer
application.

The same bug appears in the unstable (2.2.11) and experimental (2.3.9)
versions, as well as the upsteam CVS head.

The attached patch should fix it (more gracefully than the one in my
earlier private report).
diff -rU6 gimp-2.2.6/app/xcf/xcf-load.c gimp-2.2.6.new/app/xcf/xcf-load.c
--- gimp-2.2.6/app/xcf/xcf-load.c       2004-11-03 12:50:37.000000000 +0100
+++ gimp-2.2.6.new/app/xcf/xcf-load.c   2006-07-06 12:27:33.982404488 +0200
@@ -1658,12 +1658,18 @@
           xcf_seek_pos (info,
                         info->cp + 4 * num_axes * num_control_points,
                         NULL);
           continue;
         }
 
+      if (num_axes < 2 || num_axes > 6)
+        {
+          g_printerr ("bad number of axes in stroke description\n");
+          return FALSE;
+        }
+
       control_points = g_value_array_new (num_control_points);
 
       anchor.selected = FALSE;
 
       for (j = 0; j < num_control_points; j++)
         {

--- End Message ---
--- Begin Message ---
Source: gimp
Source-Version: 2.2.12-1

We believe that the bug you reported is fixed in the latest version of
gimp, which is due to be installed in the Debian FTP archive:

gimp-data_2.2.12-1_all.deb
  to pool/main/g/gimp/gimp-data_2.2.12-1_all.deb
gimp-dbg_2.2.12-1_amd64.deb
  to pool/main/g/gimp/gimp-dbg_2.2.12-1_amd64.deb
gimp-helpbrowser_2.2.12-1_amd64.deb
  to pool/main/g/gimp/gimp-helpbrowser_2.2.12-1_amd64.deb
gimp-python_2.2.12-1_amd64.deb
  to pool/main/g/gimp/gimp-python_2.2.12-1_amd64.deb
gimp-svg_2.2.12-1_amd64.deb
  to pool/main/g/gimp/gimp-svg_2.2.12-1_amd64.deb
gimp_2.2.12-1.diff.gz
  to pool/main/g/gimp/gimp_2.2.12-1.diff.gz
gimp_2.2.12-1.dsc
  to pool/main/g/gimp/gimp_2.2.12-1.dsc
gimp_2.2.12-1_amd64.deb
  to pool/main/g/gimp/gimp_2.2.12-1_amd64.deb
gimp_2.2.12.orig.tar.gz
  to pool/main/g/gimp/gimp_2.2.12.orig.tar.gz
libgimp2.0-dev_2.2.12-1_amd64.deb
  to pool/main/g/gimp/libgimp2.0-dev_2.2.12-1_amd64.deb
libgimp2.0-doc_2.2.12-1_all.deb
  to pool/main/g/gimp/libgimp2.0-doc_2.2.12-1_all.deb
libgimp2.0_2.2.12-1_amd64.deb
  to pool/main/g/gimp/libgimp2.0_2.2.12-1_amd64.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Ari Pollak <[EMAIL PROTECTED]> (supplier of updated gimp package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160

Format: 1.7
Date: Tue, 11 Jul 2006 14:30:03 -0400
Source: gimp
Binary: gimp-python libgimp2.0-doc gimp-data gimp gimp-helpbrowser libgimp2.0 
gimp-svg libgimp2.0-dev gimp-dbg
Architecture: source amd64 all
Version: 2.2.12-1
Distribution: unstable
Urgency: low
Maintainer: Ari Pollak <[EMAIL PROTECTED]>
Changed-By: Ari Pollak <[EMAIL PROTECTED]>
Description: 
 gimp       - The GNU Image Manipulation Program
 gimp-data  - Data files for The GIMP
 gimp-dbg   - Debugging symbols for The GIMP
 gimp-helpbrowser - Built-in Help Browser plugin for The GIMP
 gimp-python - Python support and plugins for The GIMP
 gimp-svg   - SVG (Scalable Vector Graphics) plugin for The GIMP
 libgimp2.0 - Libraries necessary to Run the GIMP
 libgimp2.0-dev - Headers and other files for compiling plugins for The GIMP
 libgimp2.0-doc - Developers' Documentation for the GIMP library
Closes: 339115 377049
Changes: 
 gimp (2.2.12-1) unstable; urgency=low
 .
   * New upstream release
     - Fixes segfault when closing image while saving it (Closes: #339115)
   * Acknowledge NMU (Closes: #377049), revert patch which has been applied
     upstream
Files: 
 cc817256038e6d142d848f6b75d2402b 1263 graphics optional gimp_2.2.12-1.dsc
 89ececcfa9905b9100d2563334b221ec 18552000 graphics optional 
gimp_2.2.12.orig.tar.gz
 ac6368f894443ed21fe098185c738b13 27530 graphics optional gimp_2.2.12-1.diff.gz
 b8fdf89f7363740cff1e82ded2b75997 6770958 graphics optional 
gimp-data_2.2.12-1_all.deb
 549f43544840daf05e0556d13783144a 567520 doc optional 
libgimp2.0-doc_2.2.12-1_all.deb
 815b15169ea37cb4ed11722e093dd61c 574558 libs optional 
libgimp2.0_2.2.12-1_amd64.deb
 8f63afa6269c495c1408bf36f61fec79 63566 graphics optional 
gimp-helpbrowser_2.2.12-1_amd64.deb
 7effdb284ce44011b3bccddec11255a2 144322 graphics optional 
gimp-python_2.2.12-1_amd64.deb
 b582f7058bf523b94645f8f794881959 63838 graphics optional 
gimp-svg_2.2.12-1_amd64.deb
 206aa40c0eef845e658d79f9c542cfb8 3235344 graphics optional 
gimp_2.2.12-1_amd64.deb
 10cf85e3d095dc8fe4a2f9e37ac75f76 118980 libdevel optional 
libgimp2.0-dev_2.2.12-1_amd64.deb
 1925045f0a7b03608d87a1298da66a97 8393180 graphics extra 
gimp-dbg_2.2.12-1_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)

iD8DBQFEtAzZwO+u47cOQDsRAxXcAKCVO9oHYXOT9I8ivbLKLSHJLZT28gCfWCGt
UePwKA6Mdp7qn8im6XDaZqY=
=yxaT
-----END PGP SIGNATURE-----


--- End Message ---

Reply via email to