adv

Una ricerca migliore sostituisce la vulnerabilità di WordPress che colpisce fino a oltre 1 milione di siti

È stata scoperta e risolta una vulnerabilità di gravità critica nel plug-in Better Search replace per WordPress che conta oltre 1 milione di installazioni di siti Web attive. Gli attacchi riusciti potrebbero portare a cancellazioni arbitrarie di file, recupero di dati sensibili ed esecuzione di codice.

Livello di gravità della vulnerabilità

La gravità delle vulnerabilità viene valutata in base a un sistema di punti con valutazioni descritte che vanno da basso a critico:

  • Basso 0,1-3,9
  • Medio 4.0-6.9
  • Alto 7,0-8,9
  • Critico 9.0-10.0

La gravità della vulnerabilità scoperta nel plug-in Better Search replace è classificata come Critica, ovvero il livello più alto, con un punteggio di 9,8 sulla scala di gravità da 1 a 10.

Screenshot del punteggio di gravità di 9,8 di una vulnerabilità scoperta nel plugin Better Search Sostituisci WordPressIllustrazione di WordfenceScreenshot del punteggio di gravità di 9,8 di una vulnerabilità scoperta nel plugin Better Search Sostituisci WordPress

Una ricerca migliore sostituisce il plugin WordPress

Il plugin è sviluppato da WP Engine ma è stato originariamente creato dalla società di sviluppo Delicious Brains acquisita da WP Engine. Better Search replace è uno strumento WordPress popolare che semplifica e automatizza il processo di esecuzione di un'attività di ricerca e sostituzione su un database di un sito Web WordPress, utile in un'attività di migrazione del sito o del server. Il plugin è disponibile in una versione Pro gratuita e a pagamento.

Il sito web del plugin elenca le seguenti funzionalità della versione gratuita:

  • “Supporto della serializzazione per tutte le tabelle
  • La possibilità di selezionare tabelle specifiche
  • La possibilità di eseguire un “test” per vedere quanti campi verranno aggiornati
  • Nessun requisito del server a parte un'installazione in esecuzione di WordPress
  • Supporto multisito WordPress”

La versione Pro a pagamento ha funzionalità aggiuntive come la possibilità di tenere traccia di ciò che è stato modificato, la possibilità di eseguire il backup e importare il database mentre il plug-in è in esecuzione e il supporto esteso.

La popolarità del plugin è dovuta alla facilità d'uso, all'utilità e alla storia di plugin affidabile.

Vulnerabilità dell'iniezione di oggetti PHP

Una vulnerabilità PHP Object Injection, nel contesto di WordPress, si verifica quando un input fornito dall'utente viene non serializzato in modo non sicuro. La deserializzazione è un processo in cui le rappresentazioni di stringhe di oggetti vengono riconvertite in oggetti PHP.

L'Open Worldwide Application Security Project (OWASP) senza scopo di lucro offre una panoramica generale descrizione della vulnerabilità PHP Object Injection:

“PHP Object Injection è una vulnerabilità a livello di applicazione che potrebbe consentire a un utente malintenzionato di eseguire diversi tipi di attacchi dannosi, come Code Injection, SQL Injection, Path Traversal e Application Denial of Service, a seconda del contesto.

La vulnerabilità si verifica quando l'input fornito dall'utente non viene adeguatamente ripulito prima di essere passato alla funzione PHP unserialize(). Poiché PHP consente la serializzazione degli oggetti, gli aggressori potrebbero passare stringhe serializzate ad hoc a una chiamata vulnerabile unserialize(), con conseguente inserimento arbitrario di oggetti PHP nell'ambito dell'applicazione.

Per sfruttare con successo una vulnerabilità PHP Object Injection devono essere soddisfatte due condizioni:

  • L'applicazione deve avere una classe che implementa un metodo magico PHP (come __wakeup o __destruct) che può essere utilizzato per eseguire attacchi dannosi o per avviare una “catena POP”.
  • Tutte le classi utilizzate durante l'attacco devono essere dichiarate quando viene chiamata la vulnerabile unserialize(), altrimenti per tali classi deve essere supportato il caricamento automatico degli oggetti.”

Se un utente malintenzionato può caricare (iniettare) un input per includere un oggetto serializzato di sua scelta, può potenzialmente eseguire codice arbitrario o compromettere la sicurezza del sito web. Come accennato in precedenza, questo tipo di vulnerabilità sorge solitamente a causa di un’inadeguata sanificazione degli input degli utenti. La sanificazione è un processo standard di controllo dei dati di input in modo che siano consentiti solo i tipi di input previsti e che gli input non sicuri vengano rifiutati e bloccati.

Nel caso del plugin Better Search replace, la vulnerabilità è stata esposta nel modo in cui gestiva la deserializzazione durante le operazioni di ricerca e sostituzione. Una funzionalità di sicurezza critica mancante in questo scenario era una catena POP, una serie di classi e funzioni collegate che un utente malintenzionato può utilizzare per attivare azioni dannose quando un oggetto non viene serializzato.

Sebbene il plug-in Better Search replace non contenesse una catena di questo tipo, rimaneva il rischio che se un altro plug-in o tema installato sullo stesso sito Web contenesse una catena POP, ciò avrebbe potuto consentire a un utente malintenzionato di lanciare attacchi.

Wordfence descrive la vulnerabilità:

“Il plugin Better Search replace per WordPress è vulnerabile all’iniezione di oggetti PHP in tutte le versioni fino alla 1.4.4 inclusa tramite la deserializzazione di input non attendibili.
Ciò consente agli aggressori non autenticati di iniettare un oggetto PHP.

Nel plugin vulnerabile non è presente alcuna catena POP. Se una catena POP è presente tramite un plugin o un tema aggiuntivo installato sul sistema di destinazione, potrebbe consentire all’aggressore di eliminare file arbitrari, recuperare dati sensibili o eseguire codice.

In risposta a questa scoperta, WP Engine ha prontamente risolto il problema. La voce del changelog relativa all'aggiornamento alla versione 1.4.5, rilasciata il 18 gennaio 2024, evidenzia le misure adottate:

“Sicurezza: l'annullamento della serializzazione di un oggetto durante le operazioni di ricerca e sostituzione ora passa 'allowed_classes' => false per evitare di creare un'istanza dell'oggetto e di eseguire potenzialmente codice dannoso archiviato nel database.”

Questo aggiornamento è arrivato dopo la divulgazione responsabile della vulnerabilità da parte di Wordfence il 18 dicembre 2023, seguita dallo sviluppo e dal test della correzione da parte di WP Engine.

Cosa fare in risposta

Gli utenti del plug-in Better Search replace sono invitati ad aggiornare immediatamente alla versione più recente per proteggere i propri siti Web da attività indesiderate.

Supporto
1
🛎️ Chatta con noi!
Scan the code
Ciao 👋
Hai bisogno di aiuto?