È stato scoperto che una pagina di accesso standard di WordPress era in grado di trasformare un singolo tentativo di accesso fallito nell’esecuzione di codice JavaScript sul sito e, con un po’ di fortuna, persino nell’esecuzione di codice PHP sul server.
Gli sviluppatori di WordPress hanno corretto la vulnerabilità nella versione 7.0.3 e raccomandano agli amministratori di aggiornare i propri siti il prima possibile.
La vulnerabilità è stata identificata con il codice CVE-2026-64638 e ha ricevuto un punteggio CVSS di 8.9. Il problema è classificato come XSS reflected e risiede direttamente nel modulo di accesso di WordPress.
Un utente malintenzionato non ha bisogno di un account sul sito di destinazione per eseguire codice JavaScript dannoso. I ricercatori di pwn.ai hanno anche dimostrato una catena di attacchi più pericolosa chiamata XSS2Shell che, in determinate condizioni, consente l’esecuzione di codice PHP sul server.
L’errore si è verificato perché diversi meccanismi di WordPress hanno interpretato la stessa stringa in modo differente. Se un tentativo di accesso fallisce, il sistema visualizza il nome utente inserito nel messaggio di errore. Prima di essere visualizzata, la stringa viene filtrata attraverso diversi parametri, tra cui la funzione PHP strip_tags() e il meccanismo KSES di WordPress.
A questo punto, entra in gioco una funzionalità inaspettata di WordPress stesso. Lo script user-profile.js, che in genere si occupa degli elementi del profilo utente e del recupero della password, viene caricato sulla pagina di login. Gli elementi HTML aggiunti dall’attaccante costringono il JavaScript nativo di WordPress a inviare automaticamente una richiesta all’indirizzo specificato. Utilizzando l’API REST e il supporto JSONP, i ricercatori sono stati in grado di trasformare questa richiesta in un’esecuzione JavaScript all’interno del sito web attaccato.
Un attacco XSS da solo non implica il completo controllo del server. Per eseguire il codice PHP, i ricercatori avevano bisogno di un amministratore di WordPress già connesso che aprisse una pagina controllata dall’attaccante. Nella dimostrazione, è stato sufficiente un solo clic.
La pagina malevola sfrutta quindi il meccanismo integrato di WordPress per le password delle applicazioni e costringe il browser dell’amministratore a confermare una password API separata. L’attaccante ottiene questa chiave di accesso, pubblica una pagina con il proprio codice JavaScript tramite l’API REST e sfrutta la sessione attiva dell’amministratore per ottenere un nonce e scaricare un archivio ZIP contenente il plugin. Il file PHP all’interno del plugin scaricato può essere richiamato direttamente, senza nemmeno dover attivare il plugin stesso.
WordPress sottolinea che la trasformazione di una vulnerabilità XSS in esecuzione di codice remoto dipende da diverse condizioni che l’attaccante non può garantire in anticipo. La vittima deve disporre di una sessione amministrativa attiva e interagire con la pagina predisposta. Pertanto, la vulnerabilità CVE-2026-64638 non può essere considerata una vulnerabilità RCE pre-autenticazione completamente autonoma, sebbene la vulnerabilità XSS originale non richieda l’autenticazione.
La vulnerabilità è stata scoperta dal sistema pwn.ai, che utilizza diversi agenti di intelligenza artificiale e modelli open-source. Come punto di partenza, gli sviluppatori hanno utilizzato uno studio del 2022 sulla tecnica Same Origin Method Execution. Secondo pwn.ai, ci sono voluti quasi quattro giorni per trovare e ricostruire l’intera catena. La vulnerabilità è stata riprodotta il 26 luglio, segnalata al team di WordPress il 27 luglio e gli sviluppatori hanno rilasciato una correzione il 6 agosto.
I ricercatori hanno testato separatamente la vulnerabilità XSS su due installazioni reali di WordPress 7.0.2 senza autorizzazione preventiva. Il team ha riprodotto l’intera catena di attacco fino all’esecuzione del codice PHP nel proprio ambiente di test e non ha tentato di compromettere server di terze parti. Al 7 agosto, non sono state segnalate vulnerabilità CVE-2026-64638 sfruttate in attacchi reali.
La correzione è stata inclusa in WordPress 7.0.3. Il team di progetto sta inoltre effettuando il backport della patch alle versioni precedenti che ricevono ancora aggiornamenti di sicurezza, fino a WordPress 4.7. I proprietari dei siti con aggiornamenti automatici in background dovrebbero installare la patch automaticamente, ma WordPress consiglia di verificare manualmente la versione e di non rimandare l’aggiornamento.
Ricercatore di sicurezza informatica con esperienza nell’analisi delle vulnerabilità, nella mitigazione del rischio cyber, nelle attività di red teaming ed ethical hacking e nella protezione di sistemi complessi. Specializzato in penetration testing e Threat Intelligence, contribuisce al rafforzamento della resilienza digitale di infrastrutture e reti aziendali.
Aree di competenza: Penetration Testing, Threat Intelligence, Red Teaming, Vulnerability Assessment, Incident Response