505a70edbe
Fixes the following security vulnerablities: - CVE-2018-1000222: Libgd version 2.2.5 contains a Double Free Vulnerability vulnerability in gdImageBmpPtr Function that can result in Remote Code Execution . This attack appear to be exploitable via Specially Crafted Jpeg Image can trigger double free - CVE-2018-5711: gd_gif_in.c in the GD Graphics Library (aka libgd), as used in PHP before 5.6.33, 7.0.x before 7.0.27, 7.1.x before 7.1.13, and 7.2.x before 7.2.1, has an integer signedness error that leads to an infinite loop via a crafted GIF file, as demonstrated by a call to the imagecreatefromgif or imagecreatefromstring PHP function - CVE-2019-11038: When using the gdImageCreateFromXbm() function in the GD Graphics Library (aka LibGD) 2.2.5, as used in the PHP GD extension in PHP versions 7.1.x below 7.1.30, 7.2.x below 7.2.19 and 7.3.x below 7.3.6, it is possible to supply data that will cause the function to use the value of uninitialized variable. This may lead to disclosing contents of the stack that has been left there by previous code - CVE-2019-6978: The GD Graphics Library (aka LibGD) 2.2.5 has a double free in the gdImage*Ptr() functions in gd_gif_out.c, gd_jpeg.c, and gd_wbmp.c Signed-off-by: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
42 lines
1.3 KiB
Diff
42 lines
1.3 KiB
Diff
From e13a342c079aeb73e31dfa19eaca119761bac3f3 Mon Sep 17 00:00:00 2001
|
|
From: Jonas Meurer <jonas@freesources.org>
|
|
Date: Tue, 11 Jun 2019 12:16:46 +0200
|
|
Subject: [PATCH] Fix #501: Uninitialized read in gdImageCreateFromXbm
|
|
(CVE-2019-11038)
|
|
|
|
Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2019-11038
|
|
Bug-Debian: https://bugs.debian.org/929821
|
|
Bug: https://github.com/libgd/libgd/issues/501
|
|
|
|
We have to ensure that `sscanf()` does indeed read a hex value here,
|
|
and bail out otherwise.
|
|
|
|
Original patch by Christoph M. Becker <cmbecker69@gmx.de> for PHP libgd ext.
|
|
https://git.php.net/?p=php-src.git;a=commit;h=ed6dee9a198c904ad5e03113e58a2d2c200f5184
|
|
|
|
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
|
---
|
|
src/gd_xbm.c | 6 +++++-
|
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/gd_xbm.c b/src/gd_xbm.c
|
|
index 4ca41ac..cf0545e 100644
|
|
--- a/src/gd_xbm.c
|
|
+++ b/src/gd_xbm.c
|
|
@@ -169,7 +169,11 @@ BGD_DECLARE(gdImagePtr) gdImageCreateFromXbm(FILE * fd)
|
|
}
|
|
h[3] = ch;
|
|
}
|
|
- sscanf(h, "%x", &b);
|
|
+ if (sscanf(h, "%x", &b) != 1) {
|
|
+ gd_error("invalid XBM");
|
|
+ gdImageDestroy(im);
|
|
+ return 0;
|
|
+ }
|
|
for (bit = 1; bit <= max_bit; bit = bit << 1) {
|
|
gdImageSetPixel(im, x++, y, (b & bit) ? 1 : 0);
|
|
if (x == im->sx) {
|
|
--
|
|
2.20.1
|
|
|