
CVE-2024-21762 è una vulnerabilità critica nei prodotti FortiOS e FortiProxy di Fortinet, presente nel componente SSL VPN.
CVE-2024-21762 è una vulnerabilità critica nei prodotti FortiOS e FortiProxy di Fortinet, presente nel componente SSL VPN. Questa vulnerabilità consente a un attaccante remoto non autenticato di eseguire codice o comandi arbitrari sul sistema target tramite richieste HTTP appositamente create, che possono portare al controllo completo del sistema.
Danno: A causa di questa vulnerabilità, un attaccante può eseguire codice arbitrario da remoto senza alcuna autenticazione, ottenendo il controllo completo del dispositivo interessato. Ciò può portare alla divulgazione di dati sensibili, all'interruzione dei servizi e persino a ulteriori attacchi di rete.
Metodo di attacco: Il metodo principale utilizzato dall'attaccante per sfruttare questa vulnerabilità è l'invio di richieste HTTP appositamente create che attivano una vulnerabilità di scrittura fuori dai limiti nel componente SSL VPN. Nello specifico, l'attaccante può manipolare i dati in memoria tramite richieste accuratamente costruite, ottenendo infine l'esecuzione remota di codice.
Misure di protezione: Per prevenire attacchi che sfruttano questa vulnerabilità, si consiglia di aggiornare immediatamente FortiOS e FortiProxy all'ultima versione di sicurezza ufficiale fornita. Inoltre, disabilitare la funzionalità SSL VPN rappresenta una misura di protezione temporanea.
CVE-2024-21762 è una vulnerabilità ad alto rischio in Fortinet FortiOS SSL VPN, classificata come vulnerabilità di scrittura fuori dai limiti non autorizzata. La vulnerabilità può essere utilizzata per l'esecuzione remota di codice (RCE), rappresentando una minaccia per la sicurezza delle reti aziendali.
FortiGate ha pubblicato un aggiornamento a febbraio 2024 che corregge diverse vulnerabilità di media e alta gravità. Tra queste, questo articolo analizza in dettaglio il processo di sfruttamento di CVE-2024-21762, inclusa la modalità di utilizzo della vulnerabilità per ottenere l'esecuzione remota di codice.
Il seguente codice PoC è fornito da assetnote e mostra i passaggi fondamentali per sfruttare questa vulnerabilità.
# Frammento di codice di sfruttamento semplificato
ssl_do_handshake_ptr = b"%60%ce%42%00%00%00%00%00" # Puntatore SSL handshake
getcwd_ptr = b"%70%62%2c%04%00%00%00%00" # Puntatore funzione getcwd
pivot_1 = b"%52%f7%fd%00%00%00%00%00" # Set di istruzioni pivot 1
pivot_2 = b"%ac%c9%ab%02%00%00%00%00" # Set di istruzioni pivot 2
rop = b"" # Catena ROP
rop += b"%c6%e2%46%00%00%00%00%00"
rop += b"%19%6f%4d%01%00%00%00%00"
# ... contenuto rimanente della catena ROP omesso
# Dati di richiesta falsificati
body = (b"B"*1808 + b"=" + b"B"*1024 + b"&") * 20
data = b"POST /remote/hostcheck_validate HTTP/1.1\r\n"
data += b"Host: 192.168.1.229\r\n"
data += f"Content-Length: {len(body)}\r\n".encode("utf-8")
data += b"\r\n" + body
# Invio della richiesta falsificata
ssock1 = make_sock(TARGET, PORT)
ssock1.sendall(data)
Confrontando i file binari di FortiOS 7.4.2 e 7.4.3, il codice corretto si trova nella funzione sub_18F4980. La correzione si concentra principalmente sui seguenti due punti:
chunk, è stata aggiunta una verifica della lunghezza del chunk. Se la lunghezza decodificata supera 16, viene considerata non valida.chunk trailer, prevenendo la scrittura fuori dai limiti di \r\n.Attivazione della scrittura fuori dai limiti:
chunk, se il campo di lunghezza decodificato è 0, viene attivata la lettura del chunk trailer.chunk trailer, \r\n viene scritto nello stack in base al campo di lunghezza.0, viene attivata la scrittura fuori dai limiti di \r\n vicino all'indirizzo di ritorno.Overflow dello stack e dirottamento:
chunk accuratamente costruiti, è possibile sovrascrivere l'indirizzo di ritorno nello stack, ottenendo il dirottamento del flusso di controllo del programma.Sebbene sia possibile eseguire il dirottamento tramite la catena ROP, /bin/sh nel programma principale di FortiGate non ha la capacità di eseguire direttamente comandi, quindi è necessario cercare altre funzioni utilizzabili. Ad esempio, falsificando puntatori a strutture e utilizzando SSL_do_handshake per ulteriori attacchi.
Anche nella configurazione predefinita (con la modalità Web disattivata), questa vulnerabilità può comunque essere sfruttata.

CVE-2024-21762 è una vulnerabilità di elevata complessità, il cui processo di sfruttamento richiede una comprensione approfondita della logica del codice e del layout di memoria di FortiOS. Rispetto ai tradizionali problemi CTF, lo sfruttamento di vulnerabilità reali richiede un'analisi più complessa del contesto e della struttura.
L'autore ha fornito un articolo di analisi più dettagliato in cinese, consultabile al seguente indirizzo: Collegamento originale