SYSADMIN JOURNAL / Linux · Networking · Security · HostingProcedure, appunti e soluzioni tecniche
Apache

ModSecurity: bloccare PHP_SESSION_UPLOAD_PROGRESS come mitigazione temporanea

Pubblicato il 12/11/2026

Guida basata su interventi documentati. Mitigazione d'emergenza per upload progress in PHP con controlli di caricamento e test dei servizi Apache/PHP-FPM.

Contesto

In seguito a una segnalazione di sicurezza sulla gestione di upload e sessioni PHP, è stata adottata una difesa a più livelli: aggiornamenti PHP disponibili, disabilitazione di session.upload_progress.enabled e una regola ModSecurity che intercetta il parametro di upload progress.

Perché difesa a strati

L'impostazione PHP riduce la superficie applicativa; ModSecurity può invece intercettare il traffico prima che arrivi allo script. Nessuna delle due misure sostituisce l'aggiornamento delle versioni PHP vulnerabili.

Esempio di regola

SecRule ARGS_NAMES "@streq PHP_SESSION_UPLOAD_PROGRESS" \n  "id:1000591,phase:2,deny,status:403,log,msg:'Blocked PHP upload progress parameter'"

Usare un ID libero nel proprio ruleset, testare con SecRequestBodyAccess On e attenzione ai multipart form-data. Gli ID e i percorsi di caricamento possono variare.

Verifiche di configurazione

apachectl -M | grep security
grep -R 'SecRuleEngine' /etc/apache2 /etc/modsecurity 2>/dev/null
apachectl -t
php-fpm8.3 -t
php8.3 -i | grep 'session.upload_progress.enabled'

Conferma dell'intervento

Nell'ambiente documentato il motore ModSecurity risultava caricato con SecRuleEngine On e SecRequestBodyAccess On; le regole di emergenza e le impostazioni PHP erano state applicate e i servizi erano rimasti operativi.

Limiti e falsi positivi

Non bloccare alla cieca ogni upload: provare caricamenti leciti dell'applicazione e controllare l'audit log ModSecurity. La regola ha un campo di applicazione ristretto e va rivista dopo la correzione a monte.

Approfondimento

Per il controllo PHP correlato è disponibile una guida dedicata alle impostazioni session.upload_progress.enabled e session.use_strict_mode.

Articoli correlati

Usare segnaposto e verificare l’ambiente prima di eseguire i comandi. Nessuna credenziale o identificativo infrastrutturale reale è riportato.