	public Map<String, Map<String, Object>> getCustomConfig(CourseEnvironment courseEnvironment){
		Map<String, Map<String, Object>> defaultConf = new HashMap<>();
		VFSContainer base = (VFSContainer) courseEnvironment.getCourseBaseContainer().resolve(CourseLayoutHelper.LAYOUT_COURSE_SUBFOLDER);
		if (base == null) {
			return defaultConf;
		}
		VFSContainer themeBase = (VFSContainer) base.resolve("/" + CourseLayoutHelper.CONFIG_KEY_CUSTOM);
		if (themeBase == null) {
			return defaultConf;
		}
		VFSLeaf configTarget = (VFSLeaf) themeBase.resolve(CUSTOM_CONFIG_XML);
		if (configTarget == null) {
			return defaultConf;
		}
		XStream xStream = XStreamHelper.createXStreamInstance();
		try(InputStream in=configTarget.getInputStream()) {
			return (Map<String, Map<String, Object>>) xStream.fromXML(in);
		} catch(IOException e) {
			log.error("", e);
			return defaultConf;
		}
	}
The software does not properly neutralize special elements that are used in XML, allowing attackers to modify the syntax, content, or commands of the XML before it is processed by an end system.