Insecure service configuration - DocumentBuilderFactory
Description
DocumentBuilderFactory is insecurely configured, which makes it susceptible to XXE attacks.
Impact
- Read confidential information.
- Execute commands on the server.
Recommendation
Securely configure DocumentBuilderFactory.
Threat
Authorized attacker from the Internet.
Expected Remediation Time
⌚ 30 minutes.
Score
Default score using CVSS 3.1. It may change depending on the context of the vulnerability.
Base
- Attack vector: N
- Attack complexity: H
- Privileges required: L
- User interaction: R
- Scope: U
- Confidentiality: L
- Integrity: L
- Availability: N
Temporal
- Exploit code madurity: P
- Remediation level: O
- Report confidence: R
Result
- Vector string: CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N/E:P/RL:O/RC:R
- Score:
- Base: 3.7
- Temporal: 3.2
- Severity:
- Base: Low
- Temporal: Low
Code Examples
Compliant code
There are additional settings in the DocumentBuilderFactory to securely configure the service
import com.sap.security.hardener.nw.facade.HardenerFacade;
public static DocumentBuilderFactory secureDocumentBuilderFactory(final DocumentBuilderFactory factory, final String callerNamespace) throws ParserConfigurationException{
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
//One possible method to secure the DocumentBuildeerFactory
dbFactory = HardenerFacade.secureDocumentBuilderFactory(dbFactory);
DocumentBuilder parser = dbf.newDocumentBuilder();
parser.setErrorHandler(handler);
return parser.parse(stream);
}
Non compliant code
The DocumentBuilderFactory does not have a secure configuration
public static DocumentBuilderFactory secureDocumentBuilderFactory(final DocumentBuilderFactory factory, final String callerNamespace) throws ParserConfigurationException{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder parser = dbf.newDocumentBuilder();
parser.setErrorHandler(handler);
return parser.parse(stream);
}
Requirements
Search for vulnerabilities in your apps for free with our automated security testing! Start your 21-day free trial and discover the benefits of our Continuous Hacking Machine Plan. If you prefer a full service that includes the expertise of our ethical hackers, don't hesitate to contact us for our Continuous Hacking Squad Plan.