PHP2Shell è il nome di due vulnerabilità critiche nel motore di PHP, CVE-2026-109618 e CVE-2026-109619, corrette il 21 ottobre 2026. Con una sola richiesta HTTP e senza login, chi attacca può eseguire comandi sul server. Il rischio riguarda ogni sito che gira su PHP, WordPress compreso.

Controlla gratis se il tuo sito è esposto a PHP2Shell: inserisci il dominio e leggi cosa dichiara il server. Sotto trovi le versioni corrette, i passaggi per aggiornare e le fonti ufficiali.

Cos'è PHP2Shell?

PHP2Shell è il nome con cui circolano due falle del motore di PHP: CVE-2026-109618 e CVE-2026-109619. Wiz e Sansec le valutano 9,2 su 10 nella scala CVSS 4.0. Un attacco non richiede password: basta una richiesta HTTP verso un sito che esegue PHP e l'attaccante fa eseguire codice al server.

Wiz stima che circa il 70% dei siti web usi PHP e descrive la scoperta come frutto di analisi con l'intelligenza artificiale. Le due falle sono distinte:

  • CVE-2026-109618: nasce da uno stato non valido dopo un errore di allocazione della memoria (avviso GHSA).
  • CVE-2026-109619: lascia in un worker dati di una richiesta, che una richiesta successiva poi usa (avviso GHSA).

Il progetto PHP ha rilasciato le correzioni il 21 ottobre 2026 (avviso ufficiale). L'avviso conferma casi sia con mod_php sia con PHP-FPM, quindi nessuna delle due configurazioni è al riparo.

In sigla si parla di RCE, remote code execution. Chi la sfrutta con successo può leggere file, installare una web shell e usare il server per altri attacchi. Questo spiega il nome.

CIRCL ha dimostrato lo sfruttamento contro Apache con mod_php. CERT-EU segnala exploit di prova già in circolazione.

Chi è colpito da PHP2Shell?

Sono colpite le installazioni PHP che servono richieste web e non hanno la correzione, da PHP 5.4 (2012) in poi. Il Cyber Command polacco scrive che sono vulnerabili «tutte le versioni dalla 5.4».

Le falle stanno nel motore, quindi contano la versione di PHP del server e non l'applicazione sopra. Sansec ha confermato l'esecuzione di codice su:

  • WordPress
  • Magento
  • Drupal
  • Joomla
  • Laravel

Se il tuo e-commerce, il blog aziendale o il gestionale usa uno di questi, controlla la versione di PHP dell'hosting. Un numero vecchio non prova che sei vulnerabile: i distributori correggono spesso senza cambiarlo. Un numero recente non prova il contrario, perché un'installazione parallela può usare un altro PHP.

Oltre al sito, controlla tutto quello che gira su PHP sullo stesso server:

  • gestionale e area clienti
  • e-commerce e pagamenti
  • webmail
  • Nextcloud e file condivisi
  • phpMyAdmin e pannelli del database
  • intranet e portali su misura

Un sito statico o in Next.js non esegue PHP, ma può appoggiarsi a un backend PHP su un altro percorso. Per i siti aziendali costruiti su misura c'è il nostro servizio di sviluppo web su misura di wmie.

Cosa è successo dal 17 al 22 ottobre 2026?

In sei giorni la vicenda passa dal primo tentativo registrato alle indicazioni operative delle agenzie di sicurezza.

Infografica della cronologia di PHP2Shell dal 17 al 22 ottobre 2026: primo tentativo registrato da Amazon, leak, regole WAF di Cloudflare, patch PHP, siti offline e avvisi di NSA, FBI e CISA
  • 17 ottobre: Amazon registra nei suoi honeypot un primo tentativo di sfruttamento, quattro giorni prima dell'annuncio (AWS).
  • 20 ottobre: watchTowr scrive che le informazioni sono trapelate prima dell'embargo e che le falle sono reali (post su X).
  • 21 ottobre, mattina: Cloudflare attiva regole WAF per tutti i clienti, Free incluso, e vede i primi attacchi reali (post di Cloudflare).
  • 21 ottobre, 14:00 UTC: PHP rilascia le patch e Wiz pubblica l'analisi con CVSS 9,2.
  • 21 ottobre: ACN e CSIRT Italia pubblicano l'allerta AL07/261021 (ACN). Il Post riporta che il governo finlandese, l'agenzia olandese per la cybersicurezza, alcune prefetture francesi e voci di Wikipedia mettono offline i siti per prudenza.
  • 22 ottobre: la NSA pubblica le indicazioni specifiche di mitigazione (post della NSA).

Lo stesso giorno pixiv, la piattaforma giapponese per illustratori, ha annunciato una manutenzione d'emergenza per la sicurezza del servizio (post di pixiv).

Post su X di pixiv English: annuncio di manutenzione d'emergenza per la sicurezza del servizio, dalle 19:00 JST del 21 ottobre

Cosa hanno detto NSA, FBI, CISA, NCSC e il governo giapponese?

Le agenzie dicono tutte la stessa cosa: prepara l'aggiornamento e applicalo appena puoi. Ecco i post originali.

Post su X di NSA Cyber: le organizzazioni che usano PHP devono prepararsi a un aggiornamento che corregge due vulnerabilità critiche
Post su X della FBI Cyber Division: due vulnerabilità critiche in PHP, CVE-2026-109618 e CVE-2026-109619, possono permettere l'esecuzione remota di codice
Post su X di CISA Cyber: le organizzazioni devono installare subito le patch per CVE-2026-109618 e CVE-2026-109619, RCE non autenticata
Post su X dell'NCSC britannico: prepararsi all'aggiornamento immediato dei sistemi PHP e, se non è possibile, valutare di scollegarli finché non sono mitigati
Post su X della premier giapponese Takaichi Sanae, con traduzione: chiede di intervenire stasera sulle due vulnerabilità PHP segnalate dal team di sicurezza di PHP

