Package: qtbase-opensource-src / 5.7.1+dfsg-3+deb9u2

CVE-2018-19873.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
From c9b9f663d7243988bcb5fee9180ea9cb3a321a86 Mon Sep 17 00:00:00 2001
From: Eirik Aavitsland <eirik.aavitsland@qt.io>
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 <lars.knoll@qt.io>
(cherry picked from commit 621ab8ab59901cc3f9bd98be709929c9eac997a8)
Reviewed-by: Liang Qi <liang.qi@qt.io>
(cherry picked from commit 5104a529ce5aea5e94101770ece188b98f20baaa)
---
 src/gui/image/qbmphandler.cpp |    2 ++
 1 file changed, 2 insertions(+)

--- a/src/gui/image/qbmphandler.cpp
+++ b/src/gui/image/qbmphandler.cpp
@@ -179,6 +179,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;
 }