PHP-CGI per Windows: escalation di attacchi a CVE-2024-4577
La vulnerabilità CVE-2024-4577 (CVSS 9.8 critica) ha recentemente conquistato una posizione di rilievo tra le falle di sicurezza più pericolose. Scoperta dai ricercatori di Devcore a inizio giugno 2024, è stata sfruttata in sole 48 ore dalla sua pubblicazione. CVE-2024-4577 è una vulnerabilità di Command Injection [CWE-78] nel “sistema operativo” PHP-CGI OS che interessa PHP per Windows. I criminali informatici non hanno perso tempo e hanno sfruttato questa falla per diffondere il ransomware “TellYouThePass”, portando la Cybersecurity and Infrastructure Security Agency (CISA) a includerla nella sua lista KEV (Known Exploited Vulnerabilities). E nei mesi successivi, lo sfruttamento di CVE-2024-4577 non accenna a diminuire.
Greenbone ha preparato test di vulnerabilità (VT) mirati per individuare i sistemi interessati da CVE-2024-4577. Questo consente ai responsabili IT di identificare i sistemi esposti all’interno delle infrastrutture di rete pubbliche o interne. Ma guardiamo più da vicino quale minaccia costituisce CVE-2024-4577.
Come viene sfruttato CVE-2024-4577
Il team di watchTowr Labs ha pubblicato un codice exploit Proof of Concept (PoC) e un’analisi tecnica dettagliata della vulnerabilità CVE-2024-4577. Inoltre, a metà del 2024, è stato rilasciato un modulo Metasploit. Organizzazioni come il CERT della Nuova Zelanda (CERT NZ), il CERT canadese, il CERT-EU (CERT dell’Unione europea) e il CERT-FR (CERT del governo francese) hanno emesso avvisi di sicurezza riguardanti CVE-2024-4577 già nel giugno 2024.
A causa di CVE-2024-4577, il PHP-CGI (Common Gateway Interface) può interpretare erroneamente alcuni caratteri come parametri PHP, permettendo a un attaccante di passarli al file binario php.exe. Questo espediente consente di esporre il codice sorgente degli script o di eseguire codice PHP arbitrario sul server. CVE-2024-4577 è considerata una variante di una precedente falla di sicurezza in PHP (per la quale è già disponibile una patch), nota come CVE-2012-1823.
Quando un aggressore ottiene l’accesso iniziale alla rete di una vittima tramite tecniche come il social engineering o lo sfruttamento di altre vulnerabilità software, la falla CVE-2024-4577 può consentirgli di muoversi lateralmente all’interno del sistema. Questo movimento laterale permette all’attaccante di stabilire una presenza furtiva, penetrare più a fondo nell’infrastruttura della vittima e ampliare l’impatto dell’attacco informatico.
Aspetti tecnici di CVE-2024-4577
In sintesi, lo sfruttamento della vulnerabilità CVE-2024-4577 avviene attraverso la conversione di caratteri Unicode, che consente l’inserimento di argomenti di linea di comando malevoli nel processo php.exe. Quando la modalità CGI è attivata, i server web analizzano le richieste HTTP e le inoltrano agli script PHP per l’elaborazione. Tuttavia, in questa modalità, gli attributi vengono estratti dall’URL e passati come argomenti all’eseguibile PHP (php.exe su Windows), introducendo potenziali rischi elevati per la sicurezza.
Sebbene PHP-CGI debba eliminare i metacaratteri della shell (come trattini, doppi trattini, il simbolo “&” e il segno “=”) prima dell’elaborazione, esiste comunque la possibilità che gli aggressori possano aggirare questo processo di pulizia, aprendo la strada a vulnerabilità di Command Injection. Un esempio significativo è rappresentato dallo sfruttamento di CVE-2012-1823. Inoltre, le continue sfide legate alla codifica dei caratteri offrono agli aggressori ulteriori opportunità per eseguire attacchi XSS e SQL.
In questa variante dell’attacco, i malintenzionati usano il trattino breve (0xAD) al posto del trattino standard (0x2D) per avviare direttive PHP, ottenendo così l’esecuzione di codice da remoto (RCE). Questo accade perché Windows utilizza il set di caratteri UCS-2, che converte tutti i caratteri nel corrispondente punto di codice UCS-2 e applica una conversione “best-fit”. Nel contesto della vulnerabilità CVE-2024-4577, questa conversione trasforma i trattini brevi in trattini standard. Di conseguenza, un aggressore può iniettare argomenti nel processo php.exe, anteponendo ed eseguendo il corpo della richiesta HTTP stessa. Questo avviene aggiungendo il comando “-d allow_url_include=1 -d auto_prepend_file=php://input” alla stringa HTTP-GET, utilizzando trattini brevi codificati in URL. I trattini brevi sono caratteri UTF-8 generalmente invisibili, utilizzati per indicare possibili interruzioni di parola; tuttavia, grazie alla conversione “best-fit” di Windows, vengono interpretati come flag della riga di comando.
Nel 2025, CVE-2024-4577 sarà sfruttato a livello globale
Secondo alcuni rapporti pubblicati a marzo 2025, gli attacchi che sfruttano la vulnerabilità CVE-2024-4577 sono in aumento e sempre più diffusi. È stato scoperto che a gennaio 2025, attori malevoli hanno preso di mira organizzazioni giapponesi nei settori della tecnologia, delle telecomunicazioni, dell’istruzione, dell’intrattenimento e dell’e-commerce. Sfruttando questa vulnerabilità, gli aggressori hanno ottenuto l’accesso iniziale ai sistemi delle vittime, installato plugin come “TaoWu” di Cobalt Strike e modificato le chiavi di registro di Windows per garantire un accesso permanente tramite attività pianificate.
Un ulteriore rapporto di Greynoise indica che lo sfruttamento di CVE-2024-4577 tramite attacchi di mass exploitation si è esteso a obiettivi negli Stati Uniti, Regno Unito, Singapore, Indonesia, Taiwan, Hong Kong, India, Spagna e Malesia. La Germania e la Cina sono state identificate come le principali fonti di attacchi, rappresentando il 43% del totale. La rete globale di honeypot di GreyNoise ha rilevato oltre 1.089 indirizzi IP unici che tentavano di sfruttare questa vulnerabilità solo nel gennaio 2025 e ha identificato 79 kit di exploit pubblicamente disponibili. La società di sicurezza informatica avverte che il volume degli attacchi è in veloce aumento, alimentato da scansioni automatizzate, e segnala una minaccia informatica in rapida escalation.
Mitigazione di CVE-2024-4577
CVE-2024-4577 interessa tutte le versioni di PHP di Windows precedenti a 8.1.29, 8.2.20 e 8.3.8, includendo anche le versioni obsolete come PHP 5 e PHP 7, ormai giunte al termine del loro ciclo di vita. La soluzione ottimale per affrontare questa vulnerabilità è l’aggiornamento immediato a una versione corretta di PHP. Qualora l’aggiornamento immediato non fosse possibile, si consiglia di disabilitare l’esecuzione in modalità PHP-CGI in favore di PHP-FPM (FastCGI Process Manager). In alternativa, l’implementazione di un Web Application Firewall (WAF) può aiutare a filtrare e bloccare i tentativi di exploit.
È inoltre importante che gli amministratori di sistema PHP siano consapevoli dei rischi aggiuntivi associati all’uso della modalità CGI e adottino le misure necessarie per garantire una sicurezza ottimale.
Greenbone ha implementato test di vulnerabilità (VT) per identificare i sistemi interessati da CVE-2024-4577 sin dalla sua pubblicazione a giugno 2024.
Questi strumenti di rilevamento precoce permettono ai professionisti della sicurezza di individuare sistemi vulnerabili sia nelle reti pubbliche che in quelle interne. I test di Greenbone includono sia il riconoscimento delle versioni remote [1][2] , sia controlli attivi[3].
Per riassumere
CVE-2024-4577 è una vulnerabilità critica che interessa le installazioni di PHP su Windows, consentendo l’esecuzione di codice remoto (RCE). Questa falla è stata sfruttata entro 48 ore dalla sua divulgazione, con attacchi che hanno distribuito il ransomware TellYouThePass. Rapporti di Cisco e Greynoise indicano un aumento globale dello sfruttamento di CVE-2024-4577, con diverse segnalazioni da parte di CERT nazionali. Per proteggere le infrastrutture, i responsabili della sicurezza devono individuare i prodotti vulnerabili e aggiornare immediatamente PHP alle versioni corrette (8.1.29, 8.2.20 o 8.3.8). In alternativa, possono disabilitare PHP-CGI o passare a PHP-FPM (FastCGI Process Manager).

Joseph has had a varied and passionate background in IT and cyber security since the late 1980s. His early technical experience included working on an IBM PS/2, assembling PCs and programming in C++.
He also pursued academic studies in computer and systems engineering, anthropology and an MBA in technology forecasting.
Joseph has worked in data analytics, software development and, in particular, enterprise IT security. He specialises in vulnerability management, encryption and penetration testing.