PHP2Shell è il nome di due falle critiche nel nucleo di PHP, CVE-2026-109618 e CVE-2026-109619, che possono consentire a un aggressore non autenticato di eseguire codice da remoto. PHP ha pubblicato le correzioni il 21 ottobre 2026; AWS ha osservato tentativi diretti ai propri sensori, mentre una stima di Check Point indica che il 10% delle organizzazioni italiane ha affrontato tentativi di sfruttamento dall’avvenuta divulgazione.
Il rischio riguarda i server che usano PHP per gestire richieste web. Per chi amministra un sito o un servizio self-hosted, la verifica utile è individuare quale runtime PHP lo sta effettivamente servendo e confrontarlo con una versione corretta o con un pacchetto del fornitore che includa il backport della patch.
Due difetti nella gestione delle richieste
CVE-2026-109618 riguarda la gestione dell’esaurimento della memoria: alcuni dati della richiesta possono restare inizializzati solo in parte e venire trattati come validi durante le operazioni di pulizia. CVE-2026-109619 riguarda invece uno stato interno della richiesta che può restare in memoria dopo che la memoria associata è stata liberata; una richiesta successiva, gestita dallo stesso worker, può quindi riutilizzare quello stato obsoleto.
Un worker è il processo che gestisce le richieste al server. In entrambi i casi PHP classifica la falla come possibile via per l’esecuzione remota di codice senza autenticazione: l’aggressore può tentare di far eseguire istruzioni al server senza prima accedere a un account.
PHP indica come potenzialmente a rischio tutte le installazioni che servono richieste web, comprese quelle con PHP-FPM, Apache mod_php, php-cgi, FrankenPHP e LiteSpeed. Il caso dimostrato con il rischio più elevato è Apache mod_php, in cui l’attacco può avvenire prima che l’applicazione gestisca la richiesta.
Che cosa ha osservato AWS
AWS ha riferito che il suo ambiente honeypot MadPot ha registrato un tentativo datato 17 ottobre 2026. Il 21 ottobre, AWS ha individuato i primi proof of concept, cioè codici dimostrativi dell’attacco, intorno alle 02:00 UTC e altri tentativi contro MadPot tra le 02:00 e le 08:00 UTC. L’embargo sulla divulgazione è terminato alle 14:00 UTC, quando sono state pubblicate le correzioni PHP.
AWS ha precisato che non è riuscita a determinare se i tentativi osservati avrebbero funzionato su sistemi reali. La telemetria di un honeypot documenta attività diretta a quel sensore; non equivale a una compromissione verificata di un server vittima.
Un esperimento di laboratorio raccontato dal ricercatore LiveOverflow offre un esempio circoscritto dell’assistenza dell’IA nella ricerca di vulnerabilità. Usando Codex e indizi pubblici, LiveOverflow ha riferito di aver raggiunto un use-after-free e l’esecuzione di codice, senza arrivare a un address leak né a un exploit affidabile e generalizzato. Il risultato riguarda quell’esperimento, non la riuscita universale di un attacco.
Come leggere la stima per l’Italia
Nel rapporto pubblicato il 22 ottobre 2026, Check Point definisce “impattate” le organizzazioni che hanno affrontato tentativi di sfruttamento. La stima italiana è del 10% dall’avvenuta divulgazione: misura quindi organizzazioni bersaglio di tentativi, non un tasso di intrusioni confermate.
Check Point ha riportato il 14% per l’Europa, il 6% per Nord America, America Latina e APAC e il 4% per l’Africa. Sono stime di attività osservata nelle organizzazioni, non conteggi di server violati.
Le versioni PHP corrette
PHP ha indicato queste prime release corrette per i rispettivi rami:
| Ramo PHP | Prima versione corretta |
| 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 e le versioni precedenti non ricevono più aggiornamenti dal progetto PHP, anche se alcune distribuzioni e alcuni fornitori con supporto a lungo termine possono distribuire correzioni backportate. Per questo, un numero di versione diverso da quelli in tabella va confrontato con l’avviso del fornitore, non valutato basandosi soltanto sul ramo principale.
Perché le misure temporanee non bastano
Disattivare session.upload_progress.enabled blocca alcuni percorsi confermati per CVE-2026-109619, ma PHP avverte che non copre tutte le varianti. Anche limiti alla dimensione delle richieste e altre impostazioni agiscono su percorsi specifici: PHP indica l’aggiornamento a una versione corretta come rimedio completo per le due falle. Un servizio raggiungibile soltanto tramite VPN resta in esecuzione sullo stesso runtime e la restrizione di rete non corregge il codice vulnerabile.
L’archivio PHP descrive inoltre una falla distinta, CVE-2026-115560, legata a una configurazione di sessione particolare: session.serialize_handler deve essere impostato su php_binary o php_serialize, poi cambiato a runtime in php prima di session_start(), con il caricamento delle sessioni ancora abilitato. Questa nota riguarda un vettore separato, non le due CVE chiamate PHP2Shell. L’archivio ufficiale PHP riporta le versioni corrette e le indicazioni sulle mitigazioni.
Installare la patch non rimuove eventuali file malevoli o danni già presenti. Check Point raccomanda di controllare file PHP sconosciuti, richieste anomale, esecuzioni inattese di comandi di sistema e connessioni in uscita non riconosciute.