[jasper/f19] CVE-2014-8137, CVE-2014-8138 (#1175761)

Jiří Popelka jpopelka at fedoraproject.org
Thu Dec 18 17:19:49 UTC 2014


commit 206ab97ad59d9a8f50ba2eff48ad27067ab1ad5f
Author: Jiri Popelka <jpopelka at redhat.com>
Date:   Thu Dec 18 18:13:25 2014 +0100

    CVE-2014-8137, CVE-2014-8138 (#1175761)

 jasper-CVE-2014-8137.patch |   57 ++++++++++++++++++++++++++++++++++++++++++++
 jasper-CVE-2014-8138.patch |   14 ++++++++++
 jasper.spec                |   42 +++++++++++++++++++-------------
 3 files changed, 96 insertions(+), 17 deletions(-)
---
diff --git a/jasper-CVE-2014-8137.patch b/jasper-CVE-2014-8137.patch
new file mode 100644
index 0000000..9600cd3
--- /dev/null
+++ b/jasper-CVE-2014-8137.patch
@@ -0,0 +1,57 @@
+--- jasper-1.900.1.orig/src/libjasper/base/jas_icc.c	2014-12-11 14:06:44.000000000 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_icc.c	2014-12-11 15:16:37.971272386 +0100
+@@ -1009,7 +1009,6 @@ static int jas_icccurv_input(jas_iccattr
+ 	return 0;
+ 
+ error:
+-	jas_icccurv_destroy(attrval);
+ 	return -1;
+ }
+ 
+@@ -1127,7 +1126,6 @@ static int jas_icctxtdesc_input(jas_icca
+ #endif
+ 	return 0;
+ error:
+-	jas_icctxtdesc_destroy(attrval);
+ 	return -1;
+ }
+ 
+@@ -1206,8 +1204,6 @@ static int jas_icctxt_input(jas_iccattrv
+ 		goto error;
+ 	return 0;
+ error:
+-	if (txt->string)
+-		jas_free(txt->string);
+ 	return -1;
+ }
+ 
+@@ -1328,7 +1324,6 @@ static int jas_icclut8_input(jas_iccattr
+ 		goto error;
+ 	return 0;
+ error:
+-	jas_icclut8_destroy(attrval);
+ 	return -1;
+ }
+ 
+@@ -1497,7 +1492,6 @@ static int jas_icclut16_input(jas_iccatt
+ 		goto error;
+ 	return 0;
+ error:
+-	jas_icclut16_destroy(attrval);
+ 	return -1;
+ }
+ 
+--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_dec.c	2014-12-11 14:30:54.193209780 +0100
++++ jasper-1.900.1/src/libjasper/jp2/jp2_dec.c	2014-12-11 14:36:46.313217814 +0100
+@@ -291,7 +291,10 @@ jas_image_t *jp2_decode(jas_stream_t *in
+ 	case JP2_COLR_ICC:
+ 		iccprof = jas_iccprof_createfrombuf(dec->colr->data.colr.iccp,
+ 		  dec->colr->data.colr.iccplen);
+-		assert(iccprof);
++		if (!iccprof) {
++			jas_eprintf("error: failed to parse ICC profile\n");
++			goto error;
++		}
+ 		jas_iccprof_gethdr(iccprof, &icchdr);
+ 		jas_eprintf("ICC Profile CS %08x\n", icchdr.colorspc);
+ 		jas_image_setclrspc(dec->image, fromiccpcs(icchdr.colorspc));
diff --git a/jasper-CVE-2014-8138.patch b/jasper-CVE-2014-8138.patch
new file mode 100644
index 0000000..5aaf8ab
--- /dev/null
+++ b/jasper-CVE-2014-8138.patch
@@ -0,0 +1,14 @@
+--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_dec.c	2014-12-11 14:06:44.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jp2/jp2_dec.c	2014-12-11 14:06:26.000000000 +0100
+@@ -386,6 +386,11 @@ jas_image_t *jp2_decode(jas_stream_t *in
+ 	/* Determine the type of each component. */
+ 	if (dec->cdef) {
+ 		for (i = 0; i < dec->numchans; ++i) {
++			/* Is the channel number reasonable? */
++			if (dec->cdef->data.cdef.ents[i].channo >= dec->numchans) {
++				jas_eprintf("error: invalid channel number in CDEF box\n");
++				goto error;
++			}
+ 			jas_image_setcmpttype(dec->image,
+ 			  dec->chantocmptlut[dec->cdef->data.cdef.ents[i].channo],
+ 			  jp2_getct(jas_image_clrspc(dec->image),
diff --git a/jasper.spec b/jasper.spec
index 13672a2..fc6270a 100644
--- a/jasper.spec
+++ b/jasper.spec
@@ -7,7 +7,7 @@ Summary: Implementation of the JPEG-2000 standard, Part 1
 Name:    jasper
 Group:   System Environment/Libraries
 Version: 1.900.1
-Release: 25%{?dist}
+Release: 26%{?dist}
 
 License: JasPer
 URL:     http://www.ece.uvic.ca/~frodo/jasper/
@@ -33,15 +33,17 @@ Patch7: jasper-pkgconfig.patch
 Patch8: jasper-1.900.1-CVE-2011-4516-CVE-2011-4517-CERT-VU-887409.patch
 
 Patch9: jasper-CVE-2014-9029.patch
+Patch10: jasper-CVE-2014-8137.patch
+Patch11: jasper-CVE-2014-8138.patch
 
 # Issues found by static analysis of code
-Patch10: jasper-1.900.1-Coverity-BAD_SIZEOF.patch
-Patch11: jasper-1.900.1-Coverity-CHECKED_RETURN.patch
-Patch12: jasper-1.900.1-Coverity-FORWARD_NULL.patch
-Patch13: jasper-1.900.1-Coverity-NULL_RETURNS.patch
-Patch14: jasper-1.900.1-Coverity-RESOURCE_LEAK.patch
-Patch15: jasper-1.900.1-Coverity-UNREACHABLE.patch
-Patch16: jasper-1.900.1-Coverity-UNUSED_VALUE.patch
+Patch110: jasper-1.900.1-Coverity-BAD_SIZEOF.patch
+Patch111: jasper-1.900.1-Coverity-CHECKED_RETURN.patch
+Patch112: jasper-1.900.1-Coverity-FORWARD_NULL.patch
+Patch113: jasper-1.900.1-Coverity-NULL_RETURNS.patch
+Patch114: jasper-1.900.1-Coverity-RESOURCE_LEAK.patch
+Patch115: jasper-1.900.1-Coverity-UNREACHABLE.patch
+Patch116: jasper-1.900.1-Coverity-UNUSED_VALUE.patch
 
 # autoreconf
 BuildRequires: autoconf automake libtool
@@ -96,14 +98,16 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release}
 %patch7 -p1 -b .pkgconfig
 %patch8 -p1 -b .CVE-2011-4516-4517
 %patch9 -p1 -b .CVE-2014-9029
+%patch10 -p1 -b .CVE-2014-8137-variant2
+%patch11 -p1 -b .CVE-2014-8138
 
-%patch10 -p1 -b .BAD_SIZEOF
-%patch11 -p1 -b .CHECKED_RETURN
-%patch12 -p1 -b .FORWARD_NULL
-%patch13 -p1 -b .NULL_RETURNS
-%patch14 -p1 -b .RESOURCE_LEAK
-%patch15 -p1 -b .UNREACHABLE
-%patch16 -p1 -b .UNUSED_VALUE
+%patch110 -p1 -b .BAD_SIZEOF
+%patch111 -p1 -b .CHECKED_RETURN
+%patch112 -p1 -b .FORWARD_NULL
+%patch113 -p1 -b .NULL_RETURNS
+%patch114 -p1 -b .RESOURCE_LEAK
+%patch115 -p1 -b .UNREACHABLE
+%patch116 -p1 -b .UNUSED_VALUE
 
 autoreconf --verbose --force --install
 
@@ -173,6 +177,10 @@ make check
 
 
 %changelog
+* Thu Dec 18 2014 Jiri Popelka <jpopelka at redhat.com> - 1.900.1-26
+- CVE-2014-8137 - double-free in jas_iccattrval_destroy() (oCERT-2014-012) (#1175761)
+- CVE-2014-8138 - heap overflow in jp2_decode() (oCERT-2014-012) (#1175761)
+
 * Thu Dec 04 2014 Jiri Popelka <jpopelka at redhat.com> - 1.900.1-25
 - CVE-2014-9029 - incorrect component number check in COC, RGN and QCC
                   marker segment decoders (#1170650)
@@ -213,7 +221,7 @@ make check
 * Thu Oct 29 2009 Rex Dieter <rdieter at fedoraproject.org> - 1.900.1-14
 - add pkgconfig support
 
-* Mon Oct 13 2009 Rex Dieter <rdieter at fedoraproject.org> - 1.900.1-13
+* Tue Oct 13 2009 Rex Dieter <rdieter at fedoraproject.org> - 1.900.1-13
 - CVE-2008-3520 jasper: multiple integer overflows in jas_alloc calls (#461476)
 - CVE-2008-3522 jasper: possible buffer overflow in 
   jas_stream_printf() (#461478)
@@ -296,7 +304,7 @@ make check
 - use %%{?dist}
 - BR: libGL-devel 
 
-* Fri Apr  7 2005 Michael Schwendt <mschwendt[AT]users.sf.net>
+* Thu Apr  7 2005 Michael Schwendt <mschwendt[AT]users.sf.net>
 - rebuilt
 
 * Sat Oct 23 2004 Rex Dieter <rexdieter at sf.net> 0:1.701.0-0.fdr.3


More information about the scm-commits mailing list