roller-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From snoopd...@apache.org
Subject roller git commit: [ROL-2124] disable DOCTYPE handling in SAX Parser.
Date Sun, 09 Dec 2018 19:52:09 GMT
Repository: roller
Updated Branches:
  refs/heads/roller-5.2.x [created] 26764874b


[ROL-2124] disable DOCTYPE handling in SAX Parser.


Project: http://git-wip-us.apache.org/repos/asf/roller/repo
Commit: http://git-wip-us.apache.org/repos/asf/roller/commit/26764874
Tree: http://git-wip-us.apache.org/repos/asf/roller/tree/26764874
Diff: http://git-wip-us.apache.org/repos/asf/roller/diff/26764874

Branch: refs/heads/roller-5.2.x
Commit: 26764874bd1c33f3967baf74818422b6d5d8f227
Parents: 0a8b286
Author: Dave Johnson <snoopdave@gmail.com>
Authored: Sun Dec 9 14:48:35 2018 -0500
Committer: Dave Johnson <snoopdave@gmail.com>
Committed: Sun Dec 9 14:48:35 2018 -0500

----------------------------------------------------------------------
 .../weblogger/business/WebloggerImpl.java       | 55 ++++++++++++++------
 1 file changed, 39 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/roller/blob/26764874/app/src/main/java/org/apache/roller/weblogger/business/WebloggerImpl.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/WebloggerImpl.java b/app/src/main/java/org/apache/roller/weblogger/business/WebloggerImpl.java
index 1cf6359..476ad89 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/WebloggerImpl.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/WebloggerImpl.java
@@ -33,6 +33,15 @@ import org.apache.roller.weblogger.business.search.IndexManager;
 import org.apache.roller.weblogger.business.runnable.ThreadManager;
 import org.apache.roller.weblogger.business.themes.ThemeManager;
 import org.apache.roller.weblogger.config.PingConfig;
