]> code.ossystems Code Review - openembedded-core.git/commitdiff
libarchive: CVE-2017-14503
authorJagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
Wed, 22 Aug 2018 13:19:59 +0000 (18:49 +0530)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 29 Aug 2018 14:22:26 +0000 (15:22 +0100)
Reject LHA archive entries with negative size.

Affects libarchive = 3.3.2

Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
meta/recipes-extended/libarchive/libarchive/CVE-2017-14503.patch [new file with mode: 0644]
meta/recipes-extended/libarchive/libarchive_3.3.2.bb

diff --git a/meta/recipes-extended/libarchive/libarchive/CVE-2017-14503.patch b/meta/recipes-extended/libarchive/libarchive/CVE-2017-14503.patch
new file mode 100644 (file)
index 0000000..42fa68c
--- /dev/null
@@ -0,0 +1,33 @@
+From 2c8c83b9731ff822fad6cc8c670ea5519c366a14 Mon Sep 17 00:00:00 2001
+From: Joerg Sonnenberger <joerg@bec.de>
+Date: Thu, 19 Jul 2018 21:14:53 +0200
+Subject: [PATCH] Reject LHA archive entries with negative size.
+
+CVE: CVE-2017-14503
+Upstream-Status: Backport [https://github.com/libarchive/libarchive/commit/2c8c83b9731ff822fad6cc8c670ea5519c366a14]
+
+Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
+---
+ libarchive/archive_read_support_format_lha.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/libarchive/archive_read_support_format_lha.c b/libarchive/archive_read_support_format_lha.c
+index b8ef4ae1..95c99bb1 100644
+--- a/libarchive/archive_read_support_format_lha.c
++++ b/libarchive/archive_read_support_format_lha.c
+@@ -701,6 +701,12 @@ archive_read_format_lha_read_header(struct archive_read *a,
+        * Prepare variables used to read a file content.
+        */
+       lha->entry_bytes_remaining = lha->compsize;
++      if (lha->entry_bytes_remaining < 0) {
++              archive_set_error(&a->archive,
++                  ARCHIVE_ERRNO_FILE_FORMAT,
++                  "Invalid LHa entry size");
++              return (ARCHIVE_FATAL);
++      }
+       lha->entry_offset = 0;
+       lha->entry_crc_calculated = 0;
+-- 
+2.13.3
+
index 5daca2731ec77d6b058c8c902015a1a0695e8c4d..326971647394da783de19d303745ad9264ca1009 100644 (file)
@@ -36,6 +36,7 @@ SRC_URI = "http://libarchive.org/downloads/libarchive-${PV}.tar.gz \
            file://CVE-2017-14166.patch \
            file://CVE-2017-14502.patch \
            file://non-recursive-extract-and-list.patch \
+           file://CVE-2017-14503.patch \
           "
 
 SRC_URI[md5sum] = "4583bd6b2ebf7e0e8963d90879eb1b27"