Vulnerabilità plugin WordPress: Really Simple Security

Milioni di siti WordPress che utilizzano le versioni gratuite e Pro di Really Simple Security sono interessati da una vulnerabilità critica di bypass dell’autenticazione.

Questa è una delle vulnerabilità più gravi relative alla sicurezza per WordPress. Questa vulnerabilità riguarda Really Simple Security, precedentemente noto come Really Simple SSL , installato su oltre 4 milioni di siti Web e consente a un aggressore di ottenere da remoto l’accesso amministrativo completo a un sito che esegue il plugin.

La vulnerabilità è programmabile, il che significa che può essere trasformata in un attacco automatizzato su larga scala, che prende di mira i siti web WordPress. Il fornitore ha collaborato con il team dei plugin WordPress per forzare l’aggiornamento di tutti i siti che eseguono questo plugin prima che pubblicassimo questo post.

Puoi aiutare creando quanta più consapevolezza possibile su questo problema nella comunità, assicurandoti che tutti i siti ritardatari e non mantenuti vengano aggiornati alla versione con patch. Incoraggiamo i provider di hosting ad aggiornare forzatamente i propri clienti ed eseguire scansioni sui loro file system di hosting per assicurarti che nessun cliente stia eseguendo una versione senza patch di questo plugin.

È importante notare che anche le versioni Pro di questo plugin sono interessate da questa vulnerabilità e i siti che eseguono le versioni premium dovrebbero verificare che siano state aggiornate automaticamente, quindi aiutateci a far circolare la notizia. Sembra che i siti senza una licenza valida potrebbero non avere aggiornamenti automatici funzionanti.

I dettagli
Il 6 novembre 2024, il nostro team Wordfence Threat Intelligence ha identificato e avviato il processo di divulgazione responsabile per una vulnerabilità Authentication Bypass nel plugin Really Simple Security e nei plugin Really Simple Security Pro e Pro Multisite , che sono installati attivamente su oltre 4.000.000 di siti web WordPress. La vulnerabilità consente a un aggressore di ottenere in remoto l’accesso a qualsiasi account sul sito, incluso l’account amministratore, quando è abilitata la funzionalità di autenticazione a due fattori.

Gli utenti di Wordfence Premium , Wordfence Care e Wordfence Response hanno ricevuto una regola firewall per proteggersi da eventuali exploit che prendono di mira questa vulnerabilità il 6 novembre 2024. I siti che utilizzano la versione gratuita di Wordfence riceveranno la stessa protezione 30 giorni dopo, il 6 dicembre 2024.

Abbiamo contattato il team di Really Simple Plugins il 6 novembre 2024 e abbiamo ricevuto una risposta il 7 novembre 2024. Dopo aver fornito tutti i dettagli di divulgazione, lo sviluppatore ha rilasciato la patch per i plugin Pro il 12 novembre 2024 e per il plugin Free il 14 novembre 2024.

A causa della gravità critica di questa vulnerabilità (punteggio CVSS 9.8 Critico), il fornitore del plugin ha collaborato con il team dei plugin di WordPress.org per spingere un aggiornamento di sicurezza forzato alla versione patchata, 9.1.2, per chiunque utilizzi una versione vulnerabile del plugin. Ciò significa che la maggior parte dei siti dovrebbe già essere patchata o lo sarà presto, tuttavia, invitiamo gli utenti a verificare che i loro siti siano stati aggiornati all’ultima versione patchata di Really Simple Security, versione 9.1.2 al momento della stesura di questo articolo, il prima possibile se utilizzano la versione 9.0.0 o successiva. Un thread nel forum di WordPress.org per il plugin indica che gli aggiornamenti forzati sono iniziati questa mattina e potrebbero continuare nei prossimi giorni.

Riepilogo della vulnerabilità
Descrizione: Really Simple Security (Free, Pro e Pro Multisite) 9.0.0 – 9.1.1.1 – Authentication Bypass
Plugin interessati: Really Simple Security, Really Simple Security Pro, Really Simple Security Pro Multisite
Slug del plugin: really-simple-ssl , really-simple-ssl-pro , really-simple-ssl-pro-multisite
Versioni interessate: 9.0.0 – 9.1.1.1
ID CVE: CVE-2024-10924
Punteggio CVSS: 9.8 (critico)
Vettore CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Ricercatore: István Márton (Wordfence)
Versione completamente patchata: 9.1.2

I plugin Really Simple Security (Free, Pro e Pro Multisite) per WordPress sono vulnerabili all’aggiramento dell’autenticazione nelle versioni da 9.0.0 a 9.1.1.1. Ciò è dovuto alla gestione impropria degli errori di controllo utente nelle azioni API REST a due fattori con la funzione ‘check_login_and_get_user’. Ciò consente agli aggressori non autenticati di accedere come qualsiasi utente esistente sul sito, come un amministratore, quando l’impostazione “Autenticazione a due fattori” è abilitata (disabilitata per impostazione predefinita).

Analisi tecnica
Il plugin Really Simple Security, precedentemente noto come Really Simple SSL, è stato recentemente rinominato con l’ultimo aggiornamento della versione principale ed è stato ampliato con molte funzionalità di sicurezza come protezione dell’accesso, rilevamento delle vulnerabilità e autenticazione a due fattori. Sfortunatamente, una delle funzionalità che aggiunge l’autenticazione a due fattori è stata implementata in modo non sicuro, rendendo possibile agli aggressori non autenticati di ottenere l’accesso a qualsiasi account utente, incluso un account amministratore, con una semplice richiesta quando l’autenticazione a due fattori è abilitata.

Esaminando il codice si scopre che il plugin utilizza la skip_onboarding()funzione nella Rsssl_Two_Factor_On_Board_Apiclasse per gestire l’autenticazione tramite REST API.

CODICE
public function skip_onboarding( WP_REST_Request $request ): WP_REST_Response {
$parameters = new Rsssl_Request_Parameters( $request );
// As a double we check the user_id with the login nonce.
$user = $this->check_login_and_get_user( (int)$parameters->user_id, $parameters->login_nonce );
return $this->authenticate_and_redirect( $parameters->user_id, $parameters->redirect_to );
}

La check_login_and_get_user()funzione verifica l’utente utilizzando i parametri user_ide login_nonce.

CODICE

private function check_login_and_get_user( int $user_id, string $login_nonce ) {
if ( ! Rsssl_Two_Fa_Authentication::verify_login_nonce( $user_id, $login_nonce ) ) {
return new WP_REST_Response( array( 'error' => 'Invalid login nonce' ), 403 );
}
/**
* Get the user by the user ID.
*
* @var WP_User $user
*/
$user = get_user_by( 'id', $user_id );
return $user;
}

Il problema e la vulnerabilità più significativi sono causati dal fatto che la funzione restituisce un WP_REST_Responseerrore in caso di fallimento, ma questo non viene gestito all’interno della funzione. Ciò significa che anche nel caso di un nonce non valido, l’elaborazione della funzione continua e richiama authenticate_and_redirect(), che autentica l’utente in base all’ID utente passato nella richiesta, anche quando l’identità di quell’utente non è stata verificata.

In definitiva, questo rende possibile agli attori della minaccia di bypassare l’autenticazione e ottenere l’accesso ad account arbitrari su siti che eseguono una versione vulnerabile del plugin. Come sempre, le vulnerabilità di bypass dell’autenticazione e il conseguente accesso ad account utente con privilegi elevati, rendono facile per gli attori della minaccia compromettere completamente un sito WordPress vulnerabile e infettarlo ulteriormente.

Questa vulnerabilità colpisce in modo critico solo i proprietari di siti che hanno abilitato l'”Autenticazione a due fattori” nelle impostazioni del plugin.