Hi, I have prepared a security update for libpdfbox-java (Jessie). Please find attached the proposed debdiff. Regards, Markus
diff -Nru libpdfbox-java-1.8.7+dfsg/debian/changelog libpdfbox-java-1.8.7+dfsg/debian/changelog
--- libpdfbox-java-1.8.7+dfsg/debian/changelog 2014-09-19 17:22:46.000000000 +0200
+++ libpdfbox-java-1.8.7+dfsg/debian/changelog 2016-06-12 14:43:29.000000000 +0200
@@ -1,3 +1,16 @@
+libpdfbox-java (1:1.8.7+dfsg-1+deb8u1) jessie-security; urgency=high
+
+ * Team upload
+ * Fix CVE-2016-2175:
+ Apache PDFBox did not properly initialize the XML parsers, which allows
+ context-dependent attackers to conduct XML External Entity (XXE) attacks
+ via a crafted PDF. This may lead to the disclosure of confidential data,
+ denial of service, server side request forgery, port scanning from the
+ perspective of the machine where the parser is located, and other system
+ impacts.
+
+ -- Markus Koschany <apo@debian.org> Sun, 12 Jun 2016 14:42:07 +0200
+
libpdfbox-java (1:1.8.7+dfsg-1) unstable; urgency=medium
* New upstream release.
diff -Nru libpdfbox-java-1.8.7+dfsg/debian/patches/CVE-2016-2175.patch libpdfbox-java-1.8.7+dfsg/debian/patches/CVE-2016-2175.patch
--- libpdfbox-java-1.8.7+dfsg/debian/patches/CVE-2016-2175.patch 1970-01-01 01:00:00.000000000 +0100
+++ libpdfbox-java-1.8.7+dfsg/debian/patches/CVE-2016-2175.patch 2016-06-12 14:43:29.000000000 +0200
@@ -0,0 +1,98 @@
+From: Markus Koschany <apo@debian.org>
+Date: Sun, 12 Jun 2016 14:40:37 +0200
+Subject: CVE-2016-2175
+
+Properly initialize the xml parsers.
+
+Origin: https://svn.apache.org/viewvc?view=revision&revision=1739564
+---
+ jempbox/src/main/java/org/apache/jempbox/impl/XMLUtil.java | 6 ++++++
+ .../java/org/apache/pdfbox/pdmodel/interactive/form/PDXFA.java | 6 ++++++
+ pdfbox/src/main/java/org/apache/pdfbox/util/XMLUtil.java | 6 ++++++
+ xmpbox/src/main/java/org/apache/xmpbox/xml/DomXmpParser.java | 8 ++++++--
+ 4 files changed, 24 insertions(+), 2 deletions(-)
+
+diff --git a/jempbox/src/main/java/org/apache/jempbox/impl/XMLUtil.java b/jempbox/src/main/java/org/apache/jempbox/impl/XMLUtil.java
+index 07db2b7..8759902 100644
+--- a/jempbox/src/main/java/org/apache/jempbox/impl/XMLUtil.java
++++ b/jempbox/src/main/java/org/apache/jempbox/impl/XMLUtil.java
+@@ -71,6 +71,12 @@ public class XMLUtil
+ try
+ {
+ DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
++ builderFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
++ builderFactory.setFeature("http://xml.org/sax/features/external-general-entities", false);
++ builderFactory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
++ builderFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
++ builderFactory.setXIncludeAware(false);
++ builderFactory.setExpandEntityReferences(false);
+ DocumentBuilder builder = builderFactory.newDocumentBuilder();
+ return builder.parse( is );
+ }
+diff --git a/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDXFA.java b/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDXFA.java
+index 23cdf71..d1c7be0 100644
+--- a/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDXFA.java
++++ b/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDXFA.java
+@@ -148,6 +148,12 @@ public class PDXFA implements COSObjectable
+ public Document getDocument() throws ParserConfigurationException, SAXException, IOException
+ {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
++ factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
++ factory.setFeature("http://xml.org/sax/features/external-general-entities", false);
++ factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
++ factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
++ factory.setXIncludeAware(false);
++ factory.setExpandEntityReferences(false);
+ factory.setNamespaceAware(true);
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document xfaDocument = builder.parse(new ByteArrayInputStream(this.getBytes()));
+diff --git a/pdfbox/src/main/java/org/apache/pdfbox/util/XMLUtil.java b/pdfbox/src/main/java/org/apache/pdfbox/util/XMLUtil.java
+index ae6c6df..49a207b 100644
+--- a/pdfbox/src/main/java/org/apache/pdfbox/util/XMLUtil.java
++++ b/pdfbox/src/main/java/org/apache/pdfbox/util/XMLUtil.java
+@@ -56,6 +56,12 @@ public class XMLUtil
+ try
+ {
+ DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
++ builderFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
++ builderFactory.setFeature("http://xml.org/sax/features/external-general-entities", false);
++ builderFactory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
++ builderFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
++ builderFactory.setXIncludeAware(false);
++ builderFactory.setExpandEntityReferences(false);
+ DocumentBuilder builder = builderFactory.newDocumentBuilder();
+ return builder.parse( is );
+ }
+diff --git a/xmpbox/src/main/java/org/apache/xmpbox/xml/DomXmpParser.java b/xmpbox/src/main/java/org/apache/xmpbox/xml/DomXmpParser.java
+index b0256f4..5ee4a9c 100644
+--- a/xmpbox/src/main/java/org/apache/xmpbox/xml/DomXmpParser.java
++++ b/xmpbox/src/main/java/org/apache/xmpbox/xml/DomXmpParser.java
+@@ -67,7 +67,6 @@ import org.xml.sax.SAXException;
+
+ public class DomXmpParser
+ {
+-
+ private DocumentBuilder dBuilder;
+
+ private NamespaceFinder nsFinder;
+@@ -79,6 +78,12 @@ public class DomXmpParser
+ try
+ {
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
++ dbFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
++ dbFactory.setFeature("http://xml.org/sax/features/external-general-entities", false);
++ dbFactory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
++ dbFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
++ dbFactory.setXIncludeAware(false);
++ dbFactory.setExpandEntityReferences(false);
+ dbFactory.setNamespaceAware(true);
+ dBuilder = dbFactory.newDocumentBuilder();
+ nsFinder = new NamespaceFinder();
+@@ -87,7 +92,6 @@ public class DomXmpParser
+ {
+ throw new XmpParsingException(ErrorType.Configuration, "Failed to initilalize", e);
+ }
+-
+ }
+
+ public boolean isStrictParsing()
diff -Nru libpdfbox-java-1.8.7+dfsg/debian/patches/series libpdfbox-java-1.8.7+dfsg/debian/patches/series
--- libpdfbox-java-1.8.7+dfsg/debian/patches/series 2014-09-19 17:22:46.000000000 +0200
+++ libpdfbox-java-1.8.7+dfsg/debian/patches/series 2016-06-12 14:43:29.000000000 +0200
@@ -1,3 +1,4 @@
build.xml.patch
build-subproject-docs.patch
bc-1.47.patch
+CVE-2016-2175.patch
Attachment:
signature.asc
Description: OpenPGP digital signature