Il 21 ottobre 2026, il team di sicurezza PHP ha rilasciato patch critiche per due vulnerabilità di esecuzione di codice remoto (RCE): CVE-2026-109618 e CVE-2026-109619. Entrambe hanno un punteggio CVSS di 9.2 (critico) e riguardano server Apache con mod_php. Se usi PHP, questo articolo ti spiega cosa sono, chi è a rischio e cosa fare.

Le due vulnerabilità in breve

CVE-2026-109618: RCE da corruzione di memoria dopo OOM

Cosa è: Un difetto nel garbage collector di PHP. Quando il server esaurisce la memoria (Out Of Memory), il garbage collector non pulisce correttamente gli oggetti, lasciando puntatori a memoria deallocata. Un attaccante può sfruttare questa memoria corrotta per eseguire codice arbitrario.

Impatto: RCE non autenticato — l'attaccante non ha bisogno di credenziali. Può accedere a database, file di configurazione, chiavi API, e compromettere interamente il sito.

CVE-2026-109619: RCE da stato globale residuo

Cosa è: Un difetto nel gestore delle richieste HTTP di PHP. Quando una richiesta termina, lo stato globale (variabili globali, oggetti in memoria) non viene sempre pulito correttamente. Una richiesta successiva può accedere a questo stato residuo e, con una sequenza specifica, eseguire codice.

Impatto: RCE non autenticato. Pericoloso su hosting condiviso dove il codice di un cliente può sfruttare lo stato di un altro cliente.

Chi è a rischio

Configurazione Rischio Dettagli
Apache + mod_php ALTISSIMO Entrambe le CVE sono facilmente sfruttabili. Secondo CERT-AgID, è la configurazione più esposta.
Apache + PHP-FPM MEDIO Le vulnerabilità rimangono, ma con PHP-FPM l'isolamento dei processi limita i danni. Vedere mod_php vs PHP-FPM.
Nginx + PHP-FPM MEDIO Le CVE riguardano il core di PHP, quindi colpiscono anche Nginx. Ma l'isolamento è migliore.
Versioni PHP < 8.2 VULNERABILE PHP 8.1 e precedenti non riceveranno patch (sono fuori dal support). Migrazione urgente necessaria.

Versioni vulnerabili e patchate

Vulnerabili:

  • PHP 8.5.0 fino a 8.5.11
  • PHP 8.4.0 fino a 8.4.26
  • PHP 8.3.0 fino a 8.3.35
  • PHP 8.2.0 fino a 8.2.34
  • PHP 8.1 e precedenti (fuori da support)

Patchate (rilasciate il 21 ottobre 2026):

  • PHP 8.5.12
  • PHP 8.4.27
  • PHP 8.3.36
  • PHP 8.2.35

Come aggiornare PHP

Su Debian/Ubuntu

# 1. Controlla la versione attuale
php -v

# 2. Aggiorna i package
sudo apt update && sudo apt upgrade

# 3. Se apt non ha le versioni patchate, usa un PPA
sudo add-apt-repository ppa:ondrej/php
sudo apt update && sudo apt upgrade

# 4. Riavvia il web server
sudo systemctl restart apache2
# oppure per PHP-FPM:
sudo systemctl restart php8.4-fpm

Su CentOS/RHEL

sudo yum update php
sudo systemctl restart httpd

Su hosting gestito (Plesk, cPanel, etc)

La procedura dipende dal provider. Di solito:

  1. Accedi al pannello di controllo (Plesk, cPanel, DirectAdmin)
  2. Vai in "Software" o "Package Manager"
  3. Cerca PHP e seleziona la versione patchata (8.2.35, 8.3.36, etc)
  4. Avvia l'upgrade
  5. Attendi il riavvio del web server

⚠️ Su hosting condiviso: contatta il provider se l'aggiornamento non è disponibile nel pannello. Insisti: la vulnerabilità è critica.

Se non puoi aggiornare subito: mitigazioni temporanee

Se aggiornare richiede un downtime prolungato o dipendi da plugin incompatibili, applica queste mitigazioni mentre prepari l'upgrade (non sono sostituzioni permanenti):

1. Web Application Firewall (WAF)

Cloudflare, AWS WAF, Incapsula o simili possono bloccare una parte degli attacchi. Non è una protezione completa, ma riduce l'esposizione.

Cloudflare (gratuito):

  • Cambia i NS del tuo dominio verso Cloudflare
  • Abilita "Web Application Firewall" nel dashboard
  • Attiva le regole di sicurezza predefinite

2. Disabilita mod_php se non serve

Se stai usando PHP-FPM o Nginx, disabilita mod_php in Apache per ridurre la superficie d'attacco:

sudo a2dismod php8.2
sudo systemctl reload apache2

3. Limita l'accesso ai file sensibili

Nel .htaccess aggiungi:

<FilesMatch "\.(env|config|sql)$">
    Deny from all
</FilesMatch>

4. Monitoraggio dei log

Controlla i log di Apache e PHP per attacchi falliti:

tail -f /var/log/apache2/error.log
tail -f /var/log/php-fpm.log

Cerca pattern sospetti: tentate inclusioni di file (`include`, `require`), esecuzione di comando (`exec`, `system`), accessi a variabili globali.

Timeline di sfruttamento noto

  • 21 ottobre 2026: PHP rilascia le patch. CERT-AgID emette un avviso.
  • 22 ottobre 2026: Alcune società di sicurezza segnalano che non è stato ancora osservato sfruttamento massivo in the wild, ma è una questione di ore.
  • 23-24 ottobre: (previsione) Proof of Concept pubblici iniziano a circolare. Attacchi automatizzati aumentano.

Conclusion: Non è il momento di aspettare. Se non aggiorna entro 24-48 ore, assumi che il tuo sito sia a rischio concreto di compromissione.

Dopo l'aggiornamento: verifica che sia stato applicato

# Controlla la versione
php -v

# Se vedi "PHP 8.2.35+" (o 8.3.36+, etc) la patch è applicata correttamente
# Se vedi ancora "PHP 8.2.34", l'upgrade non è stato completato

Se l'aggiornamento ha fallito, controlla i log del package manager:

apt log | tail -20
# oppure
yum history

Contatta il supporto tecnico del tuo sito

Se non sai come aggiornare PHP o se il tuo hosting non ha ancora le patch disponibili, contattaci per una consulenza urgente. Le vulnerabilità critiche richiedono una risposta rapida.

Continua a leggere

Hai un progetto in mente?

Raccontami cosa ti serve: ti propongo la soluzione web più adatta alle tue esigenze.

Contattami I miei servizi