Aggiornamenti di sicurezza critici per PHP e Node.js: cosa abbiamo fatto e cosa devi fare tu

Patrick Wunderlin
Patrick Wunderlin
Aggiornamenti di sicurezza critici per PHP e Node.js: cosa abbiamo fatto e cosa devi fare tu

Oggi, 21 ottobre 2026, sono stati rilasciati aggiornamenti di sicurezza per PHP e Node.js. Le correzioni per PHP sono particolarmente importanti: risolvono due vulnerabilità critiche che permettono di eseguire codice su un server web senza autenticazione. Sono stati segnalati attacchi già prima della pubblicazione della patch.

WireBoard è già aggiornato. Non ci sono state interruzioni del servizio e non devi fare nulla, né per il tuo account WireBoard né per lo script di tracciamento.

Se però il tuo sito o la tua app usa PHP o Node.js, continua a leggere e aggiorna oggi stesso.

In breve

Versioni da installare

Gravità

PHP

8.5.12, 8.4.27, 8.3.36 o 8.2.35 (oppure il pacchetto corretto del tuo fornitore)

Critica (CVSS 9,2), esecuzione di codice da remoto senza autenticazione

Node.js

26.12.1, 24.22.1 o 22.23.4

Alta

  • Usi WordPress, Magento, Drupal, Laravel o un'altra applicazione PHP? Allora usi PHP. Aggiorna subito.

  • Hai un hosting condiviso o gestito? La correzione per PHP spetta al provider. Verifica che l'abbia applicata.

  • Dopo aver aggiornato PHP, riavvia PHP-FPM o Apache, altrimenti la vecchia versione resta in esecuzione.

  • Usi una versione non più supportata (PHP 8.1 o precedenti, Node.js 25, 23, 20 o precedenti)? Non riceverai una correzione ufficiale. Pianifica il passaggio a una versione supportata.


Cosa è successo

PHP: "PHP2Shell" (CVE-2026-109618 e CVE-2026-109619)

Il team di PHP ha pubblicato le correzioni per due vulnerabilità critiche, entrambe con un punteggio di 9,2 sulla scala CVSS v4.0:

  • CVE-2026-109618: esecuzione di codice da remoto tramite corruzione della memoria quando PHP esaurisce la memoria durante una richiesta.

  • CVE-2026-109619: esecuzione di codice da remoto tramite uno stato globale non aggiornato.

Entrambe sono sfruttabili da remoto, senza autenticazione, con le configurazioni predefinite. I dettagli sono trapelati online il giorno prima del rilascio previsto. Le aziende di sicurezza hanno quindi rilevato attacchi e tentativi di individuare siti PHP vulnerabili prima che la patch fosse disponibile. Diverse aziende hanno messo offline i propri servizi per precauzione, in attesa di poterli aggiornare.

Il problema riguarda tutti i rami PHP supportati, nelle versioni precedenti alla 8.2.35, 8.3.36, 8.4.27 e 8.5.12.

Node.js: aggiornamento di sicurezza di ottobre 2026

Node.js ha pubblicato correzioni per i rami 26.x, 24.x e 22.x che risolvono 10 vulnerabilità, di cui 4 con gravità alta. Le principali:

  • CVE-2026-111497: una scrittura fuori dai limiti della memoria nel decompressore Brotli che potrebbe consentire l'esecuzione di codice da remoto. Per esporre la tua app al problema basta una chiamata a fetch() verso un server che restituisce dati compressi con Brotli.

  • CVE-2026-105483 / CVE-2026-106069: possibilità di aggirare la verifica del nome host TLS usando rappresentazioni insolite degli indirizzi IP.

  • CVE-2026-105482: dns.resolve potrebbe risolvere un nome diverso da quello verificato dal tuo codice.

Cosa abbiamo fatto

Oggi abbiamo applicato entrambi gli aggiornamenti a tutta l'infrastruttura di WireBoard. Nessuna interruzione del servizio, nessun impatto sui dati. Per te, WireBoard funziona esattamente come prima.

Devi intervenire?

Sì, se il tuo sito, la tua app o il tuo server usa:

  • PHP, direttamente o tramite un CMS o un framework come WordPress, WooCommerce, Magento, Drupal, Joomla, Laravel o Symfony.

  • Node.js, ad esempio per un'app Next.js, Nuxt, Express o NestJS, oppure per un servizio backend o un server di build che esegue Node.

Non sai se è il tuo caso? Chiedi a chi sviluppa il sito o al tuo provider di hosting. Basta una domanda: "Il nostro sito usa PHP o Node.js? È stato aggiornato con le correzioni di sicurezza uscite oggi?"

Come verificare la versione in uso

PHP

Conta la versione usata dal server web. Il comando php -v nel terminale mostra la versione di PHP usata dalla riga di comando, che potrebbe essere diversa.

  1. Crea un file chiamato info.php nella directory principale del sito, accessibile dal web, con questo contenuto: <?php phpinfo();

  2. Aprilo nel browser e controlla la voce PHP Version in alto.

  3. Elimina subito il file dopo la verifica: rende visibile l'intera configurazione del server.

Anche molti pannelli di controllo dell'hosting (cPanel, Plesk e altri) mostrano la versione di PHP.

Nota sui pacchetti delle distribuzioni Linux: Ubuntu, Debian, RHEL e altre distribuzioni spesso applicano la correzione alle versioni esistenti senza cambiarne il numero. In questi casi, cerca gli identificativi CVE nel changelog del pacchetto (vedi sotto).

Node.js

node -v

La correzione è installata se compare v26.12.1, v24.22.1, v22.23.4 o una versione successiva dello stesso ramo.

Come aggiornare PHP

Segui le istruzioni per il metodo di installazione di PHP sul tuo server.

Hosting condiviso o gestito

Il provider gestisce PHP e applica la correzione. Controlla la sua pagina di stato o gli annunci, poi verifica la versione con phpinfo() come descritto sopra. Se il pannello di controllo ti permette di scegliere la versione di PHP e usi la 8.1 o una precedente, passa alla 8.2 o a una successiva. Prima, verifica che il tuo CMS e i plugin siano compatibili.

Ubuntu / Debian

sudo apt update
# replace 8.3 with the PHP branch you use
sudo apt install --only-upgrade 'php8.3-*'

# confirm the fix is included
apt changelog php8.3-fpm | grep -E 'CVE-2026-10961(8|9)'

Se l'ultimo comando non restituisce nulla, la correzione non è ancora disponibile nel repository della tua distribuzione. Controlla gli avvisi di sicurezza di Ubuntu o il Debian Security Tracker e riprova più tardi. Se usi i pacchetti PHP di Ondřej Surý, aggiornali dal relativo repository con la stessa procedura.

RHEL / AlmaLinux / Rocky Linux

dnf module list php          # see which PHP stream you're on
sudo dnf upgrade 'php*'

# confirm the fix is included
rpm -q --changelog php-fpm | grep -E 'CVE-2026-10961(8|9)'

Se usi il repository Remi, esegui l'aggiornamento da lì.

Docker

Scaricare una nuova immagine non aggiorna i container già in esecuzione. Scarica l'immagine, ricompilala e ricrea i container:

docker pull php:8.3-fpm        # use your tag
docker compose build --pull
docker compose up -d

Per maggiore sicurezza, specifica la versione corretta nel Dockerfile (ad esempio FROM php:8.3.36-fpm).

Compilazione da sorgente o Windows

Scarica la versione con la correzione da php.net/downloads.

Poi riavvia PHP

È un passaggio facile da dimenticare. I processi in esecuzione continuano a usare la vecchia versione di PHP finché non vengono riavviati:

# PHP-FPM (Debian/Ubuntu; replace 8.3 with your branch)
sudo systemctl restart php8.3-fpm

# PHP-FPM (RHEL family)
sudo systemctl restart php-fpm

# Apache with mod_php
sudo systemctl restart apache2   # or httpd on RHEL

Controlla di nuovo phpinfo() per verificare che la nuova versione sia effettivamente in uso.

"Non basta cambiare un'impostazione?"

No. Inizialmente sono circolate alcune soluzioni provvisorie, come disattivare session.upload_progress.enabled, ma riducono soltanto il rischio. Uno sviluppatore del core di PHP ha dichiarato pubblicamente che l'unico intervento davvero efficace è aggiornare PHP. Se hai applicato una soluzione provvisoria, mantienila fino all'aggiornamento, ma non rinunciare ad aggiornare.

Come aggiornare Node.js

Metodo di installazione

Come aggiornare

nvm

nvm install 24 (oppure 22 / 26), poi nvm alias default 24

Programma di installazione ufficiale

Scarica l'ultima versione del ramo che usi da nodejs.org/en/download

Docker

Specifica il tag della versione corretta, ad esempio FROM node:24.22.1, poi esegui docker pull e ricompila l'immagine. Un tag generico come node:24 può continuare a usare una versione obsoleta se la build parte da un'immagine nella cache.

Homebrew

brew update && brew upgrade node (oppure node@24 / node@22). Su Homebrew l'aggiornamento può arrivare con qualche ora di ritardo. Se hai fretta, usa nvm o il programma di installazione.

Gestore di pacchetti Linux

Aggiorna come di consueto dal repository della tua distribuzione o da quello di NodeSource.

Piattaforma di hosting (Vercel, Netlify, Heroku, Render, ecc.)

Controlla le impostazioni del runtime e gli annunci della piattaforma. La maggior parte aggiorna i runtime automaticamente, ma potrebbe essere necessario un nuovo deploy.

Dopo l'aggiornamento, riavvia l'app (o esegui un nuovo deploy) e verifica la versione con node -v.

Se usi una versione non più supportata

Le correzioni ufficiali vengono rilasciate solo per le versioni supportate:

  • PHP: 8.2, 8.3, 8.4 e 8.5. Per PHP 8.1 e precedenti non sono previsti aggiornamenti ufficiali. Alcune distribuzioni Linux e alcuni fornitori di supporto a lungo termine a pagamento applicano le correzioni anche alle vecchie versioni: verifica con il tuo fornitore. In caso contrario, la scelta sicura è passare a un ramo supportato. Ricorda che PHP 8.2 riceverà correzioni di sicurezza solo fino al 31 dicembre 2026.

  • Node.js: 22.x, 24.x e 26.x. I rami come 25, 23 e 20 non sono più supportati e non riceveranno la correzione.

Se non puoi aggiornare subito, valuta di proteggere il sito con un firewall per applicazioni web o di limitarne l'accesso finché non potrai farlo.

Per approfondire

Avvisi ufficiali

Guide utili

Condividi l'articolo
Patrick Wunderlin

Scritto da

Patrick Wunderlin

Fondatore di WireBoard.io. Ingegnere informatico (EPFL), appassionato di web analytics, elaborazione dati in tempo reale e creazione di strumenti che fanno crescere le aziende.

WireBoard

Monitora il tuo sito in tempo reale

Dashboard in tempo reale, come li vuoi tu. Inizia gratis. Senza carta di credito.