Package: release.debian.org
Severity: normal
Tags: jessie
User: release.debian@packages.debian.org
Usertags: pu
Hi
This is the corresponding update (as proposed for stretch-pu in
#897188 for stretch) for ghostscript to address CVE-2018-10194 and
CVE-2016-10317.
Attached the proposed debdiff.
Regards,
Salvatore
diff -Nru ghostscript-9.06~dfsg/debian/changelog
ghostscript-9.06~dfsg/debian/changelog
--- ghostscript-9.06~dfsg/debian/changelog 2017-09-28 21:55:37.0
+0200
+++ ghostscript-9.06~dfsg/debian/changelog 2018-04-29 11:58:34.0
+0200
@@ -1,3 +1,14 @@
+ghostscript (9.06~dfsg-2+deb8u7) jessie; urgency=medium
+
+ * Non-maintainer upload.
+ * Segfault with fuzzing file in gxht_thresh_image_init
+ * Buffer overflow in fill_threshold_buffer (CVE-2016-10317)
+(Closes: #860869)
+ * pdfwrite - Guard against trying to output an infinite number
+(CVE-2018-10194) (Closes: #896069)
+
+ -- Salvatore Bonaccorso Sun, 29 Apr 2018 11:58:34 +0200
+
ghostscript (9.06~dfsg-2+deb8u6) jessie-security; urgency=high
* Non-maintainer upload by the Security Team.
diff -Nru
ghostscript-9.06~dfsg/debian/patches/Fix-Bug-696398-Segfault-with-fuzzing-file.patch
ghostscript-9.06~dfsg/debian/patches/Fix-Bug-696398-Segfault-with-fuzzing-file.patch
---
ghostscript-9.06~dfsg/debian/patches/Fix-Bug-696398-Segfault-with-fuzzing-file.patch
1970-01-01 01:00:00.0 +0100
+++
ghostscript-9.06~dfsg/debian/patches/Fix-Bug-696398-Segfault-with-fuzzing-file.patch
2018-04-29 11:58:34.0 +0200
@@ -0,0 +1,29 @@
+From: Ray Johnston
+Date: Wed, 19 Jul 2017 22:05:33 -0700
+Subject: Fix Bug 696398: Segfault with fuzzing file.
+Origin:
http://git.ghostscript.com/?p=ghostpdl.git;h=983e56cb679768fe5a048fbb33a43259efb9afbf
+Bug: https://bugs.ghostscript.com/show_bug.cgi?id=696398
+
+Oveflow of integer caused later failure even if allocation of the
+ht_buffer succeeded. Detect overflow, return error.
+---
+ base/gxht_thresh.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/base/gxht_thresh.c b/base/gxht_thresh.c
+index 35f8e3f57..3fb840213 100644
+--- a/base/gxht_thresh.c
b/base/gxht_thresh.c
+@@ -711,6 +711,9 @@ gxht_thresh_image_init(gx_image_enum *penum)
+space */
+ max_height = (int) ceil(fixed2float(any_abs(penum->dst_height)) /
+ (float) penum->Height);
++if ((max_height > 0) && (penum->ht_stride * spp_out > max_int /
max_height))
++return -1; /* overflow */
++
+ penum->ht_buffer =
+ gs_alloc_bytes(penum->memory,
+penum->ht_stride * max_height * spp_out,
+--
+2.17.0
+
diff -Nru
ghostscript-9.06~dfsg/debian/patches/Fix-bug-697459-Buffer-overflow-in-fill_threshold_buf.patch
ghostscript-9.06~dfsg/debian/patches/Fix-bug-697459-Buffer-overflow-in-fill_threshold_buf.patch
---
ghostscript-9.06~dfsg/debian/patches/Fix-bug-697459-Buffer-overflow-in-fill_threshold_buf.patch
1970-01-01 01:00:00.0 +0100
+++
ghostscript-9.06~dfsg/debian/patches/Fix-bug-697459-Buffer-overflow-in-fill_threshold_buf.patch
2018-04-29 11:58:34.0 +0200
@@ -0,0 +1,78 @@
+From: Ray Johnston
+Date: Tue, 21 Nov 2017 12:48:54 -0800
+Subject: Fix bug 697459 Buffer overflow in fill_threshold_buffer
+Origin:
http://git.ghostscript.com/?p=ghostpdl.git;h=362ec9daadb9992b0def3520cd1dc6fa52edd1c4
+Bug-Debian: https://bugs.debian.org/860869
+Bug: https://bugs.ghostscript.com/show_bug.cgi?id=697459
+Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2016-10317
+
+There was an overflow check for ht_buffer size, but none for the larger
+threshold_buffer. Note that this file didn't fail on Windows because the
+combination of the ht_buffer and the size of the (miscalculated due to
+overflow) threshold_buffer would have exceeded the 2Gb limit.
+---
+ base/gxht_thresh.c | 13 ++---
+ base/gxipixel.c| 2 +-
+ 2 files changed, 11 insertions(+), 4 deletions(-)
+
+diff --git a/base/gxht_thresh.c b/base/gxht_thresh.c
+index 3fb840213..726861685 100644
+--- a/base/gxht_thresh.c
b/base/gxht_thresh.c
+@@ -711,7 +711,9 @@ gxht_thresh_image_init(gx_image_enum *penum)
+space */
+ max_height = (int) ceil(fixed2float(any_abs(penum->dst_height)) /
+ (float) penum->Height);
+-if ((max_height > 0) && (penum->ht_stride * spp_out > max_int /
max_height))
++if (max_height <= 0)
++return -1;/* shouldn't happen, but check so we
don't div by zero */
++if (penum->ht_stride * spp_out > max_int / max_height)
+ return -1; /* overflow */
+
+ penum->ht_buffer =
+@@ -734,6 +736,11 @@ gxht_thresh_image_init(gx_image_enum *penum)
+Also allow a 15 sample over run during the execution. */
+