From 2db59ec8a8b4d358802e98ce0151af84d7b93752 Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Wed, 23 May 2018 08:43:48 +0200 Subject: [PATCH] Disallow loading of external DTD Resolves CVE-2016-5002 --- ...erialization-of-ex-serializable-tags.patch | 2 +- xmlrpc-disallow-loading-external-dtd.patch | 30 +++++++++++++++++++ xmlrpc.spec | 4 +++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 xmlrpc-disallow-loading-external-dtd.patch diff --git a/xmlrpc-disallow-deserialization-of-ex-serializable-tags.patch b/xmlrpc-disallow-deserialization-of-ex-serializable-tags.patch index 5018eb6..53a0a98 100644 --- a/xmlrpc-disallow-deserialization-of-ex-serializable-tags.patch +++ b/xmlrpc-disallow-deserialization-of-ex-serializable-tags.patch @@ -1,7 +1,7 @@ From 495d6136d9de5c0bbddadffe11b0841c6aafcb34 Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Fri, 18 May 2018 15:22:49 +0200 -Subject: [PATCH] Disallow deserialization of tags +Subject: [PATCH 1/2] Disallow deserialization of tags Can be reenabled by setting JVM property org.apache.xmlrpc.allowInsecureDeserialization to 1. diff --git a/xmlrpc-disallow-loading-external-dtd.patch b/xmlrpc-disallow-loading-external-dtd.patch new file mode 100644 index 0000000..f59b9c0 --- /dev/null +++ b/xmlrpc-disallow-loading-external-dtd.patch @@ -0,0 +1,30 @@ +From 338ab231b228bd36afda4ab31db724c6669579b2 Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Tue, 22 May 2018 10:53:28 +0200 +Subject: [PATCH 2/2] Disallow loading external DTD + +--- + .../src/main/java/org/apache/xmlrpc/util/SAXParsers.java | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/common/src/main/java/org/apache/xmlrpc/util/SAXParsers.java b/common/src/main/java/org/apache/xmlrpc/util/SAXParsers.java +index b1034e7..49ef5de 100644 +--- a/common/src/main/java/org/apache/xmlrpc/util/SAXParsers.java ++++ b/common/src/main/java/org/apache/xmlrpc/util/SAXParsers.java +@@ -48,6 +48,13 @@ public class SAXParsers { + } catch (org.xml.sax.SAXException e) { + // Ignore it + } ++ try { ++ spf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); ++ } catch (javax.xml.parsers.ParserConfigurationException e) { ++ // Ignore it ++ } catch (org.xml.sax.SAXException e) { ++ // Ignore it ++ } + } + + /** Creates a new instance of {@link XMLReader}. +-- +2.17.0 + diff --git a/xmlrpc.spec b/xmlrpc.spec index ccad587..7b3b456 100644 --- a/xmlrpc.spec +++ b/xmlrpc.spec @@ -13,6 +13,7 @@ Patch1: %{name}-common-addosgimanifest.patch Patch2: %{name}-javax-methods.patch Patch3: %{name}-server-addosgimanifest.patch Patch4: %{name}-disallow-deserialization-of-ex-serializable-tags.patch +Patch5: %{name}-disallow-loading-external-dtd.patch BuildRequires: maven-local BuildRequires: mvn(org.apache:apache:pom:) @@ -74,6 +75,7 @@ pushd server %patch3 -b .sav popd %patch4 -p1 +%patch5 -p1 sed -i 's/\r//' LICENSE.txt @@ -106,6 +108,8 @@ sed -i 's/\r//' LICENSE.txt * Fri May 18 2018 Michael Simacek - 1:3.1.3-20 - Disallow deserialization of tags by default - Resolves CVE-2016-5003 +- Disallow loading of external DTD +- Resolves CVE-2016-5002 * Fri Feb 09 2018 Fedora Release Engineering - 1:3.1.3-19 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild