XXE-Schwachstelle

XXE-Schwachstelle

Eine XXE-Schwachstelle ist eine Sicherheitslücke in Software, die XML-Dateien verarbeitet: Angreifer können sie ausnutzen, um auf Dateien zuzugreifen, die eigentlich nicht öffentlich sein sollten. Der Name steht für „XML External Entity" – eine Funktion der Auszeichnungssprache XML, die dabei missbraucht wird.

XML ist eine Auszeichnungssprache — eine Art strukturiertes Textformat — mit der Software Daten austauscht und speichert. Innerhalb von XML gibt es ein Feature namens « External Entity »: Man kann an einer Stelle in der XML-Datei einen Platzhalter definieren, der auf eine andere Datei oder eine Webadresse verweist. Der XML-Parser — das Programm, das die XML-Datei liest und verarbeitet — lädt dann diesen Inhalt nach und fügt ihn ein. Ist der Parser schlecht konfiguriert, kann ein Angreifer dieses Verhalten ausnutzen. Er schickt eine manipulierte XML-Datei, die nicht auf harmlose Inhalte zeigt, sondern auf sensible Systemdateien. Genau das nennt man eine XXE-Schwachstelle — kurz für « XML External Entity ».

Was auf dem Spiel steht

Ein erfolgreicher XXE-Angriff kann Angreifern den Inhalt beliebiger Dateien auf dem Server liefern. Auf einem Linux-Server etwa enthält die Datei /etc/passwd eine Liste aller Benutzerkonten des Systems. Über eine XXE-Lücke lässt sie sich mit einer einzigen manipulierten Anfrage auslesen, ohne dass der Angreifer ein Passwort kennt oder sich irgendwo einloggt.

Besonders gefährlich wird es, wenn der Server von innen Zugang zu weiteren Systemen hat, die von außen eigentlich abgeschirmt sind. Der Angreifer nutzt dann den verwundbaren Server als Sprungbrett, um interne Dienste abzufragen — ein Angriff, den man als « Server-Side Request Forgery » bezeichnet. Damit weitet sich eine XXE-Lücke von einem einfachen Dateileck zu einem Einstiegspunkt ins gesamte Netzwerk aus.

Wie der Angriff konkret abläuft

Viele Webanwendungen nehmen XML-Daten von Nutzern entgegen — etwa beim Hochladen einer Datei oder beim Senden einer Anfrage in einem bestimmten Format. Ein Angreifer konstruiert eine XML-Datei mit einem manipulierten Platzhalter. Der sieht vereinfacht so aus: Er definiert eine Entity namens « geheim », die auf die Datei /etc/passwd zeigt, und gibt diese Entity dann irgendwo im XML-Dokument aus. Schickt er diese Datei an den Server, liest der Parser brav die referenzierte Systemdatei und gibt deren Inhalt in der Antwort zurück — weil niemand ihm gesagt hat, dass er das nicht darf.

Das Grundproblem ist, dass das External-Entity-Feature in modernen Anwendungen fast nie gebraucht wird, aber in vielen Parsern standardmäßig aktiviert ist. Die Verteidigung ist daher vergleichsweise einfach: Man schaltet das Feature im Parser ab. Trotzdem taucht die Lücke regelmäßig auf, weil Entwickler externe Bibliotheken zum Verarbeiten von XML einsetzen, ohne deren Standardeinstellungen zu hinterfragen.

Ein zusätzlicher Schutz ist die Eingabevalidierung: Die Anwendung prüft eingehende XML-Dateien gegen ein festes Schema und lehnt alles ab, was nicht diesem Schema entspricht. So kommt eine manipulierte Entity erst gar nicht bis zum Parser.

XXE in Sicherheitslisten und realen Angriffen

Die gemeinnützige Organisation OWASP — sie veröffentlicht regelmäßig eine Liste der gefährlichsten Web-Sicherheitslücken — führte XXE lange als eigenständigen Punkt in ihrer « Top 10 ». Seit 2021 ist sie in der Kategorie « Security Misconfiguration » (fehlerhafte Sicherheitskonfiguration) aufgegangen, weil die Ursache fast immer eine falsch eingestellte Bibliothek ist. Auf der Liste zu stehen bedeutet: Angreifer kennen diesen Angriffsweg gut, und er wird aktiv genutzt.

Reale Fälle hat es in großem Maßstab gegeben. 2018 meldete der US-amerikanische Fahrdienst Uber eine Schwachstelle dieser Art in einem seiner Systeme. Ähnliche Lücken wurden in bekannten Unternehmenssoftwarepaketen und Cloud-Diensten gefunden. Gerade Unternehmensanwendungen kommunizieren häufig intern über XML-Schnittstellen — ein Umfeld, in dem schlecht konfigurierte Parser besonders leicht übersehen werden.

In Sicherheits-Wettbewerben, den sogenannten « Capture the Flag »-Challenges, gehört XXE zu den Standardaufgaben. Wer IT-Sicherheit lernt, begegnet der Lücke deshalb früh. Das spiegelt die Praxis wider: Der Angriffsweg ist bekannt, dokumentiert und dennoch in der freien Wildbahn immer wieder anzutreffen.

Subscribe free. Unsubscribe the second it sucks.

High-signal news across AI, business, UX, and tech. Every morning.