This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 6c7d0c84b4aa5a481bd864e7f17db66d51659acf
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Sun Dec 18 14:38:39 2022 +0100

    Make XmlHelper more secure
---
 .../apache/camel/dsl/jbang/core/common/XmlHelper.java |  5 +++++
 .../main/java/org/apache/camel/maven/XmlHelper.java   | 19 ++++++++++++++++++-
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/XmlHelper.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/XmlHelper.java
index afc58f99cd9..452307af4cd 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/XmlHelper.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/XmlHelper.java
@@ -42,6 +42,11 @@ public final class XmlHelper {
             
factory.setFeature("http://xml.org/sax/features/external-general-entities";, 
false);
         } catch (ParserConfigurationException e) {
         }
+        try {
+            // Disable the external-parameter-entities by default
+            
factory.setFeature("http://xml.org/sax/features/external-parameter-entities";, 
false);
+        } catch (ParserConfigurationException e) {
+        }
         // setup the SecurityManager by default if it's apache xerces
         try {
             Class<?> smClass = 
ObjectHelper.loadClass("org.apache.xerces.util.SecurityManager");
diff --git 
a/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/XmlHelper.java
 
b/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/XmlHelper.java
index 5d0e9d1ec10..bcb505d833d 100644
--- 
a/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/XmlHelper.java
+++ 
b/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/XmlHelper.java
@@ -41,9 +41,26 @@ public final class XmlHelper {
 
     public static Document buildNamespaceAwareDocument(File xml)
             throws SAXException, ParserConfigurationException, IOException {
+ 
         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
         factory.setNamespaceAware(true);
-        factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, 
Boolean.TRUE);
+        factory.setIgnoringElementContentWhitespace(true);
+        factory.setIgnoringComments(true);
+        try {
+            // Set secure processing
+            factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, 
Boolean.TRUE);
+        } catch (ParserConfigurationException e) {
+        }
+        try {
+            // Disable the external-general-entities by default
+            
factory.setFeature("http://xml.org/sax/features/external-general-entities";, 
false);
+        } catch (ParserConfigurationException e) {
+        }
+        try {
+            // Disable the external-parameter-entities by default
+            
factory.setFeature("http://xml.org/sax/features/external-parameter-entities";, 
false);
+        } catch (ParserConfigurationException e) {
+        }
         return factory.newDocumentBuilder().parse(xml);
     }
 

Reply via email to