Skip to content

TransformerFactory missing secure configuration

Description

TransformerFactory is used without disabling access to external DTDs or stylesheets. This can lead to XML External Entity (XXE) vulnerabilities. These XXE vectors can: Access internal files, Trigger SSRF (Server Side Request Forgery), Perform denial-of-service attacks

Examples

Insecure Code

java
TransformerFactory factory = TransformerFactory.newInstance();

Secure Code

java
TransformerFactory factory = TransformerFactory.newInstance();
factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "");
factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "");

Remediation

Set the following properties: factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, ""); factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "");

Rule Details

FieldValue
IDCODE-0754
CategoryInjection
SeverityMEDIUM
CWECWE-611
ConfidenceHIGH
ImpactHIGH
LikelihoodMEDIUM
ExploitabilityEASY
TagsXXE, XML External Entity
OWASPA05:2021-Security Misconfiguration