FortiSIEM-Schwachstelle in öffentlichem RCE PoC demonstriert
Die als CVE-2026-106173 erfasste FortiSIEM-Schwachstelle kann es einem nicht authentifizierten Angreifer ermöglichen, Code oder Befehle auf einem betroffenen System auszuführen. Cybersecurity-Forscher haben nun ein proof-of-concept (PoC) veröffentlicht, das zeigt, wie der Angriff funktioniert. Ein PoC ist Demonstrationscode, der bestätigt, dass eine Sicherheitslücke ausgenutzt werden kann. Die Schwachstelle hat im Common Vulnerability Scoring System (CVSS) eine Bewertung von 9,4 und liegt damit im Bereich eines kritischen Schweregrads.
Fortinet veröffentlichte vergangene Woche Patches und rät Nutzern von FortiSIEM 7.5.0 zu einem Upgrade auf Version 7.5.1 oder höher. FortiSIEM 7.6 wird als nicht betroffen aufgeführt. Organisationen, die die verwundbare Version einsetzen, sollten die öffentliche Verfügbarkeit der technischen Methode als Grund betrachten, das Upgrade zu priorisieren. Dies gilt insbesondere, wenn der relevante Dienst von Systemen erreicht werden kann, die keinen Zugriff darauf haben sollten.
Bei der Schwachstelle handelt es sich um path traversal. Das bedeutet, dass von einem Angreifer kontrollierte Eingaben die Software aus dem Ordner herausführen können, in dem sie eine Datei speichern soll. Laut Horizon3.ai kann sich ein nicht authentifizierter Angreifer mit dem gRPC-Dienst von FortiSIEM über TCP port 27918 verbinden. gRPC ist eine Methode, mit der Anwendungen miteinander kommunizieren, während ein TCP port ein nummerierter Netzwerkzugangspunkt ist, den ein bestimmter Dienst verwendet. Mit speziell präparierten Paketen kann anschließend eine Datei außerhalb des vorgesehenen Verzeichnisses überschrieben werden.
Horizon3.ai führte das unsichere Verhalten auf den QueryResultReq-Handler und eine Funktion namens SendQueryResult() zurück. Der Handler verarbeitet über gRPC bereitgestellte Metadaten, ohne den daraus resultierenden Dateipfad ausreichend zu prüfen. Der vom Nutzer kontrollierte Wert query-id wird an den Prozess zur Erstellung des Pfads übergeben. Dadurch können directory traversal-Sequenzen wie ../ in der Ordnerstruktur nach oben wechseln und einen anderen Ort im Dateisystem erreichen. Die speziell präparierten Daten werden über HTTP/2 und HPACK übertragen, das für die Verbindung verwendete Protokoll und Komprimierungsformat.
Path traversal allein gibt dem Angreifer keine vollständige Kontrolle über den Namen der Zieldatei. FortiSIEM fügt automatisch einen Namen im Format result--0-0-.dat hinzu, wobei die letzte Kennung anhand eines vom Server kontrollierten Zählers erzeugt wird. Dieses Verhalten würde den Angreifer normalerweise darauf beschränken, ein Verzeichnis auszuwählen, während das Programm den tatsächlichen Namen der geschriebenen Datei festlegt.
Der PoC umgeht diese Einschränkung, indem er ein NUL byte in den Wert query-id einfügt. Ein NUL byte ist ein spezieller Nullwert, den viele Betriebssystemfunktionen als Ende einer Zeichenfolge interpretieren. Wenn der betroffene Code den vollständigen Pfad an die Funktion zum Öffnen der Datei übergibt, ignoriert das Betriebssystem die automatisch angehängten Zeichen nach dem NUL byte. Ein Angreifer kann daher den gewünschten Namen der Zieldatei direkt vor diesem Abschlusszeichen platzieren und bewirken, dass der Schreibvorgang genau unter diesem Pfad erfolgt.
Horizon3.ai demonstrierte die Technik anhand von /opt/charting/redishb.sh, einem vorhandenen Shell-Skript, das Zustandsprüfungen des Redis-Dienstes durchführt. Ein cron job, also eine geplante Aufgabe auf dem System, führt dieses Skript alle 60 Sekunden aus. Wird sein Inhalt ersetzt, verwandelt sich die Möglichkeit, beliebige Dateien zu überschreiben, in remote code execution, da das veränderte Skript anschließend durch die geplante Aufgabe ausgeführt wird. Horizon3.ai stellte außerdem fest, dass beim Überschreiben einer vorhandenen Datei deren ursprünglicher Eigentümer und ihre Berechtigungen erhalten bleiben. Eine zweite Variante verwendet zwei Anfragen, um eine neue Datei mit einem vom Angreifer exakt festgelegten Namen zu erstellen.
Für Hosting-Anbieter, Unternehmen und IT-Teams ist entscheidend, ob eine verwaltete Sicherheitsumgebung noch FortiSIEM 7.5.0 ausführt und ob TCP port 27918 aus einem nicht vertrauenswürdigen Netzwerk erreichbar ist. Für den Angriff ist kein Konto erforderlich, weshalb gewöhnliche Anmeldekontrollen die verwundbare Verarbeitung der Anfrage nicht absichern. Ein Update auf Version 7.5.1 oder höher beseitigt die Notwendigkeit, sich ausschließlich auf umgebende Netzwerkbeschränkungen zu verlassen. FortiSIEM 7.6 ist laut den veröffentlichten Versionshinweisen nicht betroffen.
Organisationen, die Unterstützung bei der Überprüfung sicherheitskritischer Systeme und der Planung von Upgrades benötigen, können AEU-I für security-first IT, Infrastruktur und Beratung nutzen. Unabhängig davon, wer die Installation verwaltet, besteht die praktische Priorität darin, betroffene Installationen zu identifizieren, die korrigierte Version einzuspielen und zu bestätigen, dass der Zugriff auf den gRPC-Dienst auf Systeme beschränkt ist, die ihn tatsächlich benötigen.