mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Fixed various XML External Entity (XXE) attack vulnerabilities
This commit is contained in:
parent
796a81311c
commit
666506da90
@ -20,6 +20,7 @@ package org.wso2.carbon.apimgt.webapp.publisher;
|
|||||||
|
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
|
|
||||||
|
import javax.xml.XMLConstants;
|
||||||
import javax.xml.parsers.DocumentBuilder;
|
import javax.xml.parsers.DocumentBuilder;
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -34,6 +35,7 @@ public class WebappPublisherUtil {
|
|||||||
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
||||||
factory.setNamespaceAware(true);
|
factory.setNamespaceAware(true);
|
||||||
try {
|
try {
|
||||||
|
factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
|
||||||
DocumentBuilder docBuilder = factory.newDocumentBuilder();
|
DocumentBuilder docBuilder = factory.newDocumentBuilder();
|
||||||
return docBuilder.parse(file);
|
return docBuilder.parse(file);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@ -28,28 +28,25 @@ import org.wso2.carbon.certificate.mgt.core.dao.CertificateManagementDAOUtil;
|
|||||||
import org.wso2.carbon.certificate.mgt.core.exception.CertificateManagementException;
|
import org.wso2.carbon.certificate.mgt.core.exception.CertificateManagementException;
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
import javax.xml.XMLConstants;
|
||||||
import javax.xml.parsers.DocumentBuilder;
|
import javax.xml.parsers.DocumentBuilder;
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.ObjectOutputStream;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Hashtable;
|
import java.util.Hashtable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class CertificateManagerUtil {
|
public class CertificateManagerUtil {
|
||||||
|
|
||||||
private static final Log log = LogFactory.getLog(CertificateManagerUtil.class);
|
|
||||||
|
|
||||||
public static final String GENERAL_CONFIG_RESOURCE_PATH = "general";
|
public static final String GENERAL_CONFIG_RESOURCE_PATH = "general";
|
||||||
public static final String MONITORING_FREQUENCY = "notifierFrequency";
|
public static final String MONITORING_FREQUENCY = "notifierFrequency";
|
||||||
|
private static final Log log = LogFactory.getLog(CertificateManagerUtil.class);
|
||||||
|
|
||||||
public static Document convertToDocument(File file) throws CertificateManagementException {
|
public static Document convertToDocument(File file) throws CertificateManagementException {
|
||||||
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
||||||
factory.setNamespaceAware(true);
|
factory.setNamespaceAware(true);
|
||||||
try {
|
try {
|
||||||
DocumentBuilder docBuilder = factory.newDocumentBuilder();
|
DocumentBuilder docBuilder = factory.newDocumentBuilder();
|
||||||
|
factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
|
||||||
return docBuilder.parse(file);
|
return docBuilder.parse(file);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new CertificateManagementException("Error occurred while parsing file, while converting " +
|
throw new CertificateManagementException("Error occurred while parsing file, while converting " +
|
||||||
|
|||||||
@ -21,6 +21,8 @@ import org.w3c.dom.Document;
|
|||||||
import org.w3c.dom.NodeList;
|
import org.w3c.dom.NodeList;
|
||||||
import org.wso2.carbon.certificate.mgt.core.exception.KeystoreException;
|
import org.wso2.carbon.certificate.mgt.core.exception.KeystoreException;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
|
import javax.xml.XMLConstants;
|
||||||
import javax.xml.parsers.DocumentBuilder;
|
import javax.xml.parsers.DocumentBuilder;
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
import javax.xml.parsers.ParserConfigurationException;
|
||||||
@ -48,22 +50,19 @@ public class ConfigurationUtil {
|
|||||||
public static final String POST_BODY_CA_CAPS = "POSTPKIOperation\nSHA-1\nDES3\n";
|
public static final String POST_BODY_CA_CAPS = "POSTPKIOperation\nSHA-1\nDES3\n";
|
||||||
public static final String DES_EDE = "DESede";
|
public static final String DES_EDE = "DESede";
|
||||||
public static final String CONF_LOCATION = "conf.location";
|
public static final String CONF_LOCATION = "conf.location";
|
||||||
private static final String CARBON_HOME = "carbon.home";
|
|
||||||
private static final String CERTIFICATE_CONFIG_XML = "certificate-config.xml";
|
|
||||||
private static final String CARBON_HOME_ENTRY = "${carbon.home}";
|
|
||||||
public static final String DEFAULT_PRINCIPAL = "O=WSO2, OU=Mobile, C=LK";
|
public static final String DEFAULT_PRINCIPAL = "O=WSO2, OU=Mobile, C=LK";
|
||||||
public static final String RSA_PRIVATE_KEY_BEGIN_TEXT = "-----BEGIN RSA PRIVATE KEY-----\n";
|
public static final String RSA_PRIVATE_KEY_BEGIN_TEXT = "-----BEGIN RSA PRIVATE KEY-----\n";
|
||||||
public static final String RSA_PRIVATE_KEY_END_TEXT = "-----END RSA PRIVATE KEY-----";
|
public static final String RSA_PRIVATE_KEY_END_TEXT = "-----END RSA PRIVATE KEY-----";
|
||||||
public static final String EMPTY_TEXT = "";
|
public static final String EMPTY_TEXT = "";
|
||||||
public static final int RSA_KEY_LENGTH = 1024;
|
public static final int RSA_KEY_LENGTH = 1024;
|
||||||
public static final long MILLI_SECONDS = 1000L * 60 * 60 * 24;
|
public static final long MILLI_SECONDS = 1000L * 60 * 60 * 24;
|
||||||
|
private static final String CARBON_HOME = "carbon.home";
|
||||||
|
private static final String CERTIFICATE_CONFIG_XML = "certificate-config.xml";
|
||||||
private static ConfigurationUtil configurationUtil;
|
private static final String CARBON_HOME_ENTRY = "${carbon.home}";
|
||||||
private static final String[] certificateConfigEntryNames = { CA_CERT_ALIAS, RA_CERT_ALIAS,
|
private static final String[] certificateConfigEntryNames = { CA_CERT_ALIAS, RA_CERT_ALIAS,
|
||||||
CERTIFICATE_KEYSTORE, PATH_CERTIFICATE_KEYSTORE, CERTIFICATE_KEYSTORE_PASSWORD,
|
CERTIFICATE_KEYSTORE, PATH_CERTIFICATE_KEYSTORE, CERTIFICATE_KEYSTORE_PASSWORD,
|
||||||
KEYSTORE_CA_CERT_PRIV_PASSWORD, KEYSTORE_RA_CERT_PRIV_PASSWORD };
|
KEYSTORE_CA_CERT_PRIV_PASSWORD, KEYSTORE_RA_CERT_PRIV_PASSWORD };
|
||||||
|
private static ConfigurationUtil configurationUtil;
|
||||||
private static Map<String, String> configMap;
|
private static Map<String, String> configMap;
|
||||||
|
|
||||||
private static Map<String, String> readCertificateConfigurations() throws KeystoreException {
|
private static Map<String, String> readCertificateConfigurations() throws KeystoreException {
|
||||||
@ -79,6 +78,7 @@ public class ConfigurationUtil {
|
|||||||
try {
|
try {
|
||||||
File fXmlFile = new File(certConfLocation);
|
File fXmlFile = new File(certConfLocation);
|
||||||
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
|
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
|
||||||
|
documentBuilderFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
|
||||||
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
|
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
|
||||||
document = documentBuilder.parse(fXmlFile);
|
document = documentBuilder.parse(fXmlFile);
|
||||||
} catch (ParserConfigurationException e) {
|
} catch (ParserConfigurationException e) {
|
||||||
|
|||||||
@ -21,6 +21,7 @@ package org.wso2.carbon.device.mgt.analytics.data.publisher;
|
|||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.wso2.carbon.device.mgt.analytics.data.publisher.exception.DataPublisherConfigurationException;
|
import org.wso2.carbon.device.mgt.analytics.data.publisher.exception.DataPublisherConfigurationException;
|
||||||
|
|
||||||
|
import javax.xml.XMLConstants;
|
||||||
import javax.xml.parsers.DocumentBuilder;
|
import javax.xml.parsers.DocumentBuilder;
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -32,6 +33,7 @@ public class DataPublisherUtil {
|
|||||||
factory.setNamespaceAware(true);
|
factory.setNamespaceAware(true);
|
||||||
try {
|
try {
|
||||||
DocumentBuilder docBuilder = factory.newDocumentBuilder();
|
DocumentBuilder docBuilder = factory.newDocumentBuilder();
|
||||||
|
factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
|
||||||
return docBuilder.parse(file);
|
return docBuilder.parse(file);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new DataPublisherConfigurationException("Error occurred while parsing file, while converting " +
|
throw new DataPublisherConfigurationException("Error occurred while parsing file, while converting " +
|
||||||
|
|||||||
@ -20,7 +20,6 @@ package org.wso2.carbon.device.mgt.core.permission.mgt;
|
|||||||
|
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
|
||||||
import org.wso2.carbon.device.mgt.common.permission.mgt.Permission;
|
import org.wso2.carbon.device.mgt.common.permission.mgt.Permission;
|
||||||
import org.wso2.carbon.device.mgt.common.permission.mgt.PermissionManagementException;
|
import org.wso2.carbon.device.mgt.common.permission.mgt.PermissionManagementException;
|
||||||
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
||||||
@ -28,6 +27,7 @@ import org.wso2.carbon.registry.api.RegistryException;
|
|||||||
import org.wso2.carbon.registry.api.Resource;
|
import org.wso2.carbon.registry.api.Resource;
|
||||||
import org.wso2.carbon.registry.core.Registry;
|
import org.wso2.carbon.registry.core.Registry;
|
||||||
|
|
||||||
|
import javax.xml.XMLConstants;
|
||||||
import javax.xml.parsers.DocumentBuilder;
|
import javax.xml.parsers.DocumentBuilder;
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -123,6 +123,7 @@ public class PermissionUtils {
|
|||||||
factory.setNamespaceAware(true);
|
factory.setNamespaceAware(true);
|
||||||
try {
|
try {
|
||||||
DocumentBuilder docBuilder = factory.newDocumentBuilder();
|
DocumentBuilder docBuilder = factory.newDocumentBuilder();
|
||||||
|
factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
|
||||||
return docBuilder.parse(file);
|
return docBuilder.parse(file);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new PermissionManagementException("Error occurred while parsing file, while converting " +
|
throw new PermissionManagementException("Error occurred while parsing file, while converting " +
|
||||||
|
|||||||
@ -21,7 +21,6 @@ import org.apache.commons.logging.Log;
|
|||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.wso2.carbon.base.MultitenantConstants;
|
import org.wso2.carbon.base.MultitenantConstants;
|
||||||
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
|
||||||
import org.wso2.carbon.device.mgt.common.Device;
|
import org.wso2.carbon.device.mgt.common.Device;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||||
@ -41,14 +40,11 @@ import org.wso2.carbon.utils.ConfigurationContextService;
|
|||||||
import org.wso2.carbon.utils.NetworkUtils;
|
import org.wso2.carbon.utils.NetworkUtils;
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
import javax.xml.XMLConstants;
|
||||||
import javax.xml.parsers.DocumentBuilder;
|
import javax.xml.parsers.DocumentBuilder;
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Hashtable;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
|
|
||||||
public final class DeviceManagerUtil {
|
public final class DeviceManagerUtil {
|
||||||
@ -60,6 +56,7 @@ public final class DeviceManagerUtil {
|
|||||||
factory.setNamespaceAware(true);
|
factory.setNamespaceAware(true);
|
||||||
try {
|
try {
|
||||||
DocumentBuilder docBuilder = factory.newDocumentBuilder();
|
DocumentBuilder docBuilder = factory.newDocumentBuilder();
|
||||||
|
factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
|
||||||
return docBuilder.parse(file);
|
return docBuilder.parse(file);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new DeviceManagementException("Error occurred while parsing file, while converting " +
|
throw new DeviceManagementException("Error occurred while parsing file, while converting " +
|
||||||
|
|||||||
@ -19,11 +19,8 @@
|
|||||||
package org.wso2.carbon.email.sender.core;
|
package org.wso2.carbon.email.sender.core;
|
||||||
|
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.wso2.carbon.email.sender.core.internal.EmailSenderDataHolder;
|
|
||||||
import org.wso2.carbon.utils.CarbonUtils;
|
|
||||||
import org.wso2.carbon.utils.ConfigurationContextService;
|
|
||||||
import org.wso2.carbon.utils.NetworkUtils;
|
|
||||||
|
|
||||||
|
import javax.xml.XMLConstants;
|
||||||
import javax.xml.parsers.DocumentBuilder;
|
import javax.xml.parsers.DocumentBuilder;
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -35,6 +32,7 @@ public class EmailSenderUtil {
|
|||||||
factory.setNamespaceAware(true);
|
factory.setNamespaceAware(true);
|
||||||
try {
|
try {
|
||||||
DocumentBuilder docBuilder = factory.newDocumentBuilder();
|
DocumentBuilder docBuilder = factory.newDocumentBuilder();
|
||||||
|
factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
|
||||||
return docBuilder.parse(file);
|
return docBuilder.parse(file);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new EmailSenderConfigurationFailedException("Error occurred while parsing file, while converting " +
|
throw new EmailSenderConfigurationFailedException("Error occurred while parsing file, while converting " +
|
||||||
|
|||||||
@ -44,6 +44,7 @@ import javax.cache.Cache;
|
|||||||
import javax.cache.CacheManager;
|
import javax.cache.CacheManager;
|
||||||
import javax.cache.Caching;
|
import javax.cache.Caching;
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
import javax.xml.XMLConstants;
|
||||||
import javax.xml.parsers.DocumentBuilder;
|
import javax.xml.parsers.DocumentBuilder;
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
@ -53,17 +54,16 @@ import java.util.*;
|
|||||||
|
|
||||||
public class PolicyManagerUtil {
|
public class PolicyManagerUtil {
|
||||||
|
|
||||||
private static final Log log = LogFactory.getLog(PolicyManagerUtil.class);
|
|
||||||
|
|
||||||
public static final String GENERAL_CONFIG_RESOURCE_PATH = "general";
|
public static final String GENERAL_CONFIG_RESOURCE_PATH = "general";
|
||||||
public static final String MONITORING_FREQUENCY = "notifierFrequency";
|
public static final String MONITORING_FREQUENCY = "notifierFrequency";
|
||||||
|
private static final Log log = LogFactory.getLog(PolicyManagerUtil.class);
|
||||||
|
|
||||||
public static Document convertToDocument(File file) throws PolicyManagementException {
|
public static Document convertToDocument(File file) throws PolicyManagementException {
|
||||||
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
||||||
factory.setNamespaceAware(true);
|
factory.setNamespaceAware(true);
|
||||||
try {
|
try {
|
||||||
DocumentBuilder docBuilder = factory.newDocumentBuilder();
|
DocumentBuilder docBuilder = factory.newDocumentBuilder();
|
||||||
|
factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
|
||||||
return docBuilder.parse(file);
|
return docBuilder.parse(file);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new PolicyManagementException("Error occurred while parsing file, while converting " +
|
throw new PolicyManagementException("Error occurred while parsing file, while converting " +
|
||||||
@ -153,11 +153,7 @@ public class PolicyManagerUtil {
|
|||||||
|
|
||||||
public static boolean convertIntToBoolean(int x) {
|
public static boolean convertIntToBoolean(int x) {
|
||||||
|
|
||||||
if (x == 1) {
|
return x == 1;
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -31,6 +31,7 @@ import org.wso2.carbon.context.PrivilegedCarbonContext;
|
|||||||
import org.wso2.carbon.webapp.authenticator.framework.Utils.Utils;
|
import org.wso2.carbon.webapp.authenticator.framework.Utils.Utils;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.xml.XMLConstants;
|
||||||
import javax.xml.parsers.DocumentBuilder;
|
import javax.xml.parsers.DocumentBuilder;
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -97,6 +98,7 @@ public class AuthenticationFrameworkUtil {
|
|||||||
factory.setNamespaceAware(true);
|
factory.setNamespaceAware(true);
|
||||||
try {
|
try {
|
||||||
DocumentBuilder docBuilder = factory.newDocumentBuilder();
|
DocumentBuilder docBuilder = factory.newDocumentBuilder();
|
||||||
|
factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
|
||||||
return docBuilder.parse(file);
|
return docBuilder.parse(file);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new AuthenticatorFrameworkException("Error occurred while parsing file, while converting " +
|
throw new AuthenticatorFrameworkException("Error occurred while parsing file, while converting " +
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user