Patch di sicurezza PHP (php2shell)
php2shell è il nome di due falle critiche di PHP pubblicate il 21 ottobre 2026 (CVSS v4.0 9.2, senza autenticazione). Colpiscono qualsiasi sito che gestisce richieste con PHP, che sia WordPress, Drupal, Joomla, Magento, PrestaShop o Laravel. Sono corrette nelle versioni 8.5.12, 8.4.27, 8.3.36 e 8.2.35.
Hai questa vulnerabilità? Aggiorniamo PHP, applichiamo la mitigazione temporanea dove non si può ancora aggiornare e verifichiamo che non ci siano tracce di intrusione.
$ php -vPHP 8.3.30 (cli)# 8.3.30 < 8.3.36: vulnerabile$ php-fpm8.3 -vPHP 8.3.30 (fpm-fcgi)# CLI e FPM possono avere versioni diverse$ php -i | grep upload_progress.enabledsession.upload_progress.enabled => On => On# Mitigazione temporanea: 0 in php.ini, riavvia FPM8.5.12 · 8.4.27 · 8.3.36 · 8.2.35 php2shell: due falle critiche nell’interprete stesso
Il 21 ottobre 2026 il progetto PHP ha pubblicato nuove versioni per correggere CVE-2026-109618 e CVE-2026-109619. Ha anticipato il rilascio alle 14:00 UTC perché il giorno prima un post su Hacker News aveva diffuso gli identificativi prima della fine dell’embargo.
CVE-2026-109618 è una corruzione della memoria: se PHP esaurisce la memoria mentre prepara i dati della richiesta, la pulizia tratta dati non validi come validi. Basta una richiesta multipart manipolata che esaurisca la memoria, anche se la dimensione sembra entro i limiti. CVE-2026-109619 lascia stato interno già liberato tra una richiesta e l’altra, e una richiesta successiva sullo stesso worker lo riutilizza. Huntress la descrive come un use-after-free nell’heap senza autenticazione, con fuga di memoria ed esecuzione remota di codice con i privilegi del worker web.
La falla è in PHP, quindi aggiornare il CMS o i plugin non la corregge. Secondo php.net colpisce tutte le installazioni che servono richieste web: PHP-FPM, Apache con mod_php, php-cgi, FrankenPHP e LiteSpeed. Il rischio è maggiore con mod_php, dove secondo Rapid7 è sfruttabile prima che venga eseguito il codice dell’applicazione. Wiz ha dimostrato l’esecuzione remota senza autenticazione contro WordPress, Drupal e Joomla, e una via di fuga di memoria che potrebbe esporre password, token, API key e certificati.
Al 21 ottobre, Rapid7 si aspettava lo sfruttamento e diversi team lo stavano riproducendo; Huntress non lo aveva osservato tra i suoi clienti. L’NCSC britannico e il CERT-EU hanno emesso allerte lo stesso giorno. PHP è dietro circa il 69,7% dei siti di cui si conosce il linguaggio lato server, secondo W3Techs.
Fonti: php.net · Rapid7 · Huntress · NCSC · Infosecurity Magazine
Versioni di PHP corrette
Se il tuo server gestisce richieste web con PHP e la versione è precedente a quella del suo ramo in questa tabella, sei vulnerabile. Le distribuzioni Linux con supporto esteso hanno rilasciato i loro pacchetti prima: lì conta l’avviso del fornitore, non il numero.
| Ramo | Corretta in | Nota |
|---|---|---|
| 8.5 | 8.5.12 | |
| 8.4 | 8.4.27 | |
| 8.3 | 8.3.36 | |
| 8.2 | 8.2.35 | Fine vita il 31/12/2026 |
| 8.1, 8.0, 7.4 | Nessuna versione ufficiale | PHP ha pubblicato backport minimi nel codice sorgente per chi compila |
| 7.3 e precedenti | Nessuna correzione | Passare a un ramo supportato |
Controlla questo
- Il tuo sito è WordPress, Drupal, Joomla, Magento, PrestaShop, Laravel o un’altra applicazione PHP raggiungibile da internet.
-
php -vophp-fpm -vrestituiscono un numero inferiore a quello del tuo ramo in tabella. - Usi Apache con
mod_php: è la configurazione più a rischio. - Usi il PHP della tua distribuzione Linux: il numero può non cambiare anche se il pacchetto è corretto, quindi va controllato l’avviso del fornitore.
- Sei su hosting condiviso: aggiorna il provider, ma puoi vedere la versione nel pannello o con
phpinfo()e chiedere una data.
Se oggi non puoi aggiornare
Queste sono le mitigazioni temporanee pubblicate dal progetto PHP. Riducono l’esposizione mentre prepari l’aggiornamento, ma non lo sostituiscono.
- 01 Imposta
session.upload_progress.enabled=0inphp.inio nel pool di PHP-FPM e riavvia tutti i worker. Conini_set()o.user.ininon funziona. - 02 In PHP 8.5 imposta anche
fatal_error_backtraces=0. - 03 Limita nel server web o nel proxy la dimensione della richiesta e il numero di campi, parti e header.
- 04
post_max_size=8Mse il sito non accetta upload di file;32Mse li accetta. - 05 Se non puoi aggiornare, cerca indicatori di compromissione e backdoor. Se non puoi nemmeno mitigare, l’NCSC raccomanda di valutare la disconnessione del sistema.
Sette passi, in questo ordine
Applichiamo la stessa procedura su ogni server: prima capire quale versione gira dove, poi correggere e infine verificare che nessuno sia entrato prima della patch.
Inventario delle versioni
Elenchiamo ogni server, container e hosting dove gira PHP, con la versione della CLI e quella di FPM, la modalità (FPM, mod_php, CGI) e chi lo gestisce. Il sito dimenticato su un server vecchio è quello che resta senza patch.
Mitigazione immediata
Dove l’aggiornamento non si può fare subito, disattiviamo session.upload_progress in php.ini o nel pool, limitiamo dimensione e parti delle richieste e riavviamo i worker.
Aggiornamento
Passiamo alla versione corretta del tuo ramo o al pacchetto corretto della tua distribuzione. Se sei ancora su 8.1 o precedenti, ti spieghiamo le due strade: compilare con i backport o migrare a un ramo supportato.
Verifica
Controlliamo la versione che serve davvero le richieste, non solo quella della riga di comando, e che sito, moduli e upload funzionino ancora.
Analisi degli indicatori di compromissione
Esaminiamo i log di accesso e di errore, i file modificati di recente nella directory del sito e i nuovi utenti amministratori nel CMS.
Rotazione dei segreti, se serve
Se ci sono segnali di accesso, o il server è stato esposto alla fuga di memoria, cambiamo password del database, chiavi API, token e certificati.
Monitoraggio dei nuovi avvisi
Annotiamo quale versione ha ogni server e quali avvisi seguire (PHP, la tua distribuzione, il tuo CMS), così il prossimo aggiornamento parte da quell’inventario.
Quello che di solito resta a metà
Non sai quale versione di PHP usa il tuo sito?
Consulenza gratuita →Domande frequenti su php2shell
Cos’è php2shell?
Il mio WordPress è vulnerabile anche con i plugin aggiornati?
Basta disattivare session.upload_progress?
Sono ancora su PHP 7.4 o 8.0, cosa faccio?
E se sono su un hosting condiviso?
Raccontaci dove gira il tuo PHP
Partiamo dall’inventario: quale versione ha ogni server, cosa va fatto oggi e cosa può aspettare una finestra di manutenzione.
Raccontaci la tua sfida. Ti proponiamo la soluzione.
Senza impegno. In meno di 24 ore riceverai una proposta con ambito, tempistiche e budget. Nessuna clausola nascosta.