GraphicsMagick 1.3.24 is released

Bob Friesenhahn <[email protected]> Mon, 30 May 2016 16:30:11 -0500 (CDT)
Newsgroups gmane.comp.video.graphicsmagick.announce
Message-ID <[email protected]>
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

---559023410-1448559654-1464643811=:4552
Content-Type: text/plain; format=flowed; charset=ISO-8859-15
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by smtp.simplesystems.org
	id u4ULUB6m014224

GraphicsMagick 1.3.24 (http://www.graphicsmagick.org/) is now=20
available.  This release provides urgent fixes for two possible shell=20
exploits (arbitrary shell code executed on your computer due to=20
opening a file).  The shell exploits could be triggered by opening an=20
untrusted SVG, MVG, or gnuplot file.  It is possible that there are=20
other possible paths to the same weakness that we are not aware of.=20
The weaknesses have been removed.

We first became concious of potential risks due to the "ImageTragick"=20
(see https://imagetragick.com/) ImageMagick exploits.=20
GraphicsMagick's delegates system does not suffer from the weakness=20
which inspired "ImageTragick" but we became aware that 'gnuplot's=20
system() command could be used to execute arbitrary shell code so we=20
removed support for opening gnuplot files from delegates.mgk.

Yesterday I became aware that a seldom-used feature (inherited from=20
ImageMagick) in which filenames beginning with the '|' character=20
execute a shell command to read or write an image could also be=20
exploited in all released versions of GraphicsMagick (and ImageMagick=20
as well).  See=20
"http://www.openwall.com/lists/oss-security/2016/05/29/7" for details=20
on this exploit.  In this case we also removed the feature since=20
removing it avoids the ability to execute arbitrary shell code based=20
on a "filename".

We have been kept busy fixing weaknesses (problems caused by=20
intentionally corrupted files) discovered by security researchers.=20
We would like to thank Hanno B=F6ck, Gustavo Grieco, and Jodie=20
Cunningham for running fuzzer programs and providing us with files=20
which caused problems for GraphicsMagick.  We would like to thank John=20
Lightsey for identifying the Gnuplot weakness.  We would like to thank=20
David Chan for reporting that -dSAFER should be used with Ghostscript=20
to assure that Postscript can not read/write files.

The following is the NEWS text associated with the release:

Special Issues:

* A shell exploit (CVE-2016-5118) was discovered associated with a
   filename syntax where file names starting with '|' are intepreted as
   shell commands executed via popen().  Insufficient sanitization in
   the SVG and MVG renderers allows such filenames to be passed through
   from potentially untrusted files.  There might be other ways for
   untrusted inputs to produce such filenames.  Due to this issue,
   support for the feature is removed entirely.

* A shell exploit was discovered associated with the gnuplot delegate
   and which is triggered by the 'gplt' entry in delegates.mgk.  A
   remote exploit is possible if the attacker can cause a provided SVG
   or MVG file to be rendered (or the user opens a provided file).  The
   gnuplot program must be installed in order for the exploit to be
   successful.  It is strongly recommended to remove this entry in all
   delegates.mgk files.

* Due to `GCC bug 53967`_, several key agorithms (e.g. convolution)
   may execute much faster (e.g. 2-3X) for x86-64 and/or when SSE is
   enabled for floating point math (`-mfpmath=3Dsse`) if the GCC option
   `-frename-registers` is used. Default 32-bit builds do not
   experience the problem since they use '387 math.  It is not clear in
   what version of GCC this problem started but it was not noticed by
   the developers until the GCC 4.6 timeframe.  Other compilers do not
   suffer from this bug.  Please lobby the GCC project to fix this
   embarrassing performance bug.

Security Fixes:

* BLOB: Remove support for reading input from a shell command, or
   writing output to a shell command, by prefixing the specified
   filename (containing the command) with a '|'.  This feature provided
   a remote shell execution opportunity.

* DIB: Fixed out of bounds reads.  Added more header validations.

* JNG: File size limits are enforced.

* MAT: Fixed denial of service opportunity.  Fix hang on corrupt deflate =
stream.

* META: Fixed out of bounds reads and writes.

* MIFF: Fixed thrown assertion.

* MSL: Ignore the file extension on MSL files.  It is necessary to add
   a "msl:" prefix to MSL files to read the as an image.

* MVG: No longer assume that files ending with extension ".mvg" are
   MVG files.  MVG parsing does more validity checking on its input.
   Assure that enough PrimitiveInfo structures are allocated in advance
   to support a given vector path (heap overflow problem).

* PCX: Fixed unreasonable memory allocation due to intentionally
   corrupt file.

* PDB: Fixed a heap buffer overflow and out of bounds read.

* PICT: Fixed an out of bounds write.

* PS: Ghostscript is now always run with -dSAFER for safer execution.

* PSD: Fixed segmentation violations, heap buffer overflows, and out
   of bounds writes.

* RLE: Fixed out of bounds reads and writes.

* ReadImages(): Fixed a possible infinite recursion due to a crafted inpu=
t file.

* RotateImage(): Fixed thrown assertion.

* SGI: Fixed out of bounds writes.

* SUN: Fixed out of bounds reads and writes.

* SVG: Fixed heap and stack buffer overflows, as well as segmentation
   violations (CVE-2016-2317 and CVE-2016-2318).  Also fixed endless
   loop, unexpectedly large memory allocation, divide by zero, and
   recursion issues.

* TIFF: Fixed an assertion while reading.  Fixed benign heap overflow.

* TMP: Adding a "tmp:" prefix to a filename no longer removes the file
   since this seems dangerous.

* VIFF: Fix excessive memory allocation with intentionally corrupted inpu=
t file.

* XCF: Fixed a heap buffer overflow.

* XPM: Fixed several heap buffer overflows, and out of bound
   reads/writes.  Also fixed a case of excessive memory allocation.

* delegate.mgk: The default delegate.mgk file has been pared down in
   order to reduce security exposure.

* gnuplot ('gplt' delegate in delegates.mgk): Support for rendering
   gnuplot files is removed since the format is inherently insecure.

* File names: File names starting with a '|' character are no longer
   interpreted as shell commands to be executed as input or output.


Bug fixes:

* BMP: Fix reading 24-bit Microsoft BMP which claims to have a
   colormap.

* FILE: `file://` URLs are properly supported now (they never worked
   before).

* JP2: It is now possible to write lossless JPEG 2000 "JP2" format.

* SVG: Support font-size "medium".

New Features:

* Blob I/O C APIs: Added signed versions of short and long Read/Write
   functions.

* FILE: `file://` URLs are properly supported now (they never worked
   before).

* MAT: Matlab V4 is now partially supported.

* Magick++: Added double-precision xResolution() and yResolution()
   methods to support setting the horizontal and vertical resolution
   with double floating point precision.

* Mogrify now supports a -preserve-timestamp option to preserve file
   access and modification timestamps.

Feature improvements:

Windows Delegate Updates/Additions:

* Updated bundled libpng to release 1.6.19.

* Updated bundled libwebp to release 0.4.4.

* Update bundled libxml2 to release 2.9.3.

* Update bundled freetype to release 2.6.2.

Build Changes:

* Added ``--enable-broken-coders`` configure option to enable file
   format support which may be broken or cause security issues.  The
   PSD format is now classified as "broken" (until it is fixed).

Behavior Changes:

* PSD format is not included in the build by default.

* Files ending with ".mvg" and ".msl" are not assumed to be image
   files by default.

* File names starting with '|' are no longer treated as shell
   commands.

* Gnuplot and POV delegate support is removed from the default
   delegate.mgk file.

--=20
Bob Friesenhahn
[email protected], http://www.simplesystems.org/users/bfriesen=
/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/
---559023410-1448559654-1464643811=:4552
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
---559023410-1448559654-1464643811=:4552
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Graphicsmagick-announce mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/graphicsmagick-announce

---559023410-1448559654-1464643811=:4552--