mirror of
https://git.yoctoproject.org/poky
synced 2026-04-21 12:32:15 +02:00
libxml2: fix CVE-2014-0191
It was discovered that libxml2, a library providing support to read, modify and write XML files, incorrectly performs entity substituton in the doctype prolog, even if the application using libxml2 disabled any entity substitution. A remote attacker could provide a specially-crafted XML file that, when processed, would lead to the exhaustion of CPU and memory resources or file descriptors. Reference: https://access.redhat.com/security/cve/CVE-2014-0191 (From OE-Core rev: 674bd59d5e357a4aba18c472ac21712a660a84af) (From OE-Core rev: 51f674ab1f7dac049060c58f89e84c5d1275a87b) Signed-off-by: Maxin B. John <maxin.john@enea.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
2784c08229
commit
090cb60d49
@@ -18,6 +18,7 @@ SRC_URI = "ftp://xmlsoft.org/libxml2/libxml2-${PV}.tar.gz;name=libtar \
|
||||
file://ansidecl.patch \
|
||||
file://runtest.patch \
|
||||
file://run-ptest \
|
||||
file://libxml2-CVE-2014-0191-fix.patch \
|
||||
"
|
||||
|
||||
inherit autotools pkgconfig binconfig pythonnative ptest
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
From: Daniel Veillard <veillard@redhat.com>
|
||||
Date: Tue, 22 Apr 2014 15:30:56 +0800
|
||||
Subject: Do not fetch external parameter entities
|
||||
|
||||
Unless explicitely asked for when validating or replacing entities
|
||||
with their value. Problem pointed out by Daniel Berrange <berrange@redhat.com>
|
||||
|
||||
Upstream-Status: Backport
|
||||
Reference: https://access.redhat.com/security/cve/CVE-2014-0191
|
||||
|
||||
Signed-off-by: Daniel Veillard <veillard@redhat.com>
|
||||
Signed-off-by: Maxin B. John <maxin.john@enea.com>
|
||||
---
|
||||
diff -Naur libxml2-2.9.1-orig/parser.c libxml2-2.9.1/parser.c
|
||||
--- libxml2-2.9.1-orig/parser.c 2013-04-16 15:39:18.000000000 +0200
|
||||
+++ libxml2-2.9.1/parser.c 2014-05-07 13:35:46.883687946 +0200
|
||||
@@ -2595,6 +2595,20 @@
|
||||
xmlCharEncoding enc;
|
||||
|
||||
/*
|
||||
+ * Note: external parsed entities will not be loaded, it is
|
||||
+ * not required for a non-validating parser, unless the
|
||||
+ * option of validating, or substituting entities were
|
||||
+ * given. Doing so is far more secure as the parser will
|
||||
+ * only process data coming from the document entity by
|
||||
+ * default.
|
||||
+ */
|
||||
+ if ((entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) &&
|
||||
+ ((ctxt->options & XML_PARSE_NOENT) == 0) &&
|
||||
+ ((ctxt->options & XML_PARSE_DTDVALID) == 0) &&
|
||||
+ (ctxt->validate == 0))
|
||||
+ return;
|
||||
+
|
||||
+ /*
|
||||
* handle the extra spaces added before and after
|
||||
* c.f. http://www.w3.org/TR/REC-xml#as-PE
|
||||
* this is done independently.
|
||||
Reference in New Issue
Block a user