NSA. Chiede alle organizzazioni che usano PHP di prepararsi all'aggiornamento per due vulnerabilità critiche (post della NSA).

FBI Cyber Division. Cita CVE-2026-109618 e CVE-2026-109619 e avverte che possono permettere l'esecuzione remota di codice nel core di PHP (post dell'FBI).

CISA. Chiede di installare subito le patch e parla di RCE non autenticata (avviso della CISA).

NCSC britannico. Invita ad aggiornare subito e, se non è possibile, a valutare lo scollegamento del sistema (avviso dell'NCSC).

Governo giapponese. La premier Takaichi Sanae ha chiesto su X di intervenire «stasera» e ha indicato la sospensione del sito come mitigazione possibile.

Il Ministero degli Affari interni ha rilanciato l'avviso del National Cyber Office, rivolto a chi gestisce siti e sistemi web.

Non sai chi aggiorna il tuo server? Fai partire il controllo gratuito di wmie sul tuo dominio, poi scrivi ad Alessio su WhatsApp con l'esito.

Come vedere la versione di PHP del tuo sito?

Hai tre strade, dalla più tecnica alla più semplice:

Tre modi per vedere la versione di PHP: il comando php -v nel terminale, Strumenti, Salute del sito, Info, Server in WordPress, la voce PHP nel pannello dell'hosting
  1. Terminale. Sul server esegui php -v e leggi la prima riga.
  2. WordPress. Apri Strumenti, poi Salute del sito, poi Info e la sezione Server: trovi la versione di PHP che serve il sito.
  3. Pannello dell'hosting. Nei piani condivisi (cPanel o Plesk) cerca la voce PHP: di solito puoi anche cambiare versione da lì.

Il comando da terminale può mostrare un PHP diverso da quello usato dal web, quindi confrontalo con il pannello.

Per una prima lettura dall'esterno, il nostro controllo PHP2Shell legge header, cookie e HTML pubblici e ti dice cosa dichiara il server. Se la versione è nascosta, l'esito resta "non determinabile" e va chiesto al provider.

Un esito positivo del controllo esterno ha un limite. Gli header sono dichiarazioni del server e non provano il runtime. Per un backport servono il numero del pacchetto e la prova che quel pacchetto sia quello in esecuzione.

Cosa fare adesso?

Il passo principale è aggiornare PHP a una versione corretta. Queste sono le prime release con la correzione, secondo il progetto PHP:

  • PHP 8.5: 8.5.12
  • PHP 8.4: 8.4.27
  • PHP 8.3: 8.3.36
  • PHP 8.2: 8.2.35
  • PHP 8.1, 8.0 e 7.4: nessuna release ufficiale, esistono solo patch di backport da compilare o da ricevere dal provider
Tabella delle versioni corrette: PHP 8.5.12, 8.4.27, 8.3.36 e 8.2.35, solo backport per 8.1, 8.0 e 7.4; Node.js 26.12.1, 24.22.1 e 22.23.4, nessuna correzione per 25, 23, 20 e 18

Poi segui questi passaggi, nell'ordine:

  1. Aggiorna. Porta PHP a una release dell'elenco sopra, dal pannello dell'hosting o con il gestore pacchetti del server.
  2. Se usi un ramo con solo backport, chiedi al provider il numero del pacchetto con le patch. Ubuntu 24.04, per esempio, corregge con 8.3.6-0ubuntu0.24.04.13 (avviso Ubuntu). Un numero vecchio può contenere la correzione, e un numero recente non la garantisce.
  3. Riavvia i worker. Con PHP-FPM la nuova versione entra in uso solo dopo il riavvio del servizio, per esempio con systemctl restart php8.4-fpm (il nome cambia con la versione e la distribuzione). Con mod_php riavvia Apache.
  4. Se non puoi aggiornare subito, metti il sito dietro un WAF. Cloudflare ha regole attive per questi vettori anche sul piano Free, ma sono una mitigazione e coprono solo gli attacchi noti.
  5. Come ultima risorsa, porta il sito offline. È l'indicazione dell'NCSC per i sistemi che non si possono aggiornare subito.
  6. Controlla dopo. Rilancia il controllo gratuito sul dominio per vedere se il server dichiara ora una versione corretta.

Il riavvio pesa più di quanto sembri. CVE-2026-109619 riguarda dati di una richiesta che un worker conserva e che una richiesta successiva consuma. Un worker avviato prima dell'aggiornamento continua a girare con il codice vecchio finché non lo riavvii.

Se hai più nodi o più pool PHP, ripeti l'operazione su ognuno e controlla ogni percorso web: un nodo corretto non certifica gli altri.

Preferisci delegare? Alessio controlla il sito e tutto quello che gira su PHP, ti dice cosa aggiornare e se ne occupa. Scrivigli su WhatsApp.

Node.js: le falle dello stesso giorno

Il 21 ottobre anche Node.js ha pubblicato i suoi aggiornamenti di sicurezza: 10 falle, quattro gravi, tra cui CVE-2026-111497, una scrittura fuori dai limiti nel decoder Brotli che permette di eseguire codice da remoto (avviso Node.js).

  • Rami 22, 24 e 26: corretti in Node.js 22.23.4, 24.22.1 e 26.12.1.
  • Rami 18, 20, 23 e 25: nessuna correzione, quindi vanno migrati.
  • Vercel: ha attivato regole firewall su tutti i progetti (Vercel).

PHP2Shell e le falle di Node.js sono problemi separati: un sito Next.js o Express va controllato per Node.js, un sito WordPress per PHP.

Domande Frequenti

Domande Comuni