CWE-611 Base Draft

Improper Restriction of XML External Entity Reference

This vulnerability occurs when an application processes XML input without properly restricting external entity references. Attackers can exploit this to read local files, trigger internal network…

Definition

What is CWE-611?

This vulnerability occurs when an application processes XML input without properly restricting external entity references. Attackers can exploit this to read local files, trigger internal network requests, or cause denial of service.
XML parsers often support Document Type Definitions (DTDs), which can define custom entities. When these entities point to external URIs (like file://, http://), the parser may fetch and include that external content. An attacker can inject a malicious DTD that references sensitive system files (e.g., /etc/passwd, C:\Windows\win.ini) or internal endpoints, leading to data exposure or server-side request forgery (SSRF). The retrieved data is often reflected in the application's output, such as error messages or API responses. Preventing XXE requires disabling DTD processing entirely or securely configuring the XML parser to reject external entities. Since manual code reviews and traditional SAST tools can miss parser configurations, managing this at scale is difficult; an ASPM like Plexicus can help you track and remediate these flaws across your entire stack by correlating findings with actual runtime behavior and suggesting prioritized fixes.
Auswirkungen in der Praxis

Real-world CVEs caused by CWE-611

  • Recruiter software allows reading arbitrary files using XXE

  • A browser control can allow remote attackers to determine the existence of files via Javascript containing XML script.

  • XXE during SVG image conversion

  • XXE in PHP application allows reading the application's configuration file.

  • XXE in database server

  • XXE in rapid web application development framework allows reading arbitrary files.

  • XXE via XML-RPC request.

  • XXE in office document product using RDF.

Wie Angreifer es ausnutzen

Angreiferpfad Schritt für Schritt

  1. 1

    Identifiziere einen Codepfad, der nicht vertrauenswürdige Eingaben ohne Validierung verarbeitet.

  2. 2

    Erzeuge eine Payload, die das unsichere Verhalten auslöst — Injection, Traversal, Overflow oder Logik-Missbrauch.

  3. 3

    Liefere die Payload über einen normalen Request aus und beobachte die Reaktion der Anwendung.

  4. 4

    Iteriere, bis die Antwort Daten preisgibt, Angreifer-Code ausführt oder Berechtigungen eskaliert.

Verwundbares Codebeispiel

Vulnerable pseudo

MITRE hat kein Codebeispiel für diese CWE veröffentlicht. Das untenstehende Muster ist illustrativ — kanonische Referenzen findest du unter Ressourcen.

Verwundbar pseudo
// Example pattern — see MITRE for the canonical references.
function handleRequest(input) {
  // Untrusted input flows directly into the sensitive sink.
  return executeUnsafe(input);
}
Sicheres Codebeispiel

Secure pseudo

Sicher pseudo
// Validate, sanitize, or use a safe API before reaching the sink.
function handleRequest(input) {
  const safe = validateAndEscape(input);
  return executeWithGuards(safe);
}
What changed: the unsafe sink is replaced (or the input is validated/escaped) so the same payload no longer triggers the weakness.
Präventions-Checkliste

How to prevent CWE-611

  • Implementation / System Configuration Many XML parsers and validators can be configured to disable external entity expansion.
Erkennungssignale

How to detect CWE-611

Automated Static Analysis High

Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.)

Plexicus Auto-Fix

Plexicus erkennt CWE-611 automatisch und öffnet in unter 60 Sekunden einen Fix-PR.

Codex Remedium scannt jeden Commit, identifiziert genau diese Schwachstelle und liefert einen reviewer-ready Pull Request mit dem Patch. Keine Tickets. Keine Hand-offs.

Häufig gestellte Fragen

Frequently asked questions

Was ist CWE-611?

This vulnerability occurs when an application processes XML input without properly restricting external entity references. Attackers can exploit this to read local files, trigger internal network requests, or cause denial of service.

Wie gravierend ist CWE-611?

MITRE hat für diese Schwachstelle keine Exploit-Wahrscheinlichkeit veröffentlicht. Behandle sie als mittlere Auswirkung, bis dein Threat Model anderes belegt.

Welche Sprachen oder Plattformen sind von CWE-611 betroffen?

MITRE lists the following affected platforms: XML, Web Based.

Wie kann ich CWE-611 verhindern?

Many XML parsers and validators can be configured to disable external entity expansion.

Wie erkennt und behebt Plexicus CWE-611?

Die SAST-Engine von Plexicus erkennt die Datenfluss-Signatur von CWE-611 bei jedem Commit. Bei einem Treffer öffnet unser Codex-Remedium-Agent einen Fix-PR mit korrigiertem Code, Tests und einer einzeiligen Zusammenfassung für den Reviewer.

Wo erfahre ich mehr über CWE-611?

MITRE veröffentlicht die kanonische Definition unter https://cwe.mitre.org/data/definitions/611.html. Für ergänzende Hinweise kannst du auch die OWASP- und NIST-Dokumentation heranziehen.

Verwandte Schwachstellen

Weaknesses related to CWE-611

CWE-610 Parent

Externally Controlled Reference to a Resource in Another Sphere

This vulnerability occurs when an application uses user-supplied input to reference a resource located outside its intended security…

CWE-1021 Sibling

Improper Restriction of Rendered UI Layers or Frames

This vulnerability occurs when a web application fails to properly control whether its pages can be embedded within frames or UI layers…

CWE-15 Sibling

External Control of System or Configuration Setting

This vulnerability occurs when an application allows users to directly modify critical system settings or configuration values from an…

CWE-384 Sibling

Session Fixation

Session fixation occurs when an application authenticates a user without first destroying the previous session ID. This allows an attacker…

CWE-441 Sibling

Unintended Proxy or Intermediary ('Confused Deputy')

A confused deputy vulnerability occurs when a system receives a request from a client and forwards it to an external destination without…

CWE-470 Sibling

Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection')

This vulnerability occurs when an application uses unvalidated external input, like a URL parameter or form field, to dynamically decide…

CWE-601 Sibling

URL Redirection to Untrusted Site ('Open Redirect')

An open redirect vulnerability occurs when a web application uses unvalidated user input to determine the destination of a redirect,…

CWE-73 Sibling

External Control of File Name or Path

This vulnerability occurs when an application uses unvalidated user input to construct file or directory paths for filesystem operations.

CWE-918 Sibling

Server-Side Request Forgery (SSRF)

Server-Side Request Forgery (SSRF) occurs when a web application fetches a remote resource based on user-controlled input, but fails to…

Bereit, wenn du es bist

Schluss mit dem Bezahlen pro Entwickler.
Schließ den Kreislauf.

Plexicus ist die KI-native ASPM, die scannt, filtert, fixt, pentestet und erklärt — autonom. Unbegrenzte Entwickler, unbegrenzte Repos, Fair-Use-KI-Aktionen. Echter kostenloser Tarif, €269/mo jährlich, wenn du bereit bist.