EMZETT.
Login

XXE: externe XML-Entitäten

Kurz: XXE („XML External Entity”) nutzt aus, dass manche XML-Parser in einem Dokument auf externe Dateien oder Adressen verweisen dürfen. So kann ein manipuliertes Dokument Serverdateien auslesen.

Genauer: XML erlaubt in der DOCTYPE-Angabe sogenannte Entitäten, die auf Dateien (file://) oder URLs zeigen. Ein Parser mit Standardeinstellungen lädt sie und setzt den Inhalt in das Dokument ein.

Im Detail

  • Folgen: Auslesen lokaler Dateien, Anfragen an interne Dienste (SSRF), Dienstausfall durch riesige verschachtelte Entitäten („Billion Laughs”).
  • Wo es auftritt: Dort, wo XML angenommen wird: SOAP-Schnittstellen, SVG-Uploads, Office-Dateien (DOCX, XLSX sind ZIP mit XML), RSS, SAML.
  • Gegenmittel: DTDs und externe Entitäten im Parser abschalten (bei den meisten Bibliotheken eine Einstellung, zum Beispiel disallow-doctype-decl), aktuelle Bibliotheken nutzen, wo möglich JSON statt XML.
  • Prüfen: Testdokumente mit Entitäten in Entwicklung und Tests, Abhängigkeitsprüfungen.
  • Einordnung: Steht in der Liste der häufigsten Web-Risiken (OWASP).

Siehe auch: SQL-Injection