Due vulnerabilità nel core di WordPress, se concatenate tra loro, permettono a un attaccante completamente anonimo di eseguire codice arbitrario su un'installazione WordPress standard, senza plugin, senza un account valido e senza alcuna interazione da parte della vittima. La catena, ribattezzata dai ricercatori "wp2shell", è stata resa pubblica il 17 luglio 2026 e, secondo più fonti, risulta già sfruttata attivamente in rete a poche ore dalla divulgazione.

Cosa è stato scoperto

La catena d'attacco combina due difetti distinti:

  • CVE-2026-63030, una vulnerabilità di "confusione di route" (CWE-436) nell'endpoint REST API /wp-json/batch/v1, introdotta con WordPress 6.9. Presa singolarmente ha un impatto limitato, ma permette di aggirare un controllo che normalmente blocca le richieste anonime.
  • CVE-2026-60137, un'iniezione SQL nel parametro author__not_in della classe WP_Query, il componente che genera gran parte delle query al database in WordPress. Presente dalla versione 6.8, da sola richiederebbe un utente autenticato per essere sfruttata.

Concatenando le due falle, un attaccante anonimo può raggiungere l'endpoint REST vulnerabile, usare la confusione di route per far scivolare un parametro malevolo dentro WP_Query e da lì arrivare all'esecuzione di codice arbitrario sul server.

Come può essere sfruttata

Secondo Searchlight Cyber, l'azienda che ha scoperto il difetto principale attraverso il programma HackerOne di WordPress, l'attacco non richiede alcuna precondizione: funziona contro un'installazione WordPress "di base", senza plugin di terze parti installati. È esattamente questa assenza di barriere — nessun login, nessuna configurazione particolare, nessuna interazione dell'utente — a rendere la falla estremamente pericolosa su scala.

Un proof-of-concept pubblico, disponibile su GitHub a poche ore dalla disclosure, dimostra come sia possibile leggere direttamente il contenuto del database, inclusi gli hash delle password amministrative. Diverse società di sicurezza (tra cui Tenable e Wordfence) hanno confermato tentativi di sfruttamento attivo già tra il 18 e il 20 luglio, appena tre giorni dopo la pubblicazione della falla.

Perché conta

Secondo le stime di Searchlight Cyber, oltre 500 milioni di siti web utilizzano WordPress, il che rende questa vulnerabilità una delle superfici d'attacco potenzialmente più estese mai divulgate quest'anno. Trattandosi di un difetto nel core della piattaforma — non in un plugin o in un tema — ogni sito che esegue una versione vulnerabile è esposto, indipendentemente da cosa vi sia installato sopra.

Vista la gravità, il team di sicurezza di WordPress.org ha attivato gli aggiornamenti automatici forzati per tutte le installazioni supportate, una misura riservata solo alle situazioni più critiche.

Cosa fare

  • Verificare la versione di WordPress installata e aggiornare immediatamente a:
  • 7.0.2 o successiva (se si era su 7.0.x);
  • 6.9.5 o successiva (se si era su 6.9.x);
  • 6.8.6 o successiva (se si era su 6.8.x — su questo ramo è interessata solo la componente di SQL injection, non l'intera catena RCE, ma va comunque corretta).
  • Non fidarsi ciecamente dell'aggiornamento automatico forzato: verificare manualmente che la patch sia stata effettivamente applicata su tutti i siti gestiti.
  • Monitorare i log del server e delle API REST alla ricerca di richieste anomale verso l'endpoint /wp-json/batch/v1 o di pattern tipici di SQL injection.
  • Se un sito ha operato per un periodo su una versione vulnerabile prima dell'aggiornamento, effettuare comunque un controllo su temi, plugin, file caricati e account amministratore, per escludere compromissioni già avvenute.

Fonti: BleepingComputer, The Hacker News, Tenable Research, SocRadar, Dark Reading, CyCognito.