What it is: Improper Restriction of XML External Entity Reference (CWE-611) is a vulnerability that occurs when an application processes XML documents with external entity references without proper restrictions.
Why it matters: This can lead to unauthorized access, data exposure, and resource consumption attacks. It is classified by the OWASP Foundation under A02: Security Misconfiguration.
How to fix it: Disable external entity expansion in XML parsers and validate input strictly.
TL;DR: Improper Restriction of XML External Entity Reference (CWE-611) is a security misconfiguration that allows unauthorized access through crafted XML documents. Fix by disabling external entity processing.
| Field | Value |
|---|---|
| CWE ID | CWE-611 |
| OWASP Category | A02: Security Misconfiguration |
| CAPEC | CAPEC-221 |
| Typical Severity | High |
| Affected Technologies | XML parsers, validators, web applications |
| Detection Difficulty | Moderate |
| Last Updated | 2026-07-29 |
What is Improper Restriction of XML External Entity Reference?
Improper Restriction of XML External Entity Reference (CWE-611) is a type of security misconfiguration vulnerability that occurs when an application processes XML documents containing external entity references without proper restrictions. As defined by the MITRE Corporation under CWE-611, and classified by the OWASP Foundation under A02: Security Misconfiguration.
Quick Summary
Improper Restriction of XML External Entity Reference is a security misconfiguration issue that allows attackers to exploit crafted XML documents containing external entity references to access sensitive files or make unauthorized network requests. This vulnerability can lead to data exposure, integrity breaches, and resource consumption attacks. Jump to: Overview · How It Works · Business Impact · Attack Scenario · Detection · Fixes
Jump to: Quick Summary · Improper Restriction of XML External Entity Reference Overview · How Improper Restriction of XML External Entity Reference Works · Business Impact of Improper Restriction of XML External Entity Reference · Improper Restriction of XML External Entity Reference Attack Scenario · How to Detect Improper Restriction of XML External Entity Reference · How to Fix Improper Restriction of XML External Entity Reference · Framework-Specific Fixes for Improper Restriction of XML External Entity Reference · How to Ask AI to Check Your Code for Improper Restriction of XML External Entity Reference · Improper Restriction of XML External Entity Reference Best Practices Checklist · Improper Restriction of XML External Entity Reference FAQ · Vulnerabilities Related to Improper Restriction of XML External Entity Reference · References · Scan Your Own Site
Improper Restriction of XML External Entity Reference Overview
What
Improper Restriction of XML External Entity Reference is a security misconfiguration where an application processes XML documents with external entity references without proper restrictions, leading to unauthorized access and data exposure.
Why it matters
This vulnerability can lead to confidentiality breaches by exposing sensitive files or directories, integrity issues through bypassing protection mechanisms, and availability problems due to resource consumption attacks.
Where it occurs
It commonly affects applications that process user-uploaded XML documents or parse external XML content without validation.
Who is affected
Web applications, APIs, and any system processing untrusted XML data are at risk.
Who is NOT affected
Applications that do not allow external entity references in their XML parsing configurations.
How Improper Restriction of XML External Entity Reference Works
Root Cause
The root cause lies in the lack of proper restrictions on external entities within XML documents, allowing attackers to exploit crafted DTDs and entity references.
Attack Flow
- Attacker crafts an XML document with a malicious DTD containing external entity references pointing to sensitive files or resources.
- The application processes the XML document without validating or restricting external entities.
- The parser resolves the external entity reference, leading to unauthorized access or data exposure.
- Sensitive information is read and potentially disclosed through error messages or other outputs.
Prerequisites to Exploit
- Application must process untrusted XML documents.
- External entity references are not restricted by configuration settings.
- Default entity resolvers are enabled in the parser.
Vulnerable Code
```python import xml.etree.ElementTree as ET
def parse_xml(xml_data): tree = ET.parse(xml_data) return tree.getroot()
This code is vulnerable because it does not restrict external entities and allows default resolvers to process them.
### Secure Code
```python
import defusedxml.ElementTree as ET
def parse_xml_securely(xml_data):
tree = ET.fromstring(xml_data, forbid_dtd=True)
return tree.getroot()
The secure code uses defusedxml which disables DTD processing and external entity resolution.
Business Impact of Improper Restriction of XML External Entity Reference
Confidentiality
- Exposes sensitive files such as configuration files or database connection strings.
- Reads arbitrary files on the system through crafted DTDs.
Integrity
- Bypasses protection mechanisms by making unauthorized network requests to servers that attackers cannot reach directly.
Availability
- Consumes excessive CPU cycles and memory using URIs pointing to large files or devices with endless data streams.
Business Consequences:
- Financial losses due to unauthorized access and data breaches.
- Non-compliance penalties for failing to protect sensitive information.
- Damage to reputation from public disclosure of security vulnerabilities.
Improper Restriction of XML External Entity Reference Attack Scenario
- Attacker crafts an XML document containing a DTD with external entity references pointing to the system’s configuration files.
- The attacker submits this crafted XML document to the application endpoint that processes user-uploaded XML content.
- The application parses the XML without restrictions, resolving the external entities and reading sensitive information from local files.
- Sensitive data is exposed through error messages or other outputs.
How to Detect Improper Restriction of XML External Entity Reference
Manual Testing
- Check for DTDs and external entity declarations in XML documents.
- Validate that XML parsers are configured to ignore DTD processing.
- Ensure proper validation mechanisms are in place before parsing untrusted XML content.
- Review configuration settings to disable default entity resolvers.
Automated Scanners (SAST / DAST)
Static analysis can detect the presence of DTDs and external entities in XML documents. Dynamic testing is required to validate that parsers do not resolve these references during runtime.
PenScan Detection
PenScan’s automated scanners, such as ZAP and Wapiti, actively test for Improper Restriction of XML External Entity Reference vulnerabilities by submitting crafted XML payloads.
False Positive Guidance
A false positive occurs if the pattern looks risky but is actually safe due to context a scanner cannot see. For example, an external entity reference that points to a benign resource or is properly restricted in configuration files.
How to Fix Improper Restriction of XML External Entity Reference
- Disable DTD processing and external entity resolution in XML parsers.
- Use secure configurations to prevent default resolvers from resolving external entities.
- Validate input strictly before parsing untrusted XML content.
- Implement proper validation mechanisms to ensure that only trusted data is processed.
Framework-Specific Fixes for Improper Restriction of XML External Entity Reference
import org.xml.sax.InputSource;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
public class SecureXMLParser {
public static void parseSecurely(String xmlData) throws Exception {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
dbFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
dbFactory.setFeature("http://xml.org/sax/features/external-general-entities", false);
dbFactory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
InputSource is = new InputSource(new StringReader(xmlData));
is.setSystemId("");
org.w3c.dom.Document doc = dBuilder.parse(is);
}
}
How to Ask AI to Check Your Code for Improper Restriction of XML External Entity Reference
Review the following Java code block for potential CWE-611 Improper Restriction of XML External Entity Reference vulnerabilities and rewrite it using secure configurations: [paste code here]
Improper Restriction of XML External Entity Reference Best Practices Checklist
✅ Disable DTD processing and external entity resolution in XML parsers. ✅ Use secure configurations to prevent default resolvers from resolving external entities. ✅ Validate input strictly before parsing untrusted XML content. ✅ Implement proper validation mechanisms to ensure that only trusted data is processed. ✅ Review configuration settings to disable default entity resolvers. ✅ Ensure proper validation mechanisms are in place before parsing user-uploaded XML documents.
Improper Restriction of XML External Entity Reference FAQ
How does Improper Restriction of XML External Entity Reference work?
It occurs when an application processes a crafted XML document containing external entities that reference files or resources outside the intended sphere of control, leading to unauthorized access and data exposure.
What are the common consequences of Improper Restriction of XML External Entity Reference?
This weakness can lead to confidentiality breaches by exposing sensitive files, integrity issues through bypassing protection mechanisms, and availability problems due to resource consumption.
How do attackers exploit Improper Restriction of XML External Entity Reference?
Attackers craft malicious XML documents with external entity references pointing to local or remote resources, leveraging default entity resolvers to read arbitrary files or make unauthorized network requests.
What are the best practices for preventing Improper Restriction of XML External Entity Reference in web applications?
Disable external entity expansion and ensure that XML parsers do not resolve external entities by default. Use secure configurations and validate input strictly.
How can developers detect Improper Restriction of XML External Entity Reference vulnerabilities manually?
Review configuration settings, check for the presence of DTDs or external entities in XML documents, and ensure proper validation mechanisms are in place to prevent unauthorized access.
What is a real-world example of an application affected by Improper Restriction of XML External Entity Reference?
A web application that processes user-uploaded XML files without validating them for external entity references can be exploited to read sensitive configuration files or make unauthorized network requests.
How do you fix Improper Restriction of XML External Entity Reference in Java applications?
Disable the processing of external entities by configuring the XML parser to ignore DTDs and external entity declarations.
Vulnerabilities Related to Improper Restriction of XML External Entity Reference
| CWE | Name | Relationship | |—|—|—| | CWE-610 | Externally Controlled Reference to a Resource in Another Sphere (ChildOf) | ChildOf | | CWE-441 | Unintended Proxy or Intermediary (‘Confused Deputy’) (PeerOf) | PeerOf |
References
- MITRE - Improper Restriction of XML External Entity Reference
- OWASP Top 10:2025 - Security Misconfiguration
- CAPEC - XML External Entity (XXE) Injection
- NVD
Scan Your Own Site
Manual code review catches what you know to look for. An automated scan catches what you didn’t. Scan your own website using PenScan to find Improper Restriction of XML External Entity Reference and other risks before an attacker does.