WordPress 7.1.1 corregge la falla dei commenti Comment2Shell
WordPress ha rilasciato la versione 7.1.1 per correggere una falla nel core di WordPress che permetteva a un visitatore anonimo di inserire uno script nascosto attraverso il modulo dei commenti e, in determinate condizioni, di arrivare a far eseguire a un attaccante comandi sul server del sito. La falla è tracciata come CVE-2026-93485 e ha ricevuto il nome Comment2Shell. WordPress ha distribuito la correzione il 17 settembre e ha invitato i proprietari dei siti ad aggiornare immediatamente.
Non ci sono segnali che la falla sia stata usata in attacchi, e non compare nella lista del governo degli Stati Uniti delle falle software attivamente sfruttate. Patchstack, la società di sicurezza che ha assegnato l'identificativo CVE, le ha attribuito un punteggio di 7,1 su 10 nella scala CVSS, un punteggio di gravità molto usato che va da 0 a 10, dove un numero più alto indica un problema più serio. Rafie Muhammad, il ricercatore di sicurezza che ha segnalato il bug, ha descritto l'intera catena in un'analisi pubblicata il 21 settembre.
La falla si annidava in uno spazio vuoto tra due passaggi che WordPress esegue su ogni commento. Primo, quando un commento viene salvato, WordPress controlla il suo testo alla ricerca di HTML pericoloso, il linguaggio di marcatura usato per costruire le pagine web, e rimuove ciò che non consente. Secondo, quando il commento viene visualizzato, WordPress lo riformatta. Secondo l'analisi di Muhammad, il trucco era un'interruzione di riga inserita all'interno dell'attributo di un tag HTML che WordPress consente. Un attributo è il dettaglio aggiuntivo contenuto in un tag, come l'indirizzo a cui punta un link. Durante il passaggio di visualizzazione, una delle routine di formattazione di WordPress separava quel tag e spostava il testo dell'attaccante in una posizione in cui il browser lo leggeva come un gestore di eventi attivo. Un gestore di eventi è un piccolo pezzo di codice che il browser esegue automaticamente quando accade qualcosa sulla pagina, come il completamento del caricamento. Non serviva alcun clic: lo script veniva eseguito non appena qualcuno apriva la pagina che conteneva il commento.
Quello script veniva eseguito nel browser di chiunque aprisse la pagina, che fosse connesso o meno, e agiva con il livello di accesso al sito di quella stessa persona. Per trasformarlo in esecuzione di codice sul server serviva una condizione in più: un amministratore connesso doveva aprire la pagina che conteneva il commento. Lo script poteva allora usare la sessione attiva dell'amministratore, lo stato che dice a WordPress chi è connesso così che la persona non debba reinserire la password a ogni azione, per caricare un plugin contenente una web shell. Una web shell è un piccolo file che esegue qualunque comando un attaccante gli invii. Installare un plugin attraverso il browser di un amministratore è una via nota da quel browser al pieno controllo del server.
L'attacco dipendeva anche da come un sito visualizza i commenti. Funzionava sui siti che usano un block theme, il tipo di modello di design che costruisce le pagine con lo stesso sistema a blocchi usato per i contenuti, che è il predefinito di WordPress dal tema Twenty Twenty-Two. Anche alcuni temi classici erano interessati, dove formattano i commenti attraverso lo stesso passaggio; l'analisi di Muhammad cita Twenty Twenty-One tra questi.
Perché tutto questo accadesse, il commento doveva prima comparire sulla pagina. WordPress ha descritto la falla come sfruttabile solo subordinatamente all'approvazione del commento. Per impostazione predefinita, un commento di un nuovo autore viene trattenuto finché qualcuno non lo approva, quindi non compare da solo. Ma il ricercatore ha descritto modi per aggirare quel controllo che permettevano a un commento di raggiungere la pagina senza approvazione. La conclusione di Patchstack è stata netta: la moderazione non è un controllo di sicurezza.
Sulla correzione in sé, le versioni interessate vanno dalla 4.7 alla 7.1. Le release corrette per i rami attuali sono WordPress 7.1, da aggiornare a 7.1.1; WordPress 7.0, da aggiornare a 7.0.5; e WordPress 6.9, da aggiornare a 6.9.8. I rami più vecchi, fino alla 4.7, hanno una propria release corretta, a partire dalla 4.7.36, e ogni ramo è elencato nella documentazione delle release di WordPress.
Un sito che non può aggiornare immediatamente può chiudere la via d'ingresso disattivando i commenti sui singoli articoli o disattivando i commenti su tutto il sito, e un web application firewall, un filtro che si pone davanti a un sito web e blocca le richieste malevole note, o un plugin di sicurezza può bloccare il commento creato ad arte. Né WordPress né il ricercatore hanno pubblicato una soluzione alternativa separata, e Muhammad ha raccomandato semplicemente di aggiornare il core di WordPress, osservando che la 7.1.1 è una release di sicurezza. L'aggiornamento corregge la falla, ma non annulla alcuna modifica già apportata da un attaccante, quindi un sito che ha motivo di ritenere di essere stato preso di mira dovrebbe anche cercare plugin o file che non riconosce.
WordPress 7.1.1 ha corretto 11 problemi di sicurezza in tutto. Questa falla dei commenti era l'unica che un attaccante senza account poteva raggiungere, e la maggior parte delle altre richiedeva un utente connesso con un certo livello di accesso. La stessa release ha corretto una seconda falla, chiamata Click2Shell, in cui un link creato ad arte poteva far installare a WordPress un tema e, insieme a una seconda debolezza in quel tema, eseguire codice sul server. Anche questa richiedeva che un amministratore connesso aprisse il link.
Il quadro più ampio conta per chiunque gestisca un sito WordPress. Il core di WordPress ha avuto altre falle gravi quest'anno. A luglio, un bug chiamato wp2shell permetteva agli attaccanti di eseguire codice senza alcun login, e le autorità statunitensi lo hanno poi elencato come usato in attacchi reali. Ad agosto, i ricercatori hanno trasformato una falla di scripting nella pagina di login in esecuzione di codice attraverso un amministratore. Sono falle separate dal bug dei commenti, e nessuna di esse cambia la lezione di fondo: i moduli dei commenti e le pagine di login sono porte d'ingresso a un sito, e l'unica risposta affidabile a una falla nota è la release corretta dal fornitore, applicata rapidamente.
Per i proprietari di siti che preferiscono non inseguire da soli le note di rilascio, AEU Hosting, l'hosting WordPress gestito dell'azienda, è costruito attorno al mantenimento gestito della piattaforma e dei suoi aggiornamenti per i siti che ospita, che è esattamente la routine che decide se una correzione come la 7.1.1 raggiunge un sito il giorno in cui viene distribuita o mesi dopo.