Vai al contenuto principale
CVE-2026-109618 · CVE-2026-109619

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.

Cosa è successo

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

Sei vulnerabile?

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 -v o php-fpm -v restituiscono 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.
Nel frattempo

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.

  1. 01 Imposta session.upload_progress.enabled=0 in php.ini o nel pool di PHP-FPM e riavvia tutti i worker. Con ini_set() o .user.ini non funziona.
  2. 02 In PHP 8.5 imposta anche fatal_error_backtraces=0.
  3. 03 Limita nel server web o nel proxy la dimensione della richiesta e il numero di campi, parti e header.
  4. 04 post_max_size=8M se il sito non accetta upload di file; 32M se li accetta.
  5. 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.
Come lavoriamo

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
versione per server
Mitigazione
temporanea
Aggiornamento
8.5.12 · 8.4.27 · 8.3.36
Verifica
in produzione
Indicatori
log · file
Segreti
se serve
Monitoraggio
nuovi avvisi
01

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.

02

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.

03

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.

04

Verifica

Controlliamo la versione che serve davvero le richieste, non solo quella della riga di comando, e che sito, moduli e upload funzionino ancora.

05

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.

06

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.

07

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.

Prima e dopo

Quello che di solito resta a metà

Patch fatta di corsa Con la procedura
Si aggiorna il server principale e quello di staging resta su 8.3.30
Elenco dei server con la versione prima e dopo
php -v dice 8.3.36, ma FPM serve ancora la versione vecchia perché nessuno l’ha riavviato
Versione verificata sul processo che serve le richieste, con FPM riavviato
Nessuno guarda i log dei giorni in cui il sito era esposto
Log e file esaminati per il periodo di esposizione
Le credenziali del database sono le stesse di prima della falla
Segreti ruotati quando ci sono indicatori o rischio di fuga

Non sai quale versione di PHP usa il tuo sito?

Consulenza gratuita →
FAQ

Domande frequenti su php2shell

Cos’è php2shell?
È il nome dato a CVE-2026-109618 e CVE-2026-109619, due falle critiche (CVSS v4.0 9.2) nell’interprete PHP pubblicate il 21 ottobre 2026. Permettono a un attaccante senza credenziali di corrompere la memoria del processo che serve le richieste web e, secondo Huntress, di arrivare a eseguire codice e a leggere la memoria.
Il mio WordPress è vulnerabile anche con i plugin aggiornati?
Sì, se il PHP del server è precedente a 8.5.12, 8.4.27, 8.3.36 o 8.2.35, a seconda del ramo. La falla è nell’interprete, quindi aggiornare WordPress o i plugin non la corregge.
Basta disattivare session.upload_progress?
Riduce l’esposizione mentre prepari l’aggiornamento, ma il progetto PHP la presenta come mitigazione temporanea. Inoltre va impostata in php.ini o nel pool di FPM, con i worker riavviati: ini_set() e .user.ini non funzionano.
Sono ancora su PHP 7.4 o 8.0, cosa faccio?
Quei rami, e l’8.1, non ricevono più versioni ufficiali. PHP ha pubblicato backport minimi nel codice sorgente per chi compila il proprio PHP, e alcune distribuzioni Linux con supporto esteso hanno pacchetti corretti. Se nessuna delle due opzioni è praticabile, la strada è migrare a un ramo supportato, cosa che di solito obbliga a rivedere il codice dell’applicazione.
E se sono su un hosting condiviso?
Chi aggiorna PHP è il provider. Tu puoi controllare la versione dal pannello o con phpinfo(), chiedere al provider quando aggiornerà e, se la piattaforma lo consente, passare il sito a una versione corretta.
Iniziamo

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.

Patch di sicurezza PHP (php2shell)

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.

Prenota una call gratuita →