PHP2Shell spiegato: chi deve applicare la patch al tuo sito e come
Il 21 ottobre 2026 è stata resa pubblica una falla di sicurezza critica in PHP, il linguaggio di programmazione alla base di circa tre siti web su quattro. Siti governativi nei Paesi Bassi, in Francia e in Canada sono stati messi offline per precauzione, e l’agenzia sudcoreana KISA (Korea Internet & Security Agency) ha diffuso indicazioni di risposta urgente. Il settore della sicurezza lo chiama PHP2Shell.
La buona notizia: le patch sono già disponibili e la maggior parte dei grandi provider di hosting le ha già applicate. Il punto critico è che chi applica la patch al tuo sito dipende interamente da come è ospitato. Questa guida spiega chi deve intervenire subito, quali patch esistono e come hanno risposto i principali provider di hosting.
Punti chiave
- PHP2Shell sono due falle critiche di esecuzione di codice da remoto nello stesso PHP (CVSS 9.2), sfruttabili senza effettuare l’accesso.
- Aggiornare WordPress o i plugin non basta. È PHP che va corretto.
- Le versioni corrette sono 8.5.12, 8.4.27, 8.3.36 e 8.2.35 o successive. PHP 8.1 e precedenti non hanno una release ufficiale.
- Con un hosting condiviso o gestito, è il provider a correggere PHP, ma devi verificarlo. Su un VPS o un server dedicato, devi applicare la patch tu e riavviare PHP.
- Per una terza falla (CVE-2026-115560) esiste una soluzione temporanea:
session.upload_progress.enabled = 0.
Che cos’è PHP2Shell?
PHP2Shell è il nome con cui si indicano due vulnerabilità di esecuzione di codice da remoto (RCE) scoperte nel nucleo di PHP.
- CVE-2026-109618: una falla di corruzione della memoria che si attiva sfruttando situazioni di memoria insufficiente
- CVE-2026-109619: una falla che riutilizza uno stato globale già liberato
Entrambe hanno una gravità di CVSS 9.2 su 10, e l’aspetto più preoccupante è che possono essere sfruttate senza accesso e senza un account. Le falle si trovano nella gestione delle richieste di PHP stesso, non in WordPress o in un plugin, quindi l’attacco funziona prima ancora che il codice del tuo sito venga eseguito. Tenere WordPress perfettamente aggiornato non serve se PHP non è corretto.
Si ritiene che siano coinvolte praticamente tutte le versioni di PHP dalla 5.4 in poi e, secondo W3Techs, circa il 75% dei siti web con un linguaggio lato server noto usa PHP. Le falle sono state scoperte dalle società di sicurezza Calif e Wiz durante un’analisi con modelli di IA (OpenAI GPT-5.6 Sol e Google Gemini 4 Argon) e segnalate al team di PHP ad agosto. I dettagli sono trapelati mentre si preparavano le patch, e questo ha anticipato la divulgazione di un giorno. I primi tentativi di attacco reali sono iniziati il giorno stesso della divulgazione e Cloudflare ne ha segnalati milioni. Finora non è stata confermata alcuna violazione riuscita su larga scala, ma gli strumenti di attacco continuano a migliorare: “finora non ci hanno colpito” non è un motivo per abbassare la guardia.
Poi, il 23 ottobre, è stata resa pubblica una terza falla correlata, la CVE-2026-115560. Funziona solo con certe combinazioni di configurazione, per cui il team di PHP consiglia una soluzione temporanea anziché una patch d’emergenza. I dettagli sono più in basso, nella sezione sulle patch.
Chi deve intervenire?
Tutto si riduce a una domanda: “Chi gestisce PHP sul mio sito?” La risposta determina cosa devi fare.
| La tua situazione | Chi applica la patch | Cosa fare |
|---|---|---|
| Gestisci il tuo VPS o server dedicato | Tu (priorità assoluta) | Nessuno lo farà al posto tuo. Aggiorna PHP e riavvia subito il servizio PHP. Segui passo passo la sezione sulle patch di questa guida. |
| Hosting condiviso o gestito (Hostinger, SiteGround, ecc.) | Il tuo provider di hosting | Leggi l’annuncio del tuo provider e verifica che la patch sia stata davvero applicata al tuo sito, tramite il numero di versione o la data di compilazione. Non darlo per scontato. Controlla. |
| Siti con PHP 8.1 o precedente | Tu + verifica con il provider | Per queste versioni non esiste una patch ufficiale. Controlla se il tuo provider offre una propria build con backport. In caso contrario, pianifica subito l’aggiornamento a PHP 8.3 o successivo. |
| Agenzie, freelance e società di manutenzione | Tu | Controlla tutti i siti dei clienti che gestisci. I punti ciechi sono i vecchi siti abbandonati, i server di test e staging e i minisiti per eventi. |
| Server Docker o configurati da te | Tu | Ricostruisci le immagini dei container partendo da un’immagine di base corretta e ripeti il deploy. Aggiornare solo il sistema operativo dell’host non basta. |
| Siti statici senza PHP e normali visitatori | — | Non sono coinvolti. È una falla lato server, quindi sui dispositivi dei visitatori non c’è nulla da fare. |
Quali patch sono disponibili?
Patch ufficiali (21 ottobre 2026)
| La tua versione di PHP | Versione corretta |
|---|---|
| PHP 8.5.x | 8.5.12 o successiva |
| PHP 8.4.x | 8.4.27 o successiva |
| PHP 8.3.x | 8.3.36 o successiva |
| PHP 8.2.x | 8.2.35 o successiva (il supporto di PHP 8.2 termina il 31 dicembre 2026, quindi si consiglia di passare alla 8.3 o successiva) |
| PHP 8.1 o precedente | Nessuna release ufficiale (vedi i backport qui sotto) |
Se gestisci un tuo server, di solito si aggiorna tramite i pacchetti della propria distribuzione. Ubuntu, Debian, AlmaLinux, Amazon Linux e altre hanno già pubblicato pacchetti corretti.
# Esempio per Debian / Ubuntu
sudo apt update
sudo apt upgrade php8.3-fpm php8.3-cli php8.3-common
sudo systemctl restart php8.3-fpmSenza riavvio, la patch non viene applicata. Se aggiorni i pacchetti ma non riavvii PHP-FPM o Apache, il vecchio PHP ancora caricato in memoria continua a gestire le richieste. Le indicazioni della KISA lo segnalano esplicitamente. Se usi il repository Remi su un sistema della famiglia CentOS, tieni presente che il giorno della divulgazione Remi non aveva aggiornamenti: valuta i pacchetti predefiniti della tua distribuzione o una compilazione manuale.
PHP 8.1 o precedente: backport
PHP 8.1, 8.0 e 7.4 non sono più supportati, quindi non esistono release ufficiali con la patch. Hai comunque delle opzioni.
- Il team di PHP ha pubblicato patch minime del codice sorgente (backport) per 7.4, 8.0 e 8.1. Puoi applicarle se compili PHP da solo.
- I pacchetti per Ubuntu e Debian del repository di Ondřej Surý includono backport dalla 5.6 alla 8.1.
- Alcuni provider (Hostinger, 20i, xCloud e altri) hanno pubblicato build corrette proprie, anche per versioni datate. Verifica prima se il tuo provider offre un backport.
I backport, però, sono solo un ripiego. È il momento giusto per passare a PHP 8.3 o successivo.
Terza falla CVE-2026-115560: soluzione temporanea in attesa della patch
La terza falla, resa pubblica il 23 ottobre, riguarda la funzione di avanzamento dell’upload di sessione (session upload progress) di PHP. Con le configurazioni tipiche è difficile da attivare, quindi non c’è una patch d’emergenza. La correzione arriverà con la prossima release regolare. Fino ad allora, la soluzione ufficiale è una sola impostazione:
; Aggiungere a php.ini o alla configurazione del pool PHP-FPM, poi riavviare PHP
session.upload_progress.enabled = 0A meno che il tuo sito non mostri una barra di avanzamento dell’upload, non perdi quasi nulla. Come mostra la tabella dei provider qui sotto, i grandi provider hanno già disattivato questa impostazione a livello di server.
Misure temporanee prima della patch (non sono una soluzione completa)
- Disattivare session.upload_progress: come sopra. Blocca un percorso di attacco noto della CVE-2026-109619.
- Regole WAF di Cloudflare: Cloudflare ha applicato regole d’emergenza a tutti i piani, compreso quello gratuito, poco prima della divulgazione. La stessa Cloudflare però precisa che si tratta di “una protezione temporanea, non un sostituto della patch”, e sono già stati osservati tentativi di aggirarla.
- Regole firewall del tuo provider: strumenti come ModSecurity bloccano gli schemi di attacco prima che arrivino al server. Fanno guadagnare tempo, ma non risolvono il problema alla radice.
La posizione ufficiale del team di PHP è chiara: “Non esiste una mitigazione completa. L’aggiornamento è l’unica opzione sicura.”
Come hanno risposto i principali provider di hosting
Per fortuna i provider più noti si sono mossi in fretta. Qui sotto trovi la situazione di ogni azienda, in base ai suoi annunci ufficiali. Lo schema comune: prima bloccare gli attacchi con regole firewall e impostazioni, poi distribuire la patch su tutti i server non appena è stata rilasciata.
| Provider | Cosa ha fatto | Cosa devi fare tu |
|---|---|---|
| Hostinger | Il giorno della divulgazione ha bloccato gli attacchi con regole firewall e disattivato session.upload_progress. Ha completato la patch di tutti i server di hosting, esclusi i VPS, alle 06:44 UTC del 22 ottobre. Il 23 ottobre ha confermato che le stesse misure coprono anche la terza falla. | Niente. Nota che sull’hosting gestito la build è stata corretta senza cambiare il numero di versione, quindi il controllo affidabile è verificare che la Build Date in hPanel → PHP Info sia del 21 ottobre o successiva. |
| SiteGround | Prima della release ufficiale ha applicato regole di mitigazione a livello di server su tutti i server e ha disattivato la funzione interessata su tutte le versioni supportate. | Niente (ha annunciato che la protezione è attiva). |
| GoDaddy | Ha corretto WordPress gestito, l’hosting web standard e l’hosting Windows il 22 ottobre. L’hosting web standard usa build con backport di CloudLinux, quindi il numero di versione potrebbe non cambiare. | Niente. Sull’hosting standard, invece del numero di versione controlla che la Build Date sia del 21 ottobre o successiva. I clienti VPS aggiornano da soli con EasyApache 4. |
| WordPress.com / Pressable / WordPress VIP (Automattic) | Ha collaborato in anticipo con il team di PHP e aveva la protezione attiva già prima della divulgazione. | Niente |
| WP Engine | Ha applicato prima misure di mitigazione a livello di CDN (Cloudflare e Fastly), poi ha completato la distribuzione della patch alle 01:19 UTC del 22 ottobre. | Niente |
| Kinsta | Ha bloccato gli attacchi con regole Cloudflare mentre verificava ogni versione, poi ha distribuito la patch su tutte le versioni di PHP alle 23:25 UTC del 22 ottobre. | Niente |
| Cloudways, Pantheon, Flywheel, OVHcloud | Corretti entro il 22 ottobre, secondo i tracker di settore. La patch di Pantheon copre PHP dalla 8.2 alla 8.5. | Niente. Se usi una versione datata, controlla l’annuncio del tuo provider. |
| Bluehost | Ha corretto la maggior parte dei server. Durante l’intervento ha limitato temporaneamente la dimensione dei file caricati. | Niente |
| 20i | Ha completato la distribuzione, backport per le versioni datate inclusi, alle 20:01 UTC del 22 ottobre. | Niente |
| xCloud | Ha distribuito build corrette (dalla 8.2.35 alla 8.5.12) su tutti i server. I server NGINX hanno ricevuto anche i backport per le versioni datate. | Alcune configurazioni, come le versioni datate di OpenLiteSpeed, richiedono un intervento del cliente. |
| InstaWP | Il 21 ottobre ha installato le versioni corrette sui server gestiti, comprese le build con backport per le versioni datate. | Niente |
| RunCloud | Ha disattivato session.upload_progress su tutti i server e ha corretto automaticamente PHP 8.2 e successivi. | Nessuna patch per la 8.1 o precedenti: aggiorna alla 8.2 o successiva. |
| cPanel (EasyApache 4) / CloudLinux | Ha pubblicato build corrette il 21 e 22 ottobre. | Gli amministratori dei server cPanel applicano l’aggiornamento da WHM. |
| Cloudflare | Ha applicato regole WAF d’emergenza a tutti i piani, compreso quello gratuito. | Non sostituisce la patch. Il tuo server di origine ha comunque bisogno della patch. |
La situazione di ogni provider continua a cambiare, quindi se il tuo non è in elenco o non sei sicuro, controlla direttamente la sua pagina di stato e i suoi annunci. Detto al contrario: se il tuo provider è rimasto in silenzio, senza alcun annuncio, questo è già di per sé un campanello d’allarme.
Come controllare il tuo sito (3 minuti)
- Controlla la versione di PHP: in WordPress, vai su Strumenti → Salute del sito → Informazioni → Server e guarda la versione di PHP.
- Confrontala con le versioni corrette: 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 o successive significa che sei protetto.
- Non dare per scontato che un numero più basso significhi essere esposti: alcuni provider, come Hostinger, mantengono il numero di versione e correggono la build. In quel caso il criterio è che la Build Date nel PHP Info del pannello di hosting sia del 21 ottobre 2026 o successiva.
- Con PHP 8.1 o precedente: controlla gli annunci del provider o chiedi se offre un backport. Se non lo offre, pianifica un aggiornamento.
- Su un VPS o un server dedicato: esegui
php -vnel terminale e verifica che corrisponda al PHP effettivamente usato dal tuo server web (secondo phpinfo). È frequente che su un server convivano più versioni di PHP.
La patch non è la fine: i controlli successivi
Una patch blocca solo gli attacchi futuri. Se il tuo sito è stato compromesso prima della patch, la patch non annulla il danno. Poiché i dettagli sono trapelati prima della patch e gli attacchi sono iniziati prima della divulgazione, la KISA raccomanda quanto segue:
- Controlla i log: cerca richieste sospette nei log del server web e di PHP, incluso il periodo precedente alla patch.
- Cerca web shell: verifica se ci sono file PHP creati o modificati di recente, account amministratore sconosciuti o cron job insoliti.
- Cambia le credenziali: sui server esposti, cambia le password del database, le chiavi API e le password di amministratore.
- Metti al sicuro i backup: conserva fuori sede backup testati e ripristinabili di prima e dopo la patch.
- Se trovi segni di una violazione, non riavviare il server (perderesti le prove in memoria). Interrompi l’accesso alla rete e segnala l’accaduto a un professionista.
Checklist finale
- Verifica la versione di PHP del tuo sito e chi gestisce PHP
- Controlla di avere una versione corretta (8.5.12 / 8.4.27 / 8.3.36 / 8.2.35) o che la data di compilazione sia del 21 ottobre o successiva
- Su VPS o server dedicati, aggiorna PHP da solo e riavvia sempre il servizio PHP
- Con PHP 8.1 o precedente, verifica la disponibilità di un backport e pianifica l’aggiornamento alla 8.3 o successiva
- Disattiva session.upload_progress per la terza falla (o verifica che lo abbia fatto il provider)
- Controlla i log e cerca web shell risalenti al periodo prima della patch
- Includi nell’inventario i siti di test, staging ed eventi dimenticati
Domande frequenti
Aggiornare WordPress mi protegge da PHP2Shell?
No. Le falle sono in PHP stesso, non in WordPress né nei plugin. Solo una build di PHP corretta protegge il tuo sito.
Ho un hosting condiviso. Devo fare qualcosa?
Di solito è il provider a correggere PHP per te, ma verificalo. Controlla che la tua versione di PHP sia corretta o che la data di compilazione di PHP sia del 21 ottobre 2026 o successiva.
Cloudflare basta per proteggere il mio sito?
No. Le regole WAF di Cloudflare sono una protezione temporanea e sono già stati osservati tentativi di aggirarle. Il tuo server di origine ha comunque bisogno della patch di PHP.
Le piattaforme che non usano PHP, come Wix, sono coinvolte?
No. PHP2Shell è una falla di PHP sul server, quindi le piattaforme che non girano su PHP, come Wix, e i siti statici non sono coinvolti.
Ti serve aiuto?
Se gestisci più siti o non sei sicuro che il tuo provider abbia applicato la patch, contatta We Design Orange. Ti aiutiamo in tutto: dal controllo della versione e della build di PHP di ogni sito alla patch del tuo VPS, dalla ricerca di tracce di violazione al test del sito dopo l’aggiornamento di PHP.
Questo articolo riassume le informazioni pubbliche disponibili al 23 ottobre 2026. Si tratta di informazioni tecniche, non di una valutazione di sicurezza né di una consulenza legale. La situazione dei provider si basa sui loro annunci ufficiali e può cambiare. Se sospetti una violazione, rivolgiti a una società di sicurezza o al team nazionale di risposta agli incidenti informatici (CERT) del tuo Paese.
