In breve: PHP2Shell è il nome di due vulnerabilità di sicurezza critiche in PHP stesso, CVE-2026-109618 e CVE-2026-109619. Tramite esse gli aggressori possono eseguire codice dannoso sui web server vulnerabili senza autenticazione. Il rimedio è solo l'aggiornamento a una versione corretta di PHP, seguito dal riavvio di tutti i processi PHP.
Che cos'è PHP2Shell?
PHP è il linguaggio di programmazione su cui gira gran parte di tutti i siti web: siti aziendali con WordPress o TYPO3, negozi online con Shopware o WooCommerce, portali interni e sviluppi propri. Il 21 ottobre 2026 il progetto PHP ha pubblicato aggiornamenti di sicurezza per due vulnerabilità diventate note con il nome PHP2Shell.
Entrambe le vulnerabilità hanno un punteggio CVSS v4.0 di 9,2, quindi sono classificate come critiche. La conseguenza è in entrambi i casi la stessa: esecuzione di codice dannoso da remoto, senza che l'aggressore debba autenticarsi. Gli esperti parlano di «unauthenticated Remote Code Execution». Chi può eseguire codice sul server può, nel peggiore dei casi, leggere dati, installare backdoor o usare il server per altri attacchi.
Importante da capire: la vulnerabilità non si trova in un CMS o in un plugin specifico, ma in PHP. Un aggiornamento di WordPress, Shopware o TYPO3 quindi non la chiude.
Perché la vulnerabilità è così grave?
Tre punti rendono PHP2Shell particolarmente delicata dal punto di vista delle autorità di sicurezza:
- Diffusione: sono interessate le modalità di esecuzione abituali di PHP, cioè PHP-FPM, Apache con mod_php, php-cgi, FrankenPHP e LiteSpeed. Palo Alto Networks (Unit 42) ha contato più di 22,6 milioni di istanze esposte e potenzialmente vulnerabili.
- Nessun login necessario: l'aggressore non ha bisogno né di una password né di un account utente.
- Momento precoce: con Apache e mod_php, secondo il team PHP, è stato dimostrato un exploit prima ancora che venga eseguito il codice dell'applicazione. Le funzioni di protezione all'interno del sito web allora non intervengono.
Il BSI ha dichiarato il livello di allerta 3 (arancione). Raccomanda l'aggiornamento immediato e, se non è possibile subito, di scollegare temporaneamente dalla rete i web server interessati.
Quali server sono interessati da PHP2Shell?
Le vulnerabilità sono corrette in PHP 8.5.12, 8.4.27, 8.3.36 e 8.2.35. Le versioni più vecchie di questi rami sono interessate. Per PHP 8.1 e precedenti non esistono più aggiornamenti ufficiali; secondo la stampa specializzata sono interessate quasi tutte le versioni fino a PHP 5.4. Trova la panoramica completa alla pagina Quali versioni di PHP sono interessate?.
Una particolarità: le distribuzioni Linux e gli hoster applicano talvolta le correzioni come backport. In tal caso Plesk, ad esempio, continua a mostrare 8.2.34 anche se l'errore è corretto. Sono determinanti lo stato dei pacchetti e la conferma del fornitore. Come verificarlo lo spieghiamo alla pagina Verificare correttamente versione e stato delle patch di PHP.
Che cosa è provato, che cosa è aperto?
Provati sono i due numeri CVE, le versioni corrette e le misure provvisorie pubblicate da php.net. Il 23 ottobre si è aggiunta una segnalazione su un'ulteriore vulnerabilità, CVE-2026-115560, che interviene solo con una configurazione insolita.
Probabile è che gli aggressori continuino a cercare attivamente server senza patch. Secondo i resoconti dei media, un primo tentativo di attacco è stato osservato già il 17 ottobre, quindi prima della pubblicazione delle patch. Cloudflare ha segnalato tentativi di attacco e ha distribuito regole di protezione, ma fa notare che le regole basate sui soli dati della richiesta non bastano.
Aperto è quanti server siano già stati attaccati con successo. Secondo il BSI, inizialmente non erano noti attacchi riusciti su larga scala. Non esistono Indicators of Compromise pubblicati e confermati. Se un server fosse interessato si può quindi valutare solo tramite un'analisi del comportamento. Lo svolgimento nel tempo è riassunto nella cronologia dal 17 al 25 ottobre.
Che cosa dovrebbero fare ora le imprese
- Chiarire chi è responsabile: server proprio, server gestito o hoster.
- Aggiornare PHP a una versione corretta o a un backport confermato.
- Riavviare tutti i processi PHP. I nuovi file da soli non bastano finché vecchi processi girano in memoria.
- Salvare i log, a partire dal 20 ottobre. La stampa specializzata consiglia di conservare questi dati.
- Verificare le tracce. Una patch non rimuove il malware già introdotto e non dimostra che prima non sia successo nulla. Indicazioni in merito sono alla pagina Sono già stato compromesso?.
Un aggiornamento chiude la porta, ma non mette in ordine. Se il Suo server era raggiungibile tra il 17 ottobre e la patch, la verifica delle tracce è un obbligo, non un extra.
Come aiuta concretamente PHP SOS?
Con l'assistenza urgente PHP2Shell ci occupiamo dei passi che molte imprese non riescono a coprire internamente in tempi brevi:
- Inventario: accertiamo versione di PHP, modalità di esecuzione e stato dei pacchetti di ogni server interessato.
- Patch o fase transitoria: installiamo l'aggiornamento oppure, dove non è ancora possibile, applichiamo le misure provvisorie di php.net e chiariamo se il server debba essere scollegato temporaneamente dalla rete.
- Riavvio e prova: riavviamo tutti i processi PHP e documentiamo lo stato prima e dopo.
- Verifica delle tracce: salviamo i log a partire dal 20 ottobre e cerchiamo anomalie, finché l'incidente non è concluso e documentato.
Domande frequenti
PHP2Shell è una vulnerabilità di WordPress?
No. Le vulnerabilità si trovano in PHP, cioè nel linguaggio di programmazione su cui girano WordPress, Shopware, TYPO3 e molti altri sistemi. Un aggiornamento del CMS quindi non le chiude. Conta lo stato di PHP sul server.
Come cliente di un hoster devo fare qualcosa io stesso?
Con l'hosting condiviso, di norma è l'hoster a installare l'aggiornamento di PHP. Dovrebbe comunque farsi confermare per iscritto che la versione di PHP da Lei utilizzata è stata aggiornata e riavviata. Se prima della patch sia accaduto qualcosa, l'aggiornamento non lo chiarisce.
Da dove viene il nome PHP2Shell?
Il nome descrive la conseguenza: tramite PHP un aggressore può, nel peggiore dei casi, ottenere sul server una riga di comando, cioè una shell. Le denominazioni ufficiali sono i numeri CVE CVE-2026-109618 e CVE-2026-109619.
Il mio sito web è già stato attaccato se è stato messo offline?
Non necessariamente. Alcuni fornitori hanno scollegato per precauzione dei siti web dalla rete, come raccomanda il BSI (l'Ufficio federale tedesco per la sicurezza informatica) quando un aggiornamento non è subito possibile. È una misura di protezione e non una prova di un attacco.