From ad28b1279655db5b0986a8d7ca331358a3e363d1 Mon Sep 17 00:00:00 2001 From: Sona Sarmadi Date: Tue, 29 Aug 2017 10:31:18 +0200 Subject: libarchive: fix for CVE-2016-10349, CVE-2016-10350 CVE-2016-10349: The archive_le32dec function in archive_endian.h in libarchive 3.2.2 allows remote attackers to cause a denial of service (heap-based buffer over-read and application crash) via a crafted file. Fixed by: https://github.com/libarchive/libarchive/commit/88eb9e1d73fef46f04677c25b1697b8e25777ed3 CVE-2016-10350: The archive_read_format_cab_read_header function in archive_read_support_format _cab.c in libarchive 3.2.2 allows remote attackers to cause a denial of service (heap-based buffer over-read and application crash) via a crafted file. Fixed by: https://github.com/libarchive/libarchive/commit/88eb9e1d73fef46f04677c25b1697b8e25777ed3 References: ========== https://security-tracker.debian.org/tracker/CVE-2016-10349 https://security-tracker.debian.org/tracker/CVE-2016-10350 Signed-off-by: Sona Sarmadi Signed-off-by: Adrian Dudau --- .../libarchive/CVE-2016-10349_CVE-2016-10350.patch | 40 ++++++++++++++++++++++ recipes-extended/libarchive/libarchive_%.bbappend | 1 + 2 files changed, 41 insertions(+) create mode 100644 recipes-extended/libarchive/libarchive/CVE-2016-10349_CVE-2016-10350.patch (limited to 'recipes-extended') diff --git a/recipes-extended/libarchive/libarchive/CVE-2016-10349_CVE-2016-10350.patch b/recipes-extended/libarchive/libarchive/CVE-2016-10349_CVE-2016-10350.patch new file mode 100644 index 0000000..f2a922d --- /dev/null +++ b/recipes-extended/libarchive/libarchive/CVE-2016-10349_CVE-2016-10350.patch @@ -0,0 +1,40 @@ +From 88eb9e1d73fef46f04677c25b1697b8e25777ed3 Mon Sep 17 00:00:00 2001 +From: Joerg Sonnenberger +Date: Thu, 1 Dec 2016 19:56:43 +0100 +Subject: [PATCH] Reread the CAB header skipping the self-extracting binary + code. + +Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=15 as found +by the "OSS-Fuzz" project. + +CVE: CVE-2016-10349 CVE-2016-10350 +Upstream-Status: Backport [https://github.com/libarchive/libarchive/commit/88eb9e1d73fef46f04677c25b1697b8e25777ed3] + +Signed-off-by: Sona Sarmadi +--- + libarchive/archive_read_support_format_cab.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/libarchive/archive_read_support_format_cab.c b/libarchive/archive_read_support_format_cab.c +index fc70684..099f4a8 100644 +--- a/libarchive/archive_read_support_format_cab.c ++++ b/libarchive/archive_read_support_format_cab.c +@@ -645,12 +645,13 @@ cab_read_header(struct archive_read *a) + cab = (struct cab *)(a->format->data); + if (cab->found_header == 0 && + p[0] == 'M' && p[1] == 'Z') { +- /* This is an executable? Must be self-extracting... */ ++ /* This is an executable? Must be self-extracting... */ + err = cab_skip_sfx(a); + if (err < ARCHIVE_WARN) + return (err); + +- if ((p = __archive_read_ahead(a, sizeof(*p), NULL)) == NULL) ++ /* Re-read header after processing the SFX. */ ++ if ((p = __archive_read_ahead(a, 42, NULL)) == NULL) + return (truncated_error(a)); + } + +-- +1.9.1 + diff --git a/recipes-extended/libarchive/libarchive_%.bbappend b/recipes-extended/libarchive/libarchive_%.bbappend index b57d134..6c273a6 100644 --- a/recipes-extended/libarchive/libarchive_%.bbappend +++ b/recipes-extended/libarchive/libarchive_%.bbappend @@ -2,4 +2,5 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" SRC_URI += "file://CVE-2017-5601.patch \ + file://CVE-2016-10349_CVE-2016-10350.patch \ " -- cgit v1.2.3-54-g00ecf