Vulnerabilità di overflow intero in FastCGI (CVE-2025-23016)

FastCGI è un protocollo importante che migliora le prestazioni dei server web mantenendo connessioni persistenti tra server web e server applicativi. È ampiamente utilizzato nei sistemi embedded con risorse computazionali limitate, come telecamere di rete, router e dispositivi IoT. A causa della sua natura leggera, FastCGI è spesso implementato in ambienti dove le risorse per la sicurezza sono limitate, rendendo le vulnerabilità particolarmente preoccupanti.

Questa vulnerabilità riguarda la libreria core di FastCGI scritta in C, non PHP-FPM (che implementa la propria versione del protocollo FCGI). Molti dispositivi IoT e sistemi embedded utilizzano la libreria vulnerabile, esponendo numerosi dispositivi se non correttamente aggiornati.

FastCGI
2025-05-07 14:18:55
Fix Available, Active Exploitation

Riassunto tecnico

La vulnerabilità è presente nella funzione ReadParams della libreria FastCGI. Questa funzione elabora i parametri ricevuti dai server web, analizzando le lunghezze di nome e valore prima di allocare memoria per essi.

La catena di vulnerabilità funziona come segue:

  1. La funzione ReadParams legge la lunghezza del nome del parametro e del valore dallo stream di input.
  2. Se una delle due lunghezze ha il bit alto impostato (≥ 0x80), viene elaborata come intero a 32 bit.
  3. La memoria viene quindi allocata con malloc(nameLen + valueLen + 2) per memorizzare entrambe le stringhe, un segno di uguale e il terminatore null.
  4. Nei sistemi a 32 bit, quando sia nameLen che valueLen sono vicini al valore massimo (0x7FFFFFFF), la loro somma più 2 causa un overflow intero.
  5. Questo si traduce in un’allocazione molto piccola (tipicamente 0x10 byte) invece dei gigabyte necessari.
  6. La funzione tenta quindi di leggere l’intero nome e valore del parametro in questo buffer sottodimensionato.
  7. Questo crea un heap buffer overflow controllabile da un attaccante.

L’aspetto più critico è che questo overflow permette di sovrascrivere strutture adiacenti nello heap, in particolare la struttura FCGX_Stream che contiene puntatori a funzione. Sovrascrivendo il puntatore alla funzione fillBuffProc con l’indirizzo di system() e controllando il primo parametro (lo stream stesso, che può contenere comandi shell), si ottiene l’esecuzione di codice remoto.

La vulnerabilità colpisce tutte le versioni della libreria FastCGI precedenti alla 2.4.5.

Vettore di attacco

L’attacco richiede:

  1. Accesso diretto a un socket FastCGI
  2. Capacità di inviare parametri FastCGI costruiti con dimensioni specifiche

Sebbene i socket FastCGI dovrebbero essere accessibili solo localmente, molte implementazioni espongono erroneamente questi socket a connessioni remote. Questo è particolarmente vero in alcuni sistemi embedded e in server web configurati in modo errato, come l’esempio con lighttpd menzionato nel report, dove molti tutorial suggeriscono configurazioni non sicure.

Raccomandazioni

Per mitigare questa vulnerabilità, è necessario intraprendere i seguenti passaggi:

  1. Aggiornare la libreria FastCGI: Passare alla versione 2.4.5 o successiva, che include le correzioni per questa vulnerabilità.

  2. Configurare in modo sicuro i server web:

    • Utilizzare socket UNIX invece dei socket TCP quando possibile
    • Se i socket TCP sono necessari, limitarne l’accesso al solo localhost
    • Implementare una corretta segmentazione della rete per impedire l’accesso diretto ai servizi FastCGI
  3. Implementare misure di defense-in-depth:

    • Abilitare tutte le protezioni di sistema disponibili (ASLR, PIE, RELRO, ecc.)
    • Eseguire le applicazioni FastCGI con i privilegi minimi
    • Considerare l’uso di firewall applicativi per filtrare richieste dannose
  4. Verificare le implementazioni esistenti:

    • Controllare la presenza di socket FastCGI esposti nella rete
    • Verificare che le configurazioni dei server web non includano opzioni come check-local => "disable" senza adeguati controlli di sicurezza
    • Ispezionare la documentazione e i tutorial per assicurarsi che le pratiche di distribuzione siano sicure

Vuoi garantire la massima sicurezza informatica alla tua azienda? ISGroup SRL è qui per aiutarti con soluzioni di cyber security su misura per la tua azienda.

Vuoi che gestiamo tutto noi per te? Il servizi di Virtual CISO e di gestione delle vulnerabilità sono perfetti per la tua organizzazione.

Hai già le idee chiare su quello che ti serve? Esplora i nostri servizi di:

E molto altro. Proteggi la tua azienda con i migliori esperti di cybersecurity!