+import org.apache.roller.weblogger.config.WebloggerConfig;
+import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
+import org.apache.xmlrpc.util.SAXParsers;
+import org.springframework.security.access.method.P;
+import org.xml.sax.SAXNotRecognizedException;
+import org.xml.sax.SAXNotSupportedException;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParserFactory;
 
 
 /**
@@ -134,7 +143,7 @@ public abstract class WebloggerImpl implements Weblogger {
     /**
      * 
      * 
-     * @see org.apache.roller.weblogger.modelWebloggerr#getThreadManager()
+     * @see org.apache.roller.weblogger.business.Weblogger#getThreadManager()
      */
     public ThreadManager getThreadManager() {
         return threadManager;
@@ -144,7 +153,7 @@ public abstract class WebloggerImpl implements Weblogger {
     /**
      * 
      * 
-     * @see org.apache.roller.weblogger.model.Weblogger#getIndexManager()
+     * @see org.apache.roller.weblogger.business.Weblogger#getIndexManager()
      */
     public IndexManager getIndexManager() {
         return indexManager;
@@ -154,7 +163,7 @@ public abstract class WebloggerImpl implements Weblogger {
     /**
      * 
      * 
-     * @see org.apache.roller.weblogger.modelWebloggerr#getThemeManager()
+     * @see org.apache.roller.weblogger.business.Weblogger#getThemeManager()
      */
     public ThemeManager getThemeManager() {
         return themeManager;
@@ -164,7 +173,7 @@ public abstract class WebloggerImpl implements Weblogger {
     /**
      * 
      * 
-     * @see org.apache.roller.weblogger.modelWebloggerr#getUserManager()
+     * @see org.apache.roller.weblogger.business.Weblogger#getUserManager()
      */
     public UserManager getUserManager() {
         return userManager;
@@ -174,7 +183,7 @@ public abstract class WebloggerImpl implements Weblogger {
     /**
      * 
      * 
-     * @see org.apache.roller.weblogger.modelWebloggerr#getBookmarkManager()
+     * @see org.apache.roller.weblogger.business.Weblogger#getBookmarkManager()
      */
     public BookmarkManager getBookmarkManager() {
         return bookmarkManager;
@@ -184,7 +193,7 @@ public abstract class WebloggerImpl implements Weblogger {
     /**
      * 
      * 
-     * @see org.apache.roller.weblogger.modelWebloggerr#getMediaFileManager()
+     * @see org.apache.roller.weblogger.business.Weblogger#getMediaFileManager()
      */
     public MediaFileManager getMediaFileManager() {
         return mediaFileManager;
@@ -193,7 +202,7 @@ public abstract class WebloggerImpl implements Weblogger {
     /**
      * 
      * 
-     * @see org.apache.roller.weblogger.modelWebloggerr#getFileContentManager()
+     * @see org.apache.roller.weblogger.business.Weblogger#getFileContentManager()
      */
     public FileContentManager getFileContentManager() {
         return fileContentManager;
@@ -203,7 +212,7 @@ public abstract class WebloggerImpl implements Weblogger {
     /**
      * 
      * 
-     * @see org.apache.roller.weblogger.modelWebloggerr#getWeblogEntryManager()
+     * @see org.apache.roller.weblogger.business.Weblogger#getWeblogEntryManager()
      */
     public WeblogEntryManager getWeblogEntryManager() {
         return weblogEntryManager;
@@ -213,7 +222,7 @@ public abstract class WebloggerImpl implements Weblogger {
     /**
      * 
      * 
-     * @see org.apache.roller.weblogger.modelWebloggerr#getWeblogManager()
+     * @see org.apache.roller.weblogger.business.Weblogger#getWeblogManager()
      */
     public WeblogManager getWeblogManager() {
         return weblogManager;
@@ -223,7 +232,7 @@ public abstract class WebloggerImpl implements Weblogger {
     /**
      * 
      * 
-     * @see org.apache.roller.weblogger.modelWebloggerr#getPropertiesManager()
+     * @see org.apache.roller.weblogger.business.Weblogger#getPropertiesManager()
      */
     public PropertiesManager getPropertiesManager() {
         return propertiesManager;
@@ -233,7 +242,7 @@ public abstract class WebloggerImpl implements Weblogger {
     /**
      * 
      * 
-     * @see org.apache.roller.weblogger.modelWebloggerr#getPingTargetManager()
+     * @see org.apache.roller.weblogger.business.Weblogger#getPingTargetManager()
      */
     public PingQueueManager getPingQueueManager() {
         return pingQueueManager;
@@ -243,7 +252,7 @@ public abstract class WebloggerImpl implements Weblogger {
     /**
      * 
      * 
-     * @see org.apache.roller.weblogger.modelWebloggerr#getPingTargetManager()
+     * @see org.apache.roller.weblogger.business.Weblogger#getPingTargetManager()
      */
     public AutoPingManager getAutopingManager() {
         return autoPingManager;
@@ -253,7 +262,7 @@ public abstract class WebloggerImpl implements Weblogger {
     /**
      * 
      * 
-     * @see org.apache.roller.weblogger.modelWebloggerr#getPingTargetManager()
+     * @see org.apache.roller.weblogger.business.Weblogger#getPingTargetManager()
      */
     public PingTargetManager getPingTargetManager() {
         return pingTargetManager;
@@ -263,7 +272,7 @@ public abstract class WebloggerImpl implements Weblogger {
     /**
      *
      *
-     * @see org.apache.roller.weblogger.modelWebloggerr#getPluginManager()
+     * @see org.apache.roller.weblogger.business.Weblogger#getPluginManager()
      */
     public PluginManager getPluginManager() {
         return pluginManager;
@@ -273,7 +282,7 @@ public abstract class WebloggerImpl implements Weblogger {
     /**
      *
      *
-     * @see org.apache.roller.weblogger.modelWebloggerr#getOauthManager()
+     * @see org.apache.roller.weblogger.business.Weblogger#getOAuthManager()
      */
     public OAuthManager getOAuthManager() {
         return oauthManager;
@@ -334,7 +343,21 @@ public abstract class WebloggerImpl implements Weblogger {
         getThreadManager().initialize();
         getIndexManager().initialize();
         getMediaFileManager().initialize();
-        
+
+        // Turn off External DTD support in SAXParser to protect Roller from vulnerability.
+        SAXParserFactory spf = SAXParsers.getSAXParserFactory();
+        try {
+            spf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
+            spf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd",
false);
+        } catch (ParserConfigurationException | SAXNotRecognizedException | SAXNotSupportedException
e) {
+            String message = "Unable to turn off External DTD support in SAXParser. XML-RLC
is vulnerable";
+            if ( log.isDebugEnabled() ) {
+                log.error(message, e);
+            } else {
+                log.error(message);
+            }
+        }
+
         try {
             // Initialize ping systems
             // TODO: this should probably be moving inside ping manager initialize() methods?


Mime
View raw message