Le vulnerabilità PHP consentono l’esecuzione di codice su WordPress
Due vulnerabilità critiche di PHP possono esporre i siti WordPress a remote code execution, vale a dire che un attaccante può far eseguire comandi al servizio sottostante del sito web senza dover prima effettuare l’accesso. PHP, il linguaggio di programmazione in cui è scritta la maggior parte di WordPress, ha pubblicato aggiornamenti di sicurezza di emergenza il 21 ottobre 2026. Le vulnerabilità, CVE-2026-109618 e CVE-2026-109619, hanno entrambe un punteggio CVSS v4.0 di 9,2 su 10. CVSS, o Common Vulnerability Scoring System, è una scala standard per valutare la gravità dei problemi di sicurezza.
Non si tratta di vulnerabilità di WordPress Core, dei plugin o dei temi. Riguardano il servizio PHP che elabora il traffico del sito web, quindi l’installazione di un aggiornamento di WordPress non le correggerà. Le prime release PHP corrette sono 8.5.12, 8.4.27, 8.3.36 e 8.2.35. Le distribuzioni Linux e i fornitori di long-term support possono inserire le stesse correzioni in package che mantengono numeri di versione principale precedenti. Gli amministratori devono quindi controllare la package revision completa, che identifica la build precisa del fornitore, e leggere il relativo avviso di sicurezza invece di basarsi esclusivamente sulla versione principale di PHP.
Entrambe le vulnerabilità possono essere sfruttate senza autenticazione. Se lo sfruttamento riesce, l’attaccante ottiene lo stesso accesso del sito web. A seconda di tale accesso, l’attaccante potrebbe leggere le credenziali del database, modificare i file del sito web, sottrarre dati o installare una backdoor persistente, cioè un accesso nascosto progettato per sopravvivere dopo l’intrusione iniziale. PHP ha confermato la remote code execution per entrambe le vulnerabilità. Ha inoltre confermato un attack path per CVE-2026-109618 che opera prima dell’avvio di WordPress, collocandolo al di fuori della protezione fornita unicamente dai controlli interni a WordPress.
CVE-2026-109618 riguarda la gestione errata dei dati da parte di PHP quando una request provoca l’esaurimento della memoria. La conseguente memory corruption può consentire a un attaccante non autenticato di eseguire codice. CVE-2026-109619 riguarda uno stale worker state: un worker PHP, cioè uno dei processi in esecuzione che gestiscono le request, può continuare a usare i dati di una request già terminata e che avrebbero dovuto essere eliminati. Una request successiva elaborata dallo stesso worker può usare i dati conservati per eseguire codice.
Wordfence Threat Intelligence ha esaminato le patch PHP e testato il comportamento vulnerabile in ambienti di laboratorio PHP e WordPress. In un laboratorio Apache appositamente configurato con PHP 8.5.11, un proof of concept, cioè un test progettato per dimostrare che una vulnerabilità funziona, ha sfruttato CVE-2026-109619 tramite una request web HTTP e ha creato un file di testo temporaneo. Ciò ha confermato l’esecuzione di codice nell’ambiente di test. Lo stesso test ha causato il crash di una normale build ottimizzata di PHP 8.5.11 invece di eseguire codice, mentre PHP 8.5.12, già corretto, è rimasto operativo.
Per CVE-2026-109618, PHP 8.5.11 vulnerabile ha generato un errore durante il test, mentre PHP 8.5.12 ha elaborato normalmente la stessa request del proof of concept. Test separati hanno utilizzato WordPress 7.1.3 con un package Ubuntu PHP 8.5.4 interessato. Request appositamente preparate hanno causato errori o riavvii di PHP in alcune configurazioni, ma Wordfence non è riuscita a ottenere in modo indipendente l’esecuzione di codice per questa vulnerabilità. I test sono iniziati poche ore dopo la pubblicazione delle correzioni e proseguivano su ulteriori attack path e sulle comuni configurazioni di hosting WordPress.
I diversi risultati non rendono sicuro un sistema privo di patch. Potrebbe essere necessario adattare lo sfruttamento a uno specifico server. CrowdStrike riferisce che il suo exploit privato ha funzionato in modo affidabile sui sistemi Intel e AMD, nonché sui sistemi Arm, anche contro worker PHP appena riavviati, sebbene Wordfence non abbia testato in modo indipendente tale exploit non pubblicato. Codice proof of concept pubblico e commenti tecnici sono già in circolazione, ma Wordfence avverte che alcuni esempi sono incompleti, fuorvianti o errati. I proprietari dei siti dovrebbero seguire gli avvisi ufficiali di PHP invece di aspettare di vedere se un exploit pubblico funziona contro il loro specifico server.
PHP 8.1 e le versioni precedenti non ricevono più release dal progetto PHP. Alcuni fornitori di sistemi operativi e di long-term support potrebbero continuare a fornire le correzioni per questi branch. Chiunque utilizzi una versione precedente dovrebbe ottenere dal fornitore una conferma esplicita che entrambe le vulnerabilità siano state corrette oppure passare a un branch PHP supportato. Dopo l’installazione di un package corretto, PHP deve essere riavviato affinché ogni processo in esecuzione carichi il nuovo codice. Un container, un ambiente software isolato distribuito insieme alle proprie dipendenze, dovrebbe essere ricostruito e nuovamente distribuito partendo da un’immagine aggiornata, anziché essere semplicemente riavviato con i vecchi file.
Gli amministratori di WordPress possono controllare la versione che serve il sito web in Tools, Site Health, Info e quindi Server. Il controllo da riga di comando “php -v” non è sufficiente da solo, perché il sito web può utilizzare un’installazione PHP diversa. I clienti di managed hosting dovrebbero chiedere se il servizio PHP che serve il loro sito dispone delle patch per entrambe le CVE e se è stato riavviato. Chi gestisce autonomamente i sistemi deve aggiornare PHP e riavviare Apache, PHP-FPM, che è un servizio che esegue PHP per i web server, o qualsiasi altro servizio PHP. Le agenzie e i fornitori di hosting dovrebbero controllare i siti pubblici, le copie di staging usate per i test, gli indirizzi origin raggiunti dietro servizi intermediari e i container meno recenti.
A titolo precauzionale, gli amministratori dovrebbero conservare i backup e preservare i logs del web server, di PHP, del firewall e del sistema relativi almeno alle 48 ore precedenti la release del 21 ottobre e fino al momento in cui PHP è stato aggiornato e riavviato. Per i siti aggiornati in ritardo, tali registrazioni dovrebbero essere esaminate alla ricerca di attività insolite. L’assenza di evidenti voci sospette non dimostra che lo sfruttamento non sia avvenuto. Le raccomandazioni temporanee di PHP possono ridurre l’esposizione a determinati attack path quando non è possibile applicare immediatamente le patch, ma sono incomplete, possono compromettere il normale funzionamento del sito web e non sostituiscono l’aggiornamento.
Wordfence afferma che il proprio firewall opera all’application layer di WordPress e può bloccare attacchi specifici contro WordPress che gli strumenti generici potrebbero non riconoscere. Queste vulnerabilità PHP esistono al server layer e alcune forme di sfruttamento possono iniziare prima dell’avvio di WordPress; sono quindi necessari controlli di sicurezza anche per PHP, il web server, il sistema operativo e il network edge, cioè il punto in cui il traffico esterno entra nell’infrastruttura. Per i lettori che stanno valutando dove viene eseguito il proprio sito, AEU Hosting è il servizio di managed WordPress hosting di AEU Group, descritto come protetto end to end.
Un’installazione WordPress completamente aggiornata può rimanere esposta finché il servizio PHP sottostante non riceve entrambe le correzioni e non viene riavviato. Wordfence afferma che i clienti dei suoi servizi Care e Response possono contattare il team di incident response se sospettano una compromissione; Wordfence Response dichiara una disponibilità 24 ore su 24 per tutto l’anno e un tempo di risposta di un’ora. L’azione essenziale per ogni sito interessato rimane la stessa: installare un package PHP corretto, riavviare il servizio e verificare l’esatto package che sta effettivamente elaborando le request del sito web.