diff --git a/CVE-2018-19870.patch b/CVE-2018-19870.patch new file mode 100644 index 0000000000000000000000000000000000000000..5a5c482c85b23c151e8617a050cb7b5d8a4c3490 --- /dev/null +++ b/CVE-2018-19870.patch @@ -0,0 +1,41 @@ +Backport of: + +From 2841e2b61e32f26900bde987d469c8b97ea31999 Mon Sep 17 00:00:00 2001 +From: Eirik Aavitsland +Date: Fri, 3 Aug 2018 13:25:15 +0200 +Subject: [PATCH] Check for QImage allocation failure in qgifhandler + +Since image files easily can be (or corrupt files claim to be) huge, +it is worth checking for out of memory situations. + +Change-Id: I635a3ec6852288079fdec4e14cf7e776fe59e9e0 +Reviewed-by: Lars Knoll +--- + src/plugins/imageformats/gif/qgifhandler.cpp | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +Index: qtbase-opensource-src-5.5.1+dfsg/src/gui/image/qgifhandler.cpp +=================================================================== +--- qtbase-opensource-src-5.5.1+dfsg.orig/src/gui/image/qgifhandler.cpp 2019-02-05 13:19:41.135941358 -0500 ++++ qtbase-opensource-src-5.5.1+dfsg/src/gui/image/qgifhandler.cpp 2019-02-05 13:20:04.364039732 -0500 +@@ -348,7 +348,8 @@ int QGIFFormat::decode(QImage *image, co + (*image) = QImage(swidth, sheight, format); + bpl = image->bytesPerLine(); + bits = image->bits(); +- memset(bits, 0, image->byteCount()); ++ if (bits) ++ memset(bits, 0, image->byteCount()); + } + + // Check if the previous attempt to create the image failed. If it +@@ -409,6 +410,10 @@ int QGIFFormat::decode(QImage *image, co + backingstore = QImage(qMax(backingstore.width(), w), + qMax(backingstore.height(), h), + QImage::Format_RGB32); ++ if (backingstore.isNull()) { ++ state = Error; ++ return -1; ++ } + memset(bits, 0, image->byteCount()); + } + const int dest_bpl = backingstore.bytesPerLine(); diff --git a/CVE-2018-19873.patch b/CVE-2018-19873.patch new file mode 100644 index 0000000000000000000000000000000000000000..6c45fdece1efc1d15f6d41663c8bcaa54d869164 --- /dev/null +++ b/CVE-2018-19873.patch @@ -0,0 +1,27 @@ +From 621ab8ab59901cc3f9bd98be709929c9eac997a8 Mon Sep 17 00:00:00 2001 +From: Eirik Aavitsland +Date: Tue, 4 Sep 2018 11:08:06 +0200 +Subject: [PATCH] bmp image handler: check for out of range image size + +Make the decoder fail early to avoid spending time and memory on +attempting to decode a corrupt image file. + +Change-Id: I874e04f3b43122d73f8e58c7a5bcc4a741b68264 +Reviewed-by: Lars Knoll +--- + src/gui/image/qbmphandler.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +Index: qtbase-opensource-src-5.5.1+dfsg/src/gui/image/qbmphandler.cpp +=================================================================== +--- qtbase-opensource-src-5.5.1+dfsg.orig/src/gui/image/qbmphandler.cpp 2019-02-05 13:20:23.396119556 -0500 ++++ qtbase-opensource-src-5.5.1+dfsg/src/gui/image/qbmphandler.cpp 2019-02-05 13:20:23.392119539 -0500 +@@ -173,6 +173,8 @@ static bool read_dib_infoheader(QDataStr + if (!(comp == BMP_RGB || (nbits == 4 && comp == BMP_RLE4) || + (nbits == 8 && comp == BMP_RLE8) || ((nbits == 16 || nbits == 32) && comp == BMP_BITFIELDS))) + return false; // weird compression type ++ if (bi.biWidth < 0 || quint64(bi.biWidth) * qAbs(bi.biHeight) > 16384 * 16384) ++ return false; + + return true; + } diff --git a/qt.spec b/qt.spec index a0e1e1d20ee18060460be96e4d264a0e43b5e605..53cab37352b670616e22c678725f37af5c0d7d11 100644 --- a/qt.spec +++ b/qt.spec @@ -13,7 +13,7 @@ Name: qt Epoch: 1 Version: 4.8.7 -Release: 44 +Release: 45 Summary: A software toolkit for developing applications License: (LGPLv2 with exceptions or GPLv3 with exceptions) and ASL 2.0 and BSD and FTL and MIT URL: http://qt-project.org/ @@ -75,6 +75,8 @@ Patch42: qt-everywhere-opensource-src-4.8.6-systemtrayicon.patch Patch6000: CVE-2018-19869.patch Patch6001: CVE-2018-19872.patch Patch6002: CVE-2018-19871.patch +Patch6003: CVE-2018-19870.patch +Patch6004: CVE-2018-19873.patch BuildRequires: cups-devel desktop-file-utils gcc-c++ libjpeg-devel findutils libmng-devel libtiff-devel pkgconfig pkgconfig(alsa) BuildRequires: pkgconfig(dbus-1) pkgconfig(fontconfig) pkgconfig(glib-2.0) pkgconfig(icu-i18n) openssl-devel pkgconfig(libpng) @@ -441,6 +443,12 @@ fi %{_qt4_prefix}/examples/ %changelog +* Wed Dec 25 2019 zhouyihang - 1:4.8.7-45 +- Type:cves +- ID:CVE-2018-19870 CVE-2018-19873 +- SUG:restart +- DESC: fix CVE-2018-19870 CVE-2018-19873 + * Thu Dec 12 2019 shenyangyang - 1:4.8.7-44 - Type:enhancement - ID:NA