pull request for jethro
cover pull request for jethro
From: Armin Kuster <[email protected]>
please consider these last few security fixes for jethro next
The following changes since commit 049be17b533d7c592dae8e0f33ddbae54639a776:
libpcre: bug fixes include security (2016-01-30 12:13:10 +0000)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib akuster/jethro_cve_fixes
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=akuster/jethro_cve_fixes
Armin Kuster (8):
dpkg: Security fix CVE-2015-0860
libxml2: Security fix CVE-2015-8241
libxml2: Security fix CVE-2015-8710
bind: Security fix CVE-2015-8000
bind: Security fix CVE-2015-8461
librsvg: Security fix CVE-2015-7558
gdk-pixbuf: Security fix CVE-2015-7674
grub: Security fix CVE-2015-8370
meta/recipes-bsp/grub/files/CVE-2015-8370.patch | 59 +++++ meta/recipes-bsp/grub/grub2.inc | 1 + .../bind/bind/CVE-2015-8000.patch | 278 +++++++++++++++++++++ .../bind/bind/CVE-2015-8461.patch | 44 ++++ meta/recipes-connectivity/bind/bind_9.10.2-P4.bb | 2 + meta/recipes-core/libxml/libxml2.inc | 2 + .../libxml/libxml2/CVE-2015-8241.patch | 40 +++ .../libxml/libxml2/CVE-2015-8710.patch | 71 ++++++ .../recipes-devtools/dpkg/dpkg/CVE-2015-0860.patch | 52 ++++ meta/recipes-devtools/dpkg/dpkg_1.18.2.bb | 1 + .../gdk-pixbuf/gdk-pixbuf/CVE-2015-7674.patch | 39 +++ meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb | 1 + .../librsvg/librsvg/CVE-2015-7558_1.patch | 139 +++++++++++ .../librsvg/librsvg/CVE-2015-7558_2.patch | 230 +++++++++++++++++ .../librsvg/librsvg/CVE-2015-7558_3.patch | 223 +++++++++++++++++ meta/recipes-gnome/librsvg/librsvg_2.40.10.bb | 6 +- 16 files changed, 1187 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-bsp/grub/files/CVE-2015-8370.patch create mode 100644 meta/recipes-connectivity/bind/bind/CVE-2015-8000.patch create mode 100644 meta/recipes-connectivity/bind/bind/CVE-2015-8461.patch create mode 100644 meta/recipes-core/libxml/libxml2/CVE-2015-8241.patch create mode 100644 meta/recipes-core/libxml/libxml2/CVE-2015-8710.patch create mode 100644 meta/recipes-devtools/dpkg/dpkg/CVE-2015-0860.patch create mode 100644 meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/CVE-2015-7674.patch create mode 100644 meta/recipes-gnome/librsvg/librsvg/CVE-2015-7558_1.patch create mode 100644 meta/recipes-gnome/librsvg/librsvg/CVE-2015-7558_2.patch create mode 100644 meta/recipes-gnome/librsvg/librsvg/CVE-2015-7558_3.patch
Signature · 1 line
2.3.5
PATCH 1/8 dpkg: Security fix CVE-2015-0860
From: Armin Kuster <[email protected]>
CVE-2015-0860 dpkg: stack overflows and out of bounds read
--- .../recipes-devtools/dpkg/dpkg/CVE-2015-0860.patch | 52 ++++++++++++++++++++++ meta/recipes-devtools/dpkg/dpkg_1.18.2.bb | 1 + 2 files changed, 53 insertions(+) create mode 100644 meta/recipes-devtools/dpkg/dpkg/CVE-2015-0860.patch
meta/recipes-devtools/dpkg/dpkg/CVE-2015-0860.patch new file +52 -0
@@ -0,0 +1,52 @@ +From f1aac7d933819569bf6f347c3c0d5a64a90bbce0 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Hanno=20B=C3=B6ck?= <[email protected]> +Date: Thu, 19 Nov 2015 20:03:10 +0100 +Subject: [PATCH] dpkg-deb: Fix off-by-one write access on ctrllenbuf variable + +This affects old format .deb packages. + +Fixes: CVE-2015-0860 +Warned-by: afl +Signed-off-by: Guillem Jover <[email protected]> + +Upstream-Status: Backport + +https://anonscm.debian.org/cgit/dpkg/dpkg.git/commit/?h=wheezy&id=f1aac7d933819569bf6f347c3c0d5a64a90bbce0 + +CVE: CVE-2015-0860 + +hand merge Changelog + +Signed-off-by: Armin Kuster <[email protected]> + +--- + debian/changelog | 3 +++ + dpkg-deb/extract.c | 2 +- + 2 files changed, 4 insertions(+), 1 deletion(-) + +Index: dpkg-1.18.2/dpkg-deb/extract.c +=================================================================== +--- dpkg-1.18.2.orig/dpkg-deb/extract.c ++++ dpkg-1.18.2/dpkg-deb/extract.c +@@ -247,7 +247,7 @@ extracthalf(const char *debar, const cha + if (errstr) + ohshit(_("archive has invalid format version: %s"), errstr); + +- r = read_line(arfd, ctrllenbuf, 1, sizeof(ctrllenbuf)); ++ r = read_line(arfd, ctrllenbuf, 1, sizeof(ctrllenbuf) - 1); + if (r < 0) + read_fail(r, debar, _("archive control member size")); + if (sscanf(ctrllenbuf, "%jd%c%d", &ctrllennum, &nlc, &dummy) != 2 || +Index: dpkg-1.18.2/ChangeLog +=================================================================== +--- dpkg-1.18.2.orig/ChangeLog ++++ dpkg-1.18.2/ChangeLog +@@ -1,3 +1,8 @@ ++[ Guillem Jover ] ++ * Fix an off-by-one write access in dpkg-deb when parsing the old format ++ .deb control member size. Thanks to Hanno Böck <[email protected]>. ++ Fixes CVE-2015-0860. ++ + commit 5459d330c73cdcfd1327bc93c0ebddc2da4a3a3a (HEAD -> master, tag: 1.18.2) + Author: Guillem Jover <[email protected]> + Date: Mon Aug 3 15:41:05 2015 +0200
meta/recipes-devtools/dpkg/dpkg_1.18.2.bb +1 -0
@@ -12,6 +12,7 @@ SRC_URI += "file://noman.patch \ file://0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch \ file://0004-The-lutimes-function-doesn-t-work-properly-for-all-s.patch \ file://0005-dpkg-compiler.m4-remove-Wvla.patch \ + file://CVE-2015-0860.patch \ " SRC_URI[md5sum] = "63b9d869081ec49adeef6c5ff62d6576"
Signature · 1 line
2.3.5
PATCH 2/8 libxml2: Security fix CVE-2015-8241
In reply to Armin KusterFrom: Armin Kuster <[email protected]>
CVE-2015-8241 libxml2: Buffer overread with XML parser in xmlNextChar
--- meta/recipes-core/libxml/libxml2.inc | 1 + .../libxml/libxml2/CVE-2015-8241.patch | 40 ++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 meta/recipes-core/libxml/libxml2/CVE-2015-8241.patch
meta/recipes-core/libxml/libxml2.inc +1 -0
@@ -35,6 +35,7 @@ SRC_URI = "ftp://xmlsoft.org/libxml2/libxml2-${PV}.tar.gz;name=libtar \ file://0001-CVE-2015-7500-Fix-memory-access-error-due-to-incorre.patch \ file://0001-CVE-2015-8242-Buffer-overead-with-HTML-parser-in-pus.patch \ file://0001-CVE-2015-5312-Another-entity-expansion-issue.patch \ + file://CVE-2015-8241.patch \ " BINCONFIG = "${bindir}/xml2-config"
meta/recipes-core/libxml/libxml2/CVE-2015-8241.patch new file +40 -0
@@ -0,0 +1,40 @@ +From ab2b9a93ff19cedde7befbf2fcc48c6e352b6cbe Mon Sep 17 00:00:00 2001 +From: Hugh Davenport <[email protected]> +Date: Tue, 3 Nov 2015 20:40:49 +0800 +Subject: [PATCH] Avoid extra processing of MarkupDecl when EOF + +For https://bugzilla.gnome.org/show_bug.cgi?id=756263 + +One place where ctxt->instate == XML_PARSER_EOF whic was set up +by entity detection issues doesn't get noticed, and even overrided + +Upstream-status: Backport + +https://git.gnome.org/browse/libxml2/commit/?id=ab2b9a93ff19cedde7befbf2fcc48c6e352b6cbe + +CVE: CVE-2015-8241 +Signed-off-by: Armin Kuster <[email protected]> + +--- + parser.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +Index: libxml2-2.9.2/parser.c +=================================================================== +--- libxml2-2.9.2.orig/parser.c ++++ libxml2-2.9.2/parser.c +@@ -6999,6 +6999,14 @@ xmlParseMarkupDecl(xmlParserCtxtPtr ctxt + xmlParsePI(ctxt); + } + } ++ ++ /* ++ * detect requirement to exit there and act accordingly ++ * and avoid having instate overriden later on ++ */ ++ if (ctxt->instate == XML_PARSER_EOF) ++ return; ++ + /* + * This is only for internal subset. On external entities, + * the replacement is done before parsing stage
Signature · 1 line
2.3.5
PATCH 3/8 libxml2: Security fix CVE-2015-8710
In reply to Armin KusterFrom: Armin Kuster <[email protected]>
CVE-2015-8710 libxml2: out-of-bounds memory access when parsing an unclosed HTML comment
--- meta/recipes-core/libxml/libxml2.inc | 1 + .../libxml/libxml2/CVE-2015-8710.patch | 71 ++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 meta/recipes-core/libxml/libxml2/CVE-2015-8710.patch
meta/recipes-core/libxml/libxml2.inc +1 -0
@@ -36,6 +36,7 @@ SRC_URI = "ftp://xmlsoft.org/libxml2/libxml2-${PV}.tar.gz;name=libtar \ file://0001-CVE-2015-8242-Buffer-overead-with-HTML-parser-in-pus.patch \ file://0001-CVE-2015-5312-Another-entity-expansion-issue.patch \ file://CVE-2015-8241.patch \ + file://CVE-2015-8710.patch \ " BINCONFIG = "${bindir}/xml2-config"
meta/recipes-core/libxml/libxml2/CVE-2015-8710.patch new file +71 -0
71 lines not on this page · raw message
Signature · 1 line
2.3.5
PATCH 4/8 bind: Security fix CVE-2015-8000
In reply to Armin KusterFrom: Armin Kuster <[email protected]>
CVE-2015-8000 bind: responses with a malformed class attribute can trigger an assertion failure in db.c
--- .../bind/bind/CVE-2015-8000.patch | 278 +++++++++++++++++++++ meta/recipes-connectivity/bind/bind_9.10.2-P4.bb | 1 + 2 files changed, 279 insertions(+) create mode 100644 meta/recipes-connectivity/bind/bind/CVE-2015-8000.patch
meta/recipes-connectivity/bind/bind/CVE-2015-8000.patch new file +278 -0
@@ -0,0 +1,278 @@ +From 8259daad7242ab2af8731681177ef7e948a15ece Mon Sep 17 00:00:00 2001 +From: Mark Andrews <[email protected]> +Date: Mon, 16 Nov 2015 13:12:20 +1100 +Subject: [PATCH] 4260. [security] Insufficient testing when parsing a + message allowed records with an incorrect class to be + be accepted, triggering a REQUIRE failure when those + records were subsequently cached. (CVE-2015-8000) [RT + #4098] + +(cherry picked from commit c8821d124c532e0a65752b378f924d4259499fd3) +(cherry picked from commit 3a4c24c4a52d4a2d21d2decbde3d4e514e27d51c) + + +Upstream-Status: Backport + +https://source.isc.org/cgi-bin/gitweb.cgi?p=bind9.git;a=commit;h=8259daad7242ab2af8731681177ef7e948a15ece + +CVE: CVE-2015-8000 + +Signed-off-by: Armin Kuster <[email protected]> + +--- + CHANGES | 5 +++++ + bin/tests/system/start.pl | 5 ++++- + doc/arm/notes.xml | 9 +++++++++ + lib/dns/include/dns/message.h | 13 +++++++++++-- + lib/dns/message.c | 45 ++++++++++++++++++++++++++++++++++++++----- + lib/dns/resolver.c | 9 +++++++++ + lib/dns/xfrin.c | 2 ++ + 7 files changed, 80 insertions(+), 8 deletions(-) + +Index: bind-9.10.2-P4/bin/tests/system/start.pl +=================================================================== +--- bind-9.10.2-P4.orig/bin/tests/system/start.pl ++++ bind-9.10.2-P4/bin/tests/system/start.pl +@@ -68,6 +68,7 @@ my $NAMED = $ENV{'NAMED'}; + my $LWRESD = $ENV{'LWRESD'}; + my $DIG = $ENV{'DIG'}; + my $PERL = $ENV{'PERL'}; ++my $PYTHON = $ENV{'PYTHON'}; + + # Start the server(s) + +@@ -213,7 +214,9 @@ sub start_server { + $pid_file = "lwresd.pid"; + } elsif ($server =~ /^ans/) { + $cleanup_files = "{ans.run}"; +- if (-e "$testdir/$server/ans.pl") { ++ if (-e "$testdir/$server/ans.py") { ++ $command = "$PYTHON ans.py 10.53.0.$' 5300"; ++ } elsif (-e "$testdir/$server/ans.pl") { + $command = "$PERL ans.pl"; + } else { + $command = "$PERL $topdir/ans.pl 10.53.0.$'"; +Index: bind-9.10.2-P4/doc/arm/notes.xml +=================================================================== +--- bind-9.10.2-P4.orig/doc/arm/notes.xml ++++ bind-9.10.2-P4/doc/arm/notes.xml +@@ -62,6 +62,15 @@ + <itemizedlist> + <listitem> + <para> ++ Insufficient testing when parsing a message allowed ++ records with an incorrect class to be be accepted, ++ triggering a REQUIRE failure when those records ++ were subsequently cached. This flaw is disclosed ++ in CVE-2015-8000. [RT #4098] ++ </para> ++ </listitem> ++ <listitem> ++ <para> + An incorrect boundary check in the OPENPGPKEY rdatatype + could trigger an assertion failure. This flaw is disclosed + in CVE-2015-5986. [RT #40286] +Index: bind-9.10.2-P4/lib/dns/include/dns/message.h +=================================================================== +--- bind-9.10.2-P4.orig/lib/dns/include/dns/message.h ++++ bind-9.10.2-P4/lib/dns/include/dns/message.h +@@ -15,8 +15,6 @@ + * PERFORMANCE OF THIS SOFTWARE. + */ + +-/* $Id$ */ +- + #ifndef DNS_MESSAGE_H + #define DNS_MESSAGE_H 1 + +@@ -221,6 +219,8 @@ struct dns_message { + unsigned int free_saved : 1; + unsigned int sitok : 1; + unsigned int sitbad : 1; ++ unsigned int tkey : 1; ++ unsigned int rdclass_set : 1; + + unsigned int opt_reserved; + unsigned int sig_reserved; +@@ -1400,6 +1400,15 @@ dns_message_buildopt(dns_message_t *msg, + * \li other. + */ + ++void ++dns_message_setclass(dns_message_t *msg, dns_rdataclass_t rdclass); ++/*%< ++ * Set the expected class of records in the response. ++ * ++ * Requires: ++ * \li msg be a valid message with parsing intent. ++ */ ++ + ISC_LANG_ENDDECLS + + #endif /* DNS_MESSAGE_H */ +Index: bind-9.10.2-P4/lib/dns/message.c +=================================================================== +--- bind-9.10.2-P4.orig/lib/dns/message.c ++++ bind-9.10.2-P4/lib/dns/message.c +@@ -439,6 +439,8 @@ msginit(dns_message_t *m) { + m->free_saved = 0; + m->sitok = 0; + m->sitbad = 0; ++ m->tkey = 0; ++ m->rdclass_set = 0; + m->querytsig = NULL; + } + +@@ -1091,13 +1093,19 @@ getquestions(isc_buffer_t *source, dns_m + * If this class is different than the one we already read, + * this is an error. + */ +- if (msg->state == DNS_SECTION_ANY) { +- msg->state = DNS_SECTION_QUESTION; ++ if (msg->rdclass_set == 0) { + msg->rdclass = rdclass; ++ msg->rdclass_set = 1; + } else if (msg->rdclass != rdclass) + DO_FORMERR; + + /* ++ * Is this a TKEY query? ++ */ ++ if (rdtype == dns_rdatatype_tkey) ++ msg->tkey = 1; ++ ++ /* + * Can't ask the same question twice. + */ + result = dns_message_find(name, rdclass, rdtype, 0, NULL); +@@ -1241,12 +1249,12 @@ getsection(isc_buffer_t *source, dns_mes + * If there was no question section, we may not yet have + * established a class. Do so now. + */ +- if (msg->state == DNS_SECTION_ANY && ++ if (msg->rdclass_set == 0 && + rdtype != dns_rdatatype_opt && /* class is UDP SIZE */ + rdtype != dns_rdatatype_tsig && /* class is ANY */ + rdtype != dns_rdatatype_tkey) { /* class is undefined */ + msg->rdclass = rdclass; +- msg->state = DNS_SECTION_QUESTION; ++ msg->rdclass_set = 1; + } + + /* +@@ -1256,7 +1264,7 @@ getsection(isc_buffer_t *source, dns_mes + if (msg->opcode != dns_opcode_update + && rdtype != dns_rdatatype_tsig + && rdtype != dns_rdatatype_opt +- && rdtype != dns_rdatatype_dnskey /* in a TKEY query */ ++ && rdtype != dns_rdatatype_key /* in a TKEY query */ + && rdtype != dns_rdatatype_sig /* SIG(0) */ + && rdtype != dns_rdatatype_tkey /* Win2000 TKEY */ + && msg->rdclass != dns_rdataclass_any +@@ -1264,6 +1272,16 @@ getsection(isc_buffer_t *source, dns_mes + DO_FORMERR; + + /* ++ * If this is not a TKEY query/response then the KEY ++ * record's class needs to match. ++ */ ++ if (msg->opcode != dns_opcode_update && !msg->tkey && ++ rdtype == dns_rdatatype_key && ++ msg->rdclass != dns_rdataclass_any && ++ msg->rdclass != rdclass) ++ DO_FORMERR; ++ ++ /* + * Special type handling for TSIG, OPT, and TKEY. + */ + if (rdtype == dns_rdatatype_tsig) { +@@ -1377,6 +1395,10 @@ getsection(isc_buffer_t *source, dns_mes + skip_name_search = ISC_TRUE; + skip_type_search = ISC_TRUE; + issigzero = ISC_TRUE; ++ } else { ++ if (msg->rdclass != dns_rdataclass_any && ++ msg->rdclass != rdclass) ++ DO_FORMERR; + } + } else + covers = 0; +@@ -1625,6 +1647,7 @@ dns_message_parse(dns_message_t *msg, is + msg->counts[DNS_SECTION_ADDITIONAL] = isc_buffer_getuint16(source); + + msg->header_ok = 1; ++ msg->state = DNS_SECTION_QUESTION; + + /* + * -1 means no EDNS. +@@ -3706,3 +3729,15 @@ dns_message_buildopt(dns_message_t *mess + dns_message_puttemprdatalist(message, &rdatalist); + return (result); + } ++ ++void ++dns_message_setclass(dns_message_t *msg, dns_rdataclass_t rdclass) { ++ ++ REQUIRE(DNS_MESSAGE_VALID(msg)); ++ REQUIRE(msg->from_to_wire == DNS_MESSAGE_INTENTPARSE); ++ REQUIRE(msg->state == DNS_SECTION_ANY); ++ REQUIRE(msg->rdclass_set == 0); ++ ++ msg->rdclass = rdclass; ++ msg->rdclass_set = 1; ++} +Index: bind-9.10.2-P4/lib/dns/resolver.c +=================================================================== +--- bind-9.10.2-P4.orig/lib/dns/resolver.c ++++ bind-9.10.2-P4/lib/dns/resolver.c +@@ -7309,6 +7309,8 @@ resquery_response(isc_task_t *task, isc_ + goto done; + } + ++ dns_message_setclass(message, fctx->res->rdclass); ++ + if ((options & DNS_FETCHOPT_TCP) == 0) { + if ((options & DNS_FETCHOPT_NOEDNS0) == 0) + dns_adb_setudpsize(fctx->adb, query->addrinfo, +@@ -7391,6 +7393,13 @@ resquery_response(isc_task_t *task, isc_ + &dns_master_style_comment, + ISC_LOG_DEBUG(10), + fctx->res->mctx); ++ ++ if (message->rdclass != fctx->res->rdclass) { ++ resend = ISC_TRUE; ++ FCTXTRACE("bad class"); ++ goto done; ++ } ++ + /* + * Process receive opt record. + */ +Index: bind-9.10.2-P4/lib/dns/xfrin.c +=================================================================== +--- bind-9.10.2-P4.orig/lib/dns/xfrin.c ++++ bind-9.10.2-P4/lib/dns/xfrin.c +@@ -1225,6 +1225,8 @@ xfrin_recv_done(isc_task_t *task, isc_ev + msg->tsigctx = xfr->tsigctx; + xfr->tsigctx = NULL; + ++ dns_message_setclass(msg, xfr->rdclass); ++ + if (xfr->nmsg > 0) + msg->tcp_continuation = 1; + +Index: bind-9.10.2-P4/CHANGES +=================================================================== +--- bind-9.10.2-P4.orig/CHANGES ++++ bind-9.10.2-P4/CHANGES +@@ -1,4 +1,9 @@ +- --- 9.10.2-P4 released --- ++4260. [security] Insufficient testing when parsing a message allowed ++ records with an incorrect class to be be accepted, ++ triggering a REQUIRE failure when those records ++ were subsequently cached. (CVE-2015-8000) [RT #4098] ++ ++ --- 9.10.2-P4 released --- + + 4170. [security] An incorrect boundary check in the OPENPGPKEY + rdatatype could trigger an assertion failure.
meta/recipes-connectivity/bind/bind_9.10.2-P4.bb +1 -0
@@ -23,6 +23,7 @@ SRC_URI = "ftp://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.gz \ file://0001-lib-dns-gen.c-fix-too-long-error.patch \ file://CVE-2015-8704.patch \ file://CVE-2015-8705.patch \ + file://CVE-2015-8000.patch \ " SRC_URI[md5sum] = "8b1f5064837756c938eadc1537dec5c7"
Signature · 1 line
2.3.5
PATCH 5/8 bind: Security fix CVE-2015-8461
In reply to Armin KusterFrom: Armin Kuster <[email protected]>
CVE-2015-8461 bind: race condition when handling socket errors can lead to an assertion failure in resolver.c\
--- .../bind/bind/CVE-2015-8461.patch | 44 ++++++++++++++++++++++ meta/recipes-connectivity/bind/bind_9.10.2-P4.bb | 1 + 2 files changed, 45 insertions(+) create mode 100644 meta/recipes-connectivity/bind/bind/CVE-2015-8461.patch
meta/recipes-connectivity/bind/bind/CVE-2015-8461.patch new file +44 -0
@@ -0,0 +1,44 @@ +From adbf81335b67be0cebdcf9f1f4fcb38ef4814f4d Mon Sep 17 00:00:00 2001 +From: Mark Andrews <[email protected]> +Date: Thu, 25 Jun 2015 18:36:27 +1000 +Subject: [PATCH] 4146. [bug] Address reference leak that could + prevent a clean shutdown. [RT #37125] + +Upstream-Status: Backport + +https://source.isc.org/cgi-bin/gitweb.cgi?p=bind9.git;a=commit;h=adbf81335b67be0cebdcf9f1f4fcb38ef4814f4d + +CVE: CVE-2015-8461 +Signed-off-by: Armin Kuster <[email protected]> +--- + CHANGES | 3 +++ + lib/dns/resolver.c | 5 +++++ + 2 files changed, 8 insertions(+) + +Index: bind-9.10.2-P4/CHANGES +=================================================================== +--- bind-9.10.2-P4.orig/CHANGES ++++ bind-9.10.2-P4/CHANGES +@@ -1,3 +1,6 @@ ++4146. [bug] Address reference leak that could prevent a clean ++ shutdown. [RT #37125] ++ + 4260. [security] Insufficient testing when parsing a message allowed + records with an incorrect class to be be accepted, + triggering a REQUIRE failure when those records +Index: bind-9.10.2-P4/lib/dns/resolver.c +=================================================================== +--- bind-9.10.2-P4.orig/lib/dns/resolver.c ++++ bind-9.10.2-P4/lib/dns/resolver.c +@@ -1649,6 +1649,11 @@ fctx_query(fetchctx_t *fctx, dns_adbaddr + if (query->dispatch != NULL) + dns_dispatch_detach(&query->dispatch); + ++ LOCK(&res->buckets[fctx->bucketnum].lock); ++ INSIST(fctx->references > 1); ++ fctx->references--; ++ UNLOCK(&res->buckets[fctx->bucketnum].lock); ++ + cleanup_query: + if (query->connects == 0) { + query->magic = 0;
meta/recipes-connectivity/bind/bind_9.10.2-P4.bb +1 -0
@@ -24,6 +24,7 @@ SRC_URI = "ftp://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.gz \ file://CVE-2015-8704.patch \ file://CVE-2015-8705.patch \ file://CVE-2015-8000.patch \ + file://CVE-2015-8461.patch \ " SRC_URI[md5sum] = "8b1f5064837756c938eadc1537dec5c7"
Signature · 1 line
2.3.5
PATCH 6/8 librsvg: Security fix CVE-2015-7558
In reply to Armin KusterFrom: Armin Kuster <[email protected]>
CVE-2015-7558 librsvg2: Stack exhaustion causing DoS
including two supporting patches.
--- .../librsvg/librsvg/CVE-2015-7558_1.patch | 139 +++++++++++++ .../librsvg/librsvg/CVE-2015-7558_2.patch | 230 +++++++++++++++++++++ .../librsvg/librsvg/CVE-2015-7558_3.patch | 223 ++++++++++++++++++++ meta/recipes-gnome/librsvg/librsvg_2.40.10.bb | 6 +- 4 files changed, 597 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-gnome/librsvg/librsvg/CVE-2015-7558_1.patch create mode 100644 meta/recipes-gnome/librsvg/librsvg/CVE-2015-7558_2.patch create mode 100644 meta/recipes-gnome/librsvg/librsvg/CVE-2015-7558_3.patch
meta/recipes-gnome/librsvg/librsvg/CVE-2015-7558_1.patch new file +139 -0
@@ -0,0 +1,139 @@ +From d1c9191949747f6dcfd207831d15dd4ba00e31f2 Mon Sep 17 00:00:00 2001 +From: Benjamin Otte <[email protected]> +Date: Wed, 7 Oct 2015 05:31:08 +0200 +Subject: [PATCH] state: Store mask as reference + +Instead of immediately looking up the mask, store the reference and look +it up on use. + +Upstream-status: Backport + +supporting patch +https://git.gnome.org/browse/librsvg/commit/rsvg-styles.c?id=d1c9191949747f6dcfd207831d15dd4ba00e31f2 + +CVE: CVE-2015-7558 +Signed-off-by: Armin Kuster <[email protected]> + +--- + rsvg-cairo-draw.c | 6 +++++- + rsvg-mask.c | 17 ----------------- + rsvg-mask.h | 2 -- + rsvg-styles.c | 12 ++++++++---- + rsvg-styles.h | 2 +- + 5 files changed, 14 insertions(+), 25 deletions(-) + +Index: librsvg-2.40.10/rsvg-cairo-draw.c +=================================================================== +--- librsvg-2.40.10.orig/rsvg-cairo-draw.c ++++ librsvg-2.40.10/rsvg-cairo-draw.c +@@ -825,7 +825,11 @@ rsvg_cairo_pop_render_stack (RsvgDrawing + cairo_set_operator (render->cr, state->comp_op); + + if (state->mask) { +- rsvg_cairo_generate_mask (render->cr, state->mask, ctx, &render->bbox); ++ RsvgNode *mask; ++ ++ mask = rsvg_defs_lookup (ctx->defs, state->mask); ++ if (mask && RSVG_NODE_TYPE (mask) == RSVG_NODE_TYPE_MASK) ++ rsvg_cairo_generate_mask (render->cr, (RsvgMask *) mask, ctx, &render->bbox); + } else if (state->opacity != 0xFF) + cairo_paint_with_alpha (render->cr, (double) state->opacity / 255.0); + else +Index: librsvg-2.40.10/rsvg-mask.c +=================================================================== +--- librsvg-2.40.10.orig/rsvg-mask.c ++++ librsvg-2.40.10/rsvg-mask.c +@@ -103,23 +103,6 @@ rsvg_get_url_string (const char *str) + } + + RsvgNode * +-rsvg_mask_parse (const RsvgDefs * defs, const char *str) +-{ +- char *name; +- +- name = rsvg_get_url_string (str); +- if (name) { +- RsvgNode *val; +- val = rsvg_defs_lookup (defs, name); +- g_free (name); +- +- if (val && RSVG_NODE_TYPE (val) == RSVG_NODE_TYPE_MASK) +- return val; +- } +- return NULL; +-} +- +-RsvgNode * + rsvg_clip_path_parse (const RsvgDefs * defs, const char *str) + { + char *name; +Index: librsvg-2.40.10/rsvg-mask.h +=================================================================== +--- librsvg-2.40.10.orig/rsvg-mask.h ++++ librsvg-2.40.10/rsvg-mask.h +@@ -48,8 +48,6 @@ struct _RsvgMask { + + G_GNUC_INTERNAL + RsvgNode *rsvg_new_mask (void); +-G_GNUC_INTERNAL +-RsvgNode *rsvg_mask_parse (const RsvgDefs * defs, const char *str); + + typedef struct _RsvgClipPath RsvgClipPath; + +Index: librsvg-2.40.10/rsvg-styles.c +=================================================================== +--- librsvg-2.40.10.orig/rsvg-styles.c ++++ librsvg-2.40.10/rsvg-styles.c +@@ -221,6 +221,7 @@ rsvg_state_clone (RsvgState * dst, const + + *dst = *src; + dst->parent = parent; ++ dst->mask = g_strdup (src->mask); + dst->font_family = g_strdup (src->font_family); + dst->lang = g_strdup (src->lang); + rsvg_paint_server_ref (dst->fill); +@@ -356,7 +357,8 @@ rsvg_state_inherit_run (RsvgState * dst, + + if (inherituninheritables) { + dst->clip_path_ref = src->clip_path_ref; +- dst->mask = src->mask; ++ g_free (dst->mask); ++ dst->mask = g_strdup (src->mask); + dst->enable_background = src->enable_background; + dst->adobe_blend = src->adobe_blend; + dst->opacity = src->opacity; +@@ -444,6 +446,7 @@ rsvg_state_inherit (RsvgState * dst, con + void + rsvg_state_finalize (RsvgState * state) + { ++ g_free (state->mask); + g_free (state->font_family); + g_free (state->lang); + rsvg_paint_server_unref (state->fill); +@@ -517,9 +520,10 @@ rsvg_parse_style_pair (RsvgHandle * ctx, + state->adobe_blend = 11; + else + state->adobe_blend = 0; +- } else if (g_str_equal (name, "mask")) +- state->mask = rsvg_mask_parse (ctx->priv->defs, value); +- else if (g_str_equal (name, "clip-path")) { ++ } else if (g_str_equal (name, "mask")) { ++ g_free (state->mask); ++ state->mask = rsvg_get_url_string (value); ++ } else if (g_str_equal (name, "clip-path")) { + state->clip_path_ref = rsvg_clip_path_parse (ctx->priv->defs, value); + } else if (g_str_equal (name, "overflow")) { + if (!g_str_equal (value, "inherit")) { +Index: librsvg-2.40.10/rsvg-styles.h +=================================================================== +--- librsvg-2.40.10.orig/rsvg-styles.h ++++ librsvg-2.40.10/rsvg-styles.h +@@ -80,7 +80,7 @@ struct _RsvgState { + cairo_matrix_t personal_affine; + + RsvgFilter *filter; +- void *mask; ++ char *mask; + void *clip_path_ref; + guint8 adobe_blend; /* 0..11 */ + guint8 opacity; /* 0..255 */
meta/recipes-gnome/librsvg/librsvg/CVE-2015-7558_2.patch new file +230 -0
230 lines not on this page · raw message
meta/recipes-gnome/librsvg/librsvg/CVE-2015-7558_3.patch new file +223 -0
223 lines not on this page · raw message
meta/recipes-gnome/librsvg/librsvg_2.40.10.bb +5 -1
@@ -12,7 +12,11 @@ BBCLASSEXTEND = "native" inherit autotools pkgconfig gnomebase gtk-doc pixbufcache -SRC_URI += "file://gtk-option.patch" +SRC_URI += "file://gtk-option.patch \ + file://CVE-2015-7558_1.patch \ + file://CVE-2015-7558_2.patch \ + file://CVE-2015-7558_3.patch \ + " SRC_URI[archive.md5sum] = "fadebe2e799ab159169ee3198415ff85" SRC_URI[archive.sha256sum] = "965c807438ce90b204e930ff80c92eba1606a2f6fd5ccfd09335c99896dd3479"
Signature · 1 line
2.3.5
PATCH 7/8 gdk-pixbuf: Security fix CVE-2015-7674
In reply to Armin KusterFrom: Armin Kuster <[email protected]>
CVE-2015-7674 Heap overflow with a gif file in gdk-pixbuf < 2.32.1
--- .../gdk-pixbuf/gdk-pixbuf/CVE-2015-7674.patch | 39 ++++++++++++++++++++++ meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb | 1 + 2 files changed, 40 insertions(+) create mode 100644 meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/CVE-2015-7674.patch
meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/CVE-2015-7674.patch new file +39 -0
@@ -0,0 +1,39 @@ +From e9a5704edaa9aee9498f1fbf6e1b70fcce2e55aa Mon Sep 17 00:00:00 2001 +From: Benjamin Otte <[email protected]> +Date: Tue, 22 Sep 2015 22:44:51 +0200 +Subject: [PATCH] pixops: Don't overflow variables when shifting them + +If we shift by 16 bits we need to be sure those 16 bits actually exist. +They do now. + +Upstream-status: Backport +https://git.gnome.org/browse/gdk-pixbuf/commit/?id=e9a5704edaa9aee9498f1fbf6e1b70fcce2e55aa + +CVE: CVE-2015-7674 +Signed-off-by: Armin Kuster <[email protected]> + +--- + gdk-pixbuf/pixops/pixops.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +Index: gdk-pixbuf-2.30.8/gdk-pixbuf/pixops/pixops.c +=================================================================== +--- gdk-pixbuf-2.30.8.orig/gdk-pixbuf/pixops/pixops.c ++++ gdk-pixbuf-2.30.8/gdk-pixbuf/pixops/pixops.c +@@ -264,11 +264,11 @@ pixops_scale_nearest (guchar *des + double scale_x, + double scale_y) + { +- int i; +- int x; +- int x_step = (1 << SCALE_SHIFT) / scale_x; +- int y_step = (1 << SCALE_SHIFT) / scale_y; +- int xmax, xstart, xstop, x_pos, y_pos; ++ gint64 i; ++ gint64 x; ++ gint64 x_step = (1 << SCALE_SHIFT) / scale_x; ++ gint64 y_step = (1 << SCALE_SHIFT) / scale_y; ++ gint64 xmax, xstart, xstop, x_pos, y_pos; + const guchar *p; + + #define INNER_LOOP(SRC_CHANNELS,DEST_CHANNELS,ASSIGN_PIXEL) \
meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb +1 -0
@@ -18,6 +18,7 @@ SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ file://run-ptest \ file://fatal-loader.patch \ file://0001-pixops-Be-more-careful-about-integer-overflow.patch \ + file://CVE-2015-7674.patch \ " SRC_URI[md5sum] = "4fed0d54432f1b69fc6e66e608bd5542"
Signature · 1 line
2.3.5
PATCH 8/8 grub: Security fix CVE-2015-8370
In reply to Armin KusterFrom: Armin Kuster <[email protected]>
CVE-2015-8370 grub2: buffer overflow when checking password entered during bootup
--- meta/recipes-bsp/grub/files/CVE-2015-8370.patch | 59 +++++++++++++++++++++++++ meta/recipes-bsp/grub/grub2.inc | 1 + 2 files changed, 60 insertions(+) create mode 100644 meta/recipes-bsp/grub/files/CVE-2015-8370.patch
meta/recipes-bsp/grub/files/CVE-2015-8370.patch new file +59 -0
@@ -0,0 +1,59 @@ +From 451d80e52d851432e109771bb8febafca7a5f1f2 Mon Sep 17 00:00:00 2001 +From: Hector Marco-Gisbert <[email protected]> +Date: Wed, 16 Dec 2015 07:57:18 +0300 +Subject: [PATCH] Fix security issue when reading username and password + +This patch fixes two integer underflows at: + * grub-core/lib/crypto.c + * grub-core/normal/auth.c + +CVE-2015-8370 + +Signed-off-by: Hector Marco-Gisbert <[email protected]> +Signed-off-by: Ismael Ripoll-Ripoll <[email protected]> +Also-By: Andrey Borzenkov <[email protected]> + +Upstream-Status: Backport + +http://git.savannah.gnu.org/cgit/grub.git/commit/?id=451d80e52d851432e109771bb8febafca7a5f1f2 + +CVE: CVE-2015-8370 +Signed-off-by: Armin Kuster <[email protected]> + +--- + grub-core/lib/crypto.c | 3 ++- + grub-core/normal/auth.c | 7 +++++-- + 2 files changed, 7 insertions(+), 3 deletions(-) + +Index: git/grub-core/lib/crypto.c +=================================================================== +--- git.orig/grub-core/lib/crypto.c ++++ git/grub-core/lib/crypto.c +@@ -458,7 +458,8 @@ grub_password_get (char buf[], unsigned + + if (key == '\b') + { +- cur_len--; ++ if (cur_len) ++ cur_len--; + continue; + } + +Index: git/grub-core/normal/auth.c +=================================================================== +--- git.orig/grub-core/normal/auth.c ++++ git/grub-core/normal/auth.c +@@ -174,8 +174,11 @@ grub_username_get (char buf[], unsigned + + if (key == '\b') + { +- cur_len--; +- grub_printf ("\b"); ++ if (cur_len) ++ { ++ cur_len--; ++ grub_printf ("\b"); ++ } + continue; + } +
meta/recipes-bsp/grub/grub2.inc +1 -0
@@ -27,6 +27,7 @@ SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \ file://0001-Unset-need_charset_alias-when-building-for-musl.patch \ file://0001-parse_dhcp_vendor-Add-missing-const-qualifiers.patch \ file://grub2-fix-initrd-size-bug.patch \ + file://CVE-2015-8370.patch \ " DEPENDS = "flex-native bison-native xz"
Signature · 1 line
2.3.5