From 4e1ea576167520bbc2bad50797119983e133af74 Mon Sep 17 00:00:00 2001 From: David Drysdale Date: Fri, 20 Nov 2015 11:13:45 +0800 Subject: [PATCH] CVE-2015-5312 Another entity expansion issue To: libvir-list@redhat.com For https://bugzilla.gnome.org/show_bug.cgi?id=756733 It is one case where the code in place to detect entities expansions failed to exit when the situation was detected, leading to DoS Problem reported by Kostya Serebryany @ Google Patch provided by David Drysdale @ Google Signed-off-by: Daniel Veillard --- parser.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/parser.c b/parser.c index a58dda3..e536e54 100644 --- a/parser.c +++ b/parser.c @@ -2801,6 +2801,10 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, 0, 0, 0); ctxt->depth--; + if ((ctxt->lastError.code == XML_ERR_ENTITY_LOOP) || + (ctxt->lastError.code == XML_ERR_INTERNAL_ERROR)) + goto int_error; + if (rep != NULL) { current = rep; while (*current != 0) { /* non input consuming loop */ -- 2.5.0