blob: f4113efba9f5425524d4507ec9aa91f0eab1cc1a [file] [log] [blame]
Patrick Williamsf1e5d692016-03-30 15:21:19 -05001From 7ca19df892ca22d9314e95d59ce2abdeff46b617 Mon Sep 17 00:00:00 2001
2From: Daniel Veillard <veillard@redhat.com>
3Date: Thu, 29 Oct 2015 19:33:23 +0800
4Subject: Fix for type confusion in preprocessing attributes
5
6CVE-2015-7995 http://www.openwall.com/lists/oss-security/2015/10/27/10
7We need to check that the parent node is an element before dereferencing
8its namespace
9
10Upstream-Status: Backport
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050011CVE: CVE-2015-7995
Patrick Williamsf1e5d692016-03-30 15:21:19 -050012
13https://git.gnome.org/browse/libxslt/commit/?id=7ca19df892ca22d9314e95d59ce2abdeff46b617
14
15Signed-off-by: Armin Kuster <akuster@mvista.com>
16
17---
18 libxslt/preproc.c | 3 ++-
19 1 file changed, 2 insertions(+), 1 deletion(-)
20
21Index: libxslt-1.1.28/libxslt/preproc.c
22===================================================================
23--- libxslt-1.1.28.orig/libxslt/preproc.c
24+++ libxslt-1.1.28/libxslt/preproc.c
25@@ -2245,7 +2245,8 @@ xsltStylePreCompute(xsltStylesheetPtr st
26 } else if (IS_XSLT_NAME(inst, "attribute")) {
27 xmlNodePtr parent = inst->parent;
28
29- if ((parent == NULL) || (parent->ns == NULL) ||
30+ if ((parent == NULL) ||
31+ (parent->type != XML_ELEMENT_NODE) || (parent->ns == NULL) ||
32 ((parent->ns != inst->ns) &&
33 (!xmlStrEqual(parent->ns->href, inst->ns->href))) ||
34 (!xmlStrEqual(parent->name, BAD_CAST "attribute-set"))) {