
CVE-2024-21762 ist eine schwerwiegende Schwachstelle in den Produkten FortiOS und FortiProxy von Fortinet, die in deren SSL-VPN-Komponente vorhanden ist.
CVE-2024-21762 ist eine schwerwiegende Schwachstelle in den Produkten FortiOS und FortiProxy von Fortinet, die in deren SSL-VPN-Komponente vorhanden ist. Diese Schwachstelle ermöglicht es nicht authentifizierten Remote-Angreifern, über speziell gestaltete HTTP-Anfragen beliebigen Code oder Befehle auf dem Zielsystem auszuführen, was zu einer vollständigen Übernahme des Systems führen kann.
Auswirkungen: Aufgrund dieser Schwachstelle können Angreifer ohne jegliche Authentifizierung remote beliebigen Code ausführen und dadurch die vollständige Kontrolle über betroffene Geräte erlangen. Dies kann zu Datenlecks sensibler Informationen, Dienstunterbrechungen und sogar weiteren Netzwerkangriffen führen.
Angriffsmethode: Das Hauptmittel, mit dem Angreifer diese Schwachstelle ausnutzen, ist das Senden speziell gestalteter HTTP-Anfragen, die eine Out-of-Bounds-Write-Schwachstelle in der SSL-VPN-Komponente auslösen. Konkret können Angreifer durch sorgfältig konstruierte Anfragen Daten im Speicher manipulieren und letztendlich Remote-Code-Ausführung erreichen.
Schutzmaßnahmen: Um Angriffe über diese Schwachstelle zu verhindern, wird empfohlen, FortiOS und FortiProxy sofort auf die neuesten offiziellen Sicherheitsversionen zu aktualisieren. Darüber hinaus ist die Deaktivierung der SSL-VPN-Funktion eine vorübergehende Schutzmaßnahme.
CVE-2024-21762 ist eine hochriskante Schwachstelle im SSL-VPN von Fortinet FortiOS und gehört zur Kategorie der nicht autorisierten Out-of-Bounds-Write-Schwachstellen. Die Schwachstelle kann für Remote-Code-Ausführung (RCE) genutzt werden und stellt eine Bedrohung für die Netzwerksicherheit von Unternehmen dar.
FortiGate veröffentlichte im Februar 2024 Updates, die mehrere mittlere und hohe Schwachstellen behoben. In diesem Artikel liegt der Fokus auf der Analyse des Ausnutzungsprozesses von CVE-2024-21762, einschließlich der Frage, wie die Schwachstelle zur Remote-Code-Ausführung genutzt werden kann.
Der folgende PoC-Code wurde von assetnote bereitgestellt und zeigt die grundlegenden Schritte zur Ausnutzung dieser Schwachstelle.
# Vereinfachter Exploit-Code-Ausschnitt
ssl_do_handshake_ptr = b"%60%ce%42%00%00%00%00%00" # SSL-Handshake-Zeiger
getcwd_ptr = b"%70%62%2c%04%00%00%00%00" # getcwd-Funktionszeiger
pivot_1 = b"%52%f7%fd%00%00%00%00%00" # Pivot-Befehlssatz 1
pivot_2 = b"%ac%c9%ab%02%00%00%00%00" # Pivot-Befehlssatz 2
rop = b"" # ROP-Kette
rop += b"%c6%e2%46%00%00%00%00%00"
rop += b"%19%6f%4d%01%00%00%00%00"
# ... Rest der ROP-Kette ausgelassen
# Gefälschte Anfragedaten
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
# Gefälschte Anfrage senden
ssock1 = make_sock(TARGET, PORT)
ssock1.sendall(data)
Durch den Vergleich der Binärdateien von FortiOS 7.4.2 und 7.4.3 befindet sich der gepatchte Code in der Funktion sub_18F4980. Die Korrektur konzentriert sich hauptsächlich auf die folgenden zwei Punkte:
chunk-Formats wurde eine Prüfung der chunk-Länge hinzugefügt. Wenn die dekodierte Länge 16 überschreitet, wird sie als ungültig betrachtet.chunk trailer wurde korrigiert, um ein Out-of-Bounds-Schreiben von \r\n zu verhindern.Auslösen des Out-of-Bounds-Schreibens:
chunk wird, wenn das Längenfeld nach der Dekodierung 0 ist, das Lesen des chunk trailer ausgelöst.chunk trailer wird basierend auf dem Längenfeld \r\n in den Stack geschrieben.0 besteht, wird ein Out-of-Bounds-Schreiben von \r\n in die Nähe der Rücksprungadresse ausgelöst.Stack-Überlauf und Hijacking:
chunk-Daten kann die Rücksprungadresse im Stack überschrieben werden, um den Programmablauf zu übernehmen.Obwohl ein Hijacking über die ROP-Kette möglich ist, besitzt /bin/sh im FortiGate-Hauptprogramm nicht die Fähigkeit, Befehle direkt auszuführen. Daher müssen andere nutzbare Funktionen gefunden werden. Beispielsweise kann durch das Fälschen von Strukturzeigern SSL_do_handshake für weitere Angriffe genutzt werden.
Selbst unter der Standardkonfiguration (Webmodus deaktiviert) kann diese Schwachstelle weiterhin ausgenutzt werden.

CVE-2024-21762 ist eine Schwachstelle mit relativ hoher Komplexität, deren Ausnutzung ein tiefes Verständnis der Codelogik und des Speicherlayouts von FortiOS erfordert. Im Vergleich zu herkömmlichen CTF-Aufgaben erfordert die Ausnutzung realer Schwachstellen eine komplexere Kontext- und Strukturanalyse.
Der Autor hat einen detaillierteren chinesischen Analyseartikel bereitgestellt, der hier eingesehen werden kann: Originaladresse