Vulnerabilità PHP permette l’esecuzione di codice remoto: attenzione ai server Windows

Una grave vulnerabilità in PHP può essere sfruttata in modalità remota per eseguire codice arbitrario passando al server Web un indirizzo parzialmente modificato. Cosa fare per proteggersi dai rischi di attacco.

Mar 11, 2025 - 17:25
 0
Vulnerabilità PHP permette l’esecuzione di codice remoto: attenzione ai server Windows

All’inizio di maggio 2024 uno sviluppatore del team di Devcore, Orange Tsai, ha rilevato una grave vulnerabilità nel codice di PHP che può mettere a rischio la sicurezza di milioni di server Windows. PHP è il popolare linguaggio di scripting open source ampiamente utilizzato per lo sviluppo Web e comunemente impiegato sia su server Windows che Linux. Adesso gli esperti di GreyNoise confermano che la stessa vulnerabilità è sfruttata su larga scala per condurre attacchi.

La falla di sicurezza è subito apparsa di elevata criticità: un aggressore può passare al server vulnerabile il codice arbitrario da eseguire. L’attacco avviene in modalità remota, iniettando il codice da caricare tramite una semplice richiesta HTTP.

Il problema in questione è conosciuto con l’identificativo CVE-2024-4577 e interessa tutte le versioni di PHP, a partire dalla 5.x fino ad arrivare alle più recenti. Sono da tempo disponibili le patch correttive ma negli ultimi giorni gli attacchi si stanno moltiplicando, facendo evidentemente leva sulle tante installazione di PHP su Windows che non risultano aggiornate e messe in sicurezza.

Da cosa dipende la vulnerabilità PHP in Windows

I criminali informatici stanno quindi abbondantemente sfruttando la vulnerabilità CVE-2024-4577 per eseguire codice dannoso sui sistemi server altrui. Il consiglio, rivolto agli utenti e amministratori che usano PHP su un server Windows, è quello di procedere immediatamente con l’installazione delle versioni più aggiornate.

La vulnerabilità risiede nel modo in cui PHP gestisce le conversioni di codifica dei caratteri su Windows, usando nello specifico la funzione ‘Best-Fit‘. Questa funzione può interpretare in modo errato i caratteri, permettendo a certe sequenze di caratteri di essere trattate in modo non sicuro.

Eseguito in modalità CGI (Common Gateway Interface), in particolare, PHP esegue ciascuno script passando i parametri di richiesta come argomenti della riga di comando. Un aggressore può quindi “confezionare” un URL dannoso, aggiungendo un parametro alla querystring e il codice da eseguire lato server.

Gli attaccanti possono ottenere accesso non autorizzato al server, eseguendo comandi con i permessi dell’utente sotto cui gira il processo PHP. Possono quindi installare malware, estrarre dati riservati o utilizzare il server compromesso per lanciare ulteriori aggressioni verso altre infrastrutture informatiche.

La presenza di un’ampia base di installazioni vulnerabili, specialmente con le configurazioni predefinite (si pensi a XAMPP per Windows), amplifica i rischi e “il potenziale” dell’attacco.

Come mettersi al riparo da ogni rischio

Gli analisti precisano che anche qualora PHP non fosse configurato in modalità CGI, un aggressore remoto potrebbe comunque essere in grado di sfruttare la falla CVE-2024-4577. Questo potrebbe accadere in tutti quei contesti in cui gli eseguibili di PHP (ad esempio php.exe o php-cgi.exe) si trovassero in cartelle accessibili dal server Web.

La vulnerabilità scoperta in PHP per Windows, quindi, rappresenta un serio problema che può portare all’esecuzione di codice da remoto (RCE).

Per proteggersi, sui server Web Windows che utilizzano PHP, si dovrebbe subito procedere con l’aggiornamento alle più recenti release pubblicate. Nel caso dei sistemi che non possono essere immediatamente aggiornati e a beneficio di chi ancora fa uso di versioni di PHP già giunte al loro “fine vita” (End of Life, EoL), è fondamentale applicare una regola mod_rewrite per bloccare gli attacchi:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^%ad [NC]
RewriteRule .? - [F,L]

Se si usa XAMPP e non si avesse bisogno della funzionalità PHP CGI, è consigliabile commentare la direttiva ScriptAlias nel file di configurazione di Apache (tipicamente nel file \xampp\apache\conf\extra\httpd-xampp.conf). Gli amministratori possono determinare se usano PHP-CGI tramite la funzione phpinfo() e controllando il valore di Server API nella pagina restituita.

I ricercatori di Devcore suggeriscono inoltre di valutare la migrazione dalla modalità CGI ad alternative più sicure, come FastCGI, PHP-FPM e Mod-PHP.

Rischi di aggressione significativamente aumentati

GreyNoise, azienda che svolge attività di intelligence sulle minacce informatiche, ha registrato un aumento significativo delle tentativi di sfruttamento della falla CVE-2024-4577 a partire dal mese di gennaio 2025.

Stando al contenuto dei report di Cisco Talos, gli attaccanti hanno inizialmente bersagliato le aziende per rubare credenziali, ma l’attività post-exploit ha esteso il campo d’azione. A partire da una semplice richiesta PHP, quindi, gli attaccanti possono farsi largo nelle reti informatiche altrui, acquisire privilegi a livello di sistema, attivare movimenti laterali e spostarsi su altre macchine.