STOP: CVE-2026-115560
La barra di avanzamento che ti apre il server
Due giorni dopo PHP2Shell, PHP avvisa di un'altra falla senza correzione. Colpisce pochi, ma la toppa provvisoria è comica: spegnere una barra di avanzamento.
- bestemmie
- patch
- NESSUNA
Pubblicato il
Avete appena finito di aggiornare per PHP2Shell? Vi siete pure concessi una birra? Posatela.
Il 23 ottobre, due giorni dopo le correzioni d'emergenza per PHP2Shell, PHP ha avvisato di un'altra vulnerabilità: la CVE-2026-115560, che può portare a eseguire codice da remoto. E stavolta la correzione non c'è ancora: arriverà con il prossimo rilascio ordinario. Per ora c'è solo un consiglio su cosa spegnere nel frattempo.
Il colpevole: una barra di avanzamento
PHP ha una funzione che si chiama session upload progress. Serve a una cosa sola: quando qualcuno carica un file sul vostro sito, PHP tiene traccia di quanto ne ha caricato, così potete mostrare la barretta che si riempie. 10%, 40%, 90%, fatto.
Una barra di avanzamento. La cosa più innocua dell'universo. La stessa che sta al 99% da quaranta minuti mentre installate gli aggiornamenti di Windows.
Quanto preoccuparsi
Prima la buona notizia, che è rara e va goduta. PHP stesso la considera un rischio improbabile, e a oggi non risultano attacchi che la sfruttino: quelli in giro dal 21 ottobre puntano tutti a PHP2Shell.
Il motivo è che servono condizioni molto precise, tutte insieme:
- l'applicazione imposta
session.serialize_handlersuphp_binaryophp_serializenella configurazione; - poi, mentre gira, lo cambia in
phpconini_set()prima di chiamaresession_start(); - e la barra di avanzamento delle sessioni è rimasta accesa, come di fabbrica.
Ora la notizia meno buona: "cambiare il formato delle sessioni a metà strada con ini_set()" è esattamente il tipo di genialata che trovate in un gestionale scritto nel 2009 da un consulente che non risponde più al telefono. Se il vostro codice è normale, siete tranquilli. Ma voi lo sapete se il vostro codice è normale? Voi lo avete letto?
Cosa fare finché manca la correzione
Il consiglio ufficiale è spegnere la funzione. Va fatto in un posto che vale prima che arrivi la richiesta: il php.ini, il pool di PHP-FPM o la configurazione del server. Non con ini_set() dentro il codice, che arriva troppo tardi.
session.upload_progress.enabled = 0
Poi riavviate PHP (o il server web, o il pool di PHP-FPM, a seconda di come è montato il vostro presepe).
Effetti collaterali: se il vostro sito usa davvero quella barretta, la barretta smette di funzionare. I vostri utenti caricheranno i file senza sapere a che punto sono, come si faceva una volta, con fede.
Il riassunto per chi ha fretta
- Cercate
serialize_handlernel codice, per capire se siete tra i pochi colpiti. - In ogni caso, nel
php.ini(o nel pool FPM) mettetesession.upload_progress.enabled = 0. - Riavviate.
- Controllate che il sito funzioni ancora.
- Tenete d'occhio l'uscita della correzione vera, e quando arriva aggiornate.
Spegnete la barretta. Nessuno è mai morto per non sapere a che percentuale era il suo upload.