Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-35616 — # Erkennungs-Toolkit für CVE-2026-35616, eine Pre-Authentication-API-Umgehung in FortiClient EMS. Enthält Python-Scanner und Nmap-NSE-Skript zur Identifizierung verwundbarer Versionen sowie Anleitungen zur Behebung. | Kitploit
Tools/GitHubGitHub/keraattin/cve-2026-35616
SchwachstellenscannerSchwachstellenanalyseExploitationInformationsbeschaffungWebsicherheitNetzwerksicherheitPenetrationstestsAuthentifizierung
GitHubkeraattin/cve-2026-35616

CVE-2026-35616

# Erkennungs-Toolkit für CVE-2026-35616, eine Pre-Authentication-API-Umgehung in FortiClient EMS. Enthält Python-Scanner und Nmap-NSE-Skript zur Identifizierung verwundbarer Versionen sowie Anleitungen zur Behebung.

124vor 5 MonatenNoch nicht geprüft
Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-35616 - FortiClient EMS Pre-Authentication API Bypass zu RCE

CVE-2026-35616 CVSS 9.1 CISA KEV CWE-284

TL;DR

Eine kritische Authentifizierungsumgehung in Fortinet FortiClient EMS 7.4.5 und 7.4.6 ermöglicht es einem vollständig nicht authentifizierten, entfernten Angreifer, die API-Authentifizierung durch das Fälschen eines einzigen HTTP-Headers (X-SSL-CLIENT-VERIFY) zu umgehen. Der Fehler besteht darin, dass die Django-Middleware Metadaten von Client-Zertifikaten aus benutzerkontrollierten Headern vertraut, nicht nur aus dem vertrauenswürdigen Reverse-Proxy. Dies gibt Angreifern vollen administrativen API-Zugriff – und von dort aus die Möglichkeit zur Ausführung beliebigen Codes auf verwalteten Endpunkten im gesamten Unternehmen.

Aktiv ausgenutzt seit dem 31. März 2026. Aufgenommen in den CISA-KEV am 6. April 2026.


Inhaltsverzeichnis

  • Kurzfakten
  • Was ist FortiClient EMS?
  • Schwachstellen-Tiefenanalyse
    • Die Architektur
    • Wo es bricht
    • Der Angriffsablauf
  • Auswirkungsanalyse
  • Betroffene Versionen
  • Ausnutzungs-Zeitplan
  • Erkennung
    • Python-Scanner
    • Nmap-NSE-Skript
    • Manuelle Überprüfung
  • Indikatoren für eine Kompromittierung
  • Behebung
  • Referenzen
  • Autor

Kurzfakten

FeldDetail
CVE-IDCVE-2026-35616
AnbieterFortinet
ProduktFortiClient Enterprise Management Server (EMS)
Betroffene Versionen7.4.5, 7.4.6
Nicht betroffen7.2.x-Zweig, 7.4.4 und früher
CVSS v3.19.1 (Kritisch)
CWECWE-284 - Unzureichende Zugriffskontrolle
AngriffsvektorNetzwerk
AuthentifizierungKeine erforderlich
BenutzerinteraktionKeine
Exploit-ReifegradIn freier Wildbahn ausgenutzt
CISA-KEVHinzugefügt am 6. April 2026 (Frist: 9. April 2026)
PatchHotfix verfügbar; vollständige Korrektur in 7.4.7
Gemeldet vonSimo Kohonen (Defused Cyber), Nguyen Duc Anh

Was ist FortiClient EMS?

FortiClient Enterprise Management Server (EMS) ist Fortinets zentrale Endpunktverwaltungsplattform. Sie dient als Befehls- und Kontrollebene für die Bereitstellung, Konfiguration und Überwachung von FortiClient-Agenten in einer Organisation. Stellen Sie es sich als das Gehirn vor, das jeden Endpunkt in einer von Fortinet verwalteten Umgebung steuert:

  • Verteilt Sicherheitsrichtlinien und VPN-Profile an Endpunkte
  • Verwaltet Endpunkt-Compliance und Zustandsprüfungen
  • Verteilt Software-Updates und Patches
  • Integriert sich in FortiGate-Firewalls für Zero Trust Network Access (ZTNA)
  • Speichert und verwaltet Endpunkt-Telemetrie, Zertifikate und Anmeldeinformationen

Wenn ein Angreifer administrativen Zugriff auf EMS erlangt, besitzt er im Wesentlichen die Schlüssel zu jedem verwalteten Endpunkt in der Organisation.


Schwachstellen-Tiefenanalyse

Die Architektur

FortiClient EMS verwendet hinter den Kulissen einen recht standardmäßigen Webanwendungs-Stack:

root@kitploit:~
+----------------+          +----------------+          +----------------+
|   Browser /    |  HTTPS   |    Apache      |   WSGI   |    Django      |
|   API Client   | -------> |   (mod_ssl)    | -------> |    Backend     |
+----------------+          +----------------+          +----------------+

Wenn gegenseitiges TLS (mTLS) konfiguriert ist, übernimmt das mod_ssl von Apache die Überprüfung des Client-Zertifikats. Nach der Validierung des Zertifikats übergibt Apache das Überprüfungsergebnis über vertrauenswürdige WSGI-Umgebungsvariablen an Django weiter:

  • SSL_CLIENT_VERIFY - Der Überprüfungsstatus (SUCCESS, NONE, FAILED)
  • SSL_CLIENT_S_DN - Der Distinguished Name des Antragstellers aus dem Zertifikat
  • SSL_CLIENT_SERIAL - Die Seriennummer des Zertifikats

Dies ist das standardmäßige und sichere Muster. Das Problem liegt darin, wie die Django-Middleware diese Daten liest.

Wo es bricht

In FortiClient EMS 7.4.5 und 7.4.6 wurde die Django-Authentifizierungs-Middleware so geändert, dass sie diese Informationen auch aus HTTP-Anfrage-Headern akzeptiert:

  • X-SSL-CLIENT-VERIFY
  • X-SSL-CLIENT-S-DN
  • X-SSL-CLIENT-SERIAL

Dies wurde wahrscheinlich hinzugefügt, um Reverse-Proxy-Bereitstellungen zu unterstützen, bei denen Apache nicht der TLS-Terminierungspunkt ist. Die Middleware unterscheidet jedoch nicht zwischen diesen beiden Quellen. Sie prüft zuerst die WSGI-Variablen, aber wenn diese fehlen (kein mTLS konfiguriert oder eine direkte Verbindung), greift sie auf die HTTP-Header zurück – die jeder Client setzen kann.

Hier ist die konzeptionelle Aufschlüsselung:

root@kitploit:~
SICHERER PFAD (beabsichtigt):
  Apache mod_ssl validiert Zertifikat --> setzt WSGI-Umgebungsvariablen --> Django liest Umgebungsvariablen  [OK]

UNSICHERER PFAD (die Schwachstelle):
  Angreifer setzt HTTP-Header direkt --> Django liest Header --> Vertraut ihnen  [FEHLER]

Die Middleware vertraut im Wesentlichen darauf, dass der Client seinen eigenen Zertifikatsüberprüfungsstatus selbst bestätigt. Das ist, als würde ein Türsteher jemanden fragen: „Hey, hat der andere Türsteher deinen Ausweis schon geprüft?" und ihn hereinlassen, wenn er „ja" sagt.

Der Angriffsablauf

root@kitploit:~
Schritt 1: Angreifer sendet eine POST-Anfrage an einen EMS-API-Endpunkt
           mit diesen Headern:
           
           X-SSL-CLIENT-VERIFY: SUCCESS
           X-SSL-CLIENT-S-DN: CN=admin
           X-SSL-CLIENT-SERIAL: 0000000000000001

Schritt 2: Django-Middleware prüft auf WSGI-Umgebungsvariablen → nicht vorhanden
           Greift auf HTTP-Header zurück → findet X-SSL-CLIENT-VERIFY: SUCCESS

Schritt 3: Middleware behandelt Anfrage als authentifiziert mit Admin-Identität

Schritt 4: Angreifer hat vollen administrativen API-Zugriff

Schritt 5: Über die Admin-API kann der Angreifer:
           - Bösartige Richtlinien an alle verwalteten Endpunkte verteilen
           - Gespeicherte Anmeldeinformationen und Zertifikate extrahieren
           - Payloads über die Softwareverteilung bereitstellen
           - ZTNA-Konfigurationen ändern
           - In das breitere Netzwerk vordringen

Der gesamte Angriff erfordert eine einzige HTTP-Anfrage. Kein Brute-Forcing, kein Credential Stuffing, kein Social Engineering. Nur ein einziger gefälschter Header.


Auswirkungsanalyse

Die Schwere geht hier über den Server selbst hinaus. FortiClient EMS ist ein Kraftverstärker – die Kompromittierung gibt einem Angreifer Einfluss auf jeden verwalteten Endpunkt:

Unmittelbare Auswirkungen:

  • Volle administrative Kontrolle über die EMS-Konsole
  • Zugriff auf alle gespeicherten Endpunktkonfigurationen, Anmeldeinformationen und Zertifikate
  • Möglichkeit, Endpunktrichtlinien zu lesen/ändern/löschen
  • Zugriff auf VPN-Konfigurationen und ZTNA-Einstellungen

Nachgelagerte Auswirkungen (über verwaltete Endpunkte):

  • Malware-Bereitstellung auf allen verwalteten Geräten über die Softwareverteilung
  • Ernte von Anmeldeinformationen aus Endpunkt-Telemetrie
  • Deaktivierung oder Schwächung von Sicherheitskontrollen auf allen verwalteten Endpunkten
  • Laterale Bewegung über VPN-/ZTNA-Konfigurationsmanipulation
  • Permanenter Hintertür-Zugriff durch richtlinienbasierte Payload-Zustellung

Unternehmensrisiko:

  • In einer typischen Unternehmensbereitstellung verwaltet EMS Hunderte bis Tausende von Endpunkten
  • Eine einzige ausgenutzte EMS-Instanz kann zu einer organisationsweiten Kompromittierung führen
  • FortiClient EMS ist oft in einer vertrauenswürdigen Netzwerkzone mit breitem Zugriff positioniert

Betroffene Versionen

VersionStatus
FortiClient EMS 7.4.6Verwundbar
FortiClient EMS 7.4.5Verwundbar
FortiClient EMS 7.4.4 und früherNicht betroffen
FortiClient EMS 7.2.xNicht betroffen

Ausnutzungs-Zeitplan

DatumEreignis
~Ende März 2026Schwachstelle entdeckt und von Simo Kohonen und Nguyen Duc Anh gemeldet
31. März 2026Erste Ausnutzungsversuche gegen Honeypots aufgezeichnet (Defused Cyber)
4. April 2026Fortinet veröffentlicht Notfall-Hotfixes für 7.4.5 und 7.4.6
6. April 2026CISA fügt CVE-2026-35616 zum KEV-Katalog hinzu (Frist: 9. April 2026)
13. April 2026Dieses Erkennungs-Toolkit veröffentlicht

Erkennung

Python-Scanner

Das Python-Skript testet mehrere API-Endpunkte mit einer Differential-Response-Technik.

So funktioniert es:

  1. Fingerprinting - Identifiziert FortiClient EMS über HTTP-Antwortkörper und -Header
  2. Basisanfrage - Sendet eine POST an jeden API-Endpunkt ohne Spoof-Header (erwartet HTTP 401 Unauthorized)
  3. Gefälschte Anfrage - Sendet dieselbe Anfrage mit injiziertem X-SSL-CLIENT-VERIFY: SUCCESS
  4. Vergleich - Wenn sich der Statuscode von 401 zu etwas anderem ändert (typischerweise 500 oder 200), ist die Authentifizierungsumgehung bestätigt

Es wird niemals ein Exploit-Payload gesendet. Der Test ist für die Produktion sicher.

Verwendung:

root@kitploit:~
# Abhängigkeiten installieren (nur stdlib für dieses Skript benötigt)
pip install -r requirements.txt

# Einzelnes Ziel
python CVE-2026-35616_FortiClientEMS_detector.py -t 192.168.1.100

# Benutzerdefinierter Port
python CVE-2026-35616_FortiClientEMS_detector.py -t ems.corp.local -p 8443

# Massenscan aus Datei
python CVE-2026-35616_FortiClientEMS_detector.py -f targets.txt

# JSON-Ausgabe in Datei gespeichert
python CVE-2026-35616_FortiClientEMS_detector.py -t 192.168.1.100 --json -o results.json

# Mit aktivierter SSL-Zertifikatsüberprüfung
python CVE-2026-35616_FortiClientEMS_detector.py -t 192.168.1.100 --verify-ssl

# Erhöhtes Timeout für langsame Netzwerke
python CVE-2026-35616_FortiClientEMS_detector.py -t 192.168.1.100 --timeout 20

Optionen:

FlagBeschreibungStandard
-t, --targetZiel-IP oder Hostname-
-f, --fileDatei mit Zielen, eines pro Zeile (Zeilen, die mit # beginnen, werden übersprungen)-
-p, --portZielport443
--timeoutVerbindungs-Timeout in Sekunden10
--verify-sslSSL-Zertifikatsüberprüfung aktivierenDeaktiviert
--jsonErgebnisse im JSON-Format ausgebenAus
-o, --outputErgebnisse in einer Datei speichern-

Beispielausgabe:

root@kitploit:~
╔══════════════════════════════════════════════════════════════╗
║  CVE-2026-35616 - FortiClient EMS Auth Bypass Detector     ║
║  Pre-Authentication API Access Bypass → Privilege Escalation║
║  CVSS: 9.1 (Critical) | CISA KEV: Active Exploitation      ║
╚══════════════════════════════════════════════════════════════╝

[*] Scanning 192.168.1.100:443...

Target: 192.168.1.100:443
============================================================
  [*] FortiClient EMS detected (Version: Unknown)

  Vulnerability Test Results:
    [VULNERABLE] /api/v1/auth/signin  Baseline: 401 → Spoofed: 500
    [VULNERABLE] /api/v1/system/status  Baseline: 401 → Spoofed: 500
    [NOT VULN] /api/v1/endpoints  Baseline: 401 → Spoofed: 401

  [!] TARGET IS LIKELY VULNERABLE TO CVE-2026-35616
      Pre-authentication API bypass confirmed. Apply hotfix immediately!
      Remediation: Upgrade to FortiClient EMS 7.4.7 or apply the hotfix

Nmap-NSE-Skript

root@kitploit:~
# NSE-Skript installieren
sudo cp CVE-2026-35616_FortiClientEMS.nse /usr/share/nmap/scripts/
sudo nmap --script-updatedb

# Basisscan
nmap -p 443 --script CVE-2026-35616_FortiClientEMS <target>

# Subnetz scannen
nmap -p 443 --script CVE-2026-35616_FortiClientEMS 10.0.0.0/24

# Mehrere Ziele aus einer Datei scannen
nmap -p 443 --script CVE-2026-35616_FortiClientEMS -iL targets.txt

# Mit Service-Versionserkennung
nmap -sV -p 443 --script CVE-2026-35616_FortiClientEMS <target>

Beispiel-Nmap-Ausgabe:

root@kitploit:~
PORT    STATE SERVICE
443/tcp open  https
| CVE-2026-35616_FortiClientEMS:
|   VULNERABLE:
|   FortiClient EMS Pre-Authentication API Bypass
|     State: VULNERABLE
|     IDs:  CVE:CVE-2026-35616
|     Risk factor: Critical (CVSS: 9.1)
|     Disclosure date: 2026-04-04
|     Extra information:
|       Affected endpoints: 2
|       Remediation: Apply hotfix for FortiClient EMS 7.4.5/7.4.6 or upgrade to 7.4.7
|       CISA KEV deadline: April 9, 2026
|     References:
|       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-35616
|_      https://www.cisa.gov/known-exploited-vulnerabilities-catalog

Manuelle Überprüfung

Wenn Sie dies manuell mit curl bestätigen möchten:

root@kitploit:~
# Schritt 1: Baseline - sollte 401 zurückgeben
curl -sk -X POST https://<TARGET>:443/api/v1/auth/signin \
  -H "Content-Type: application/json" \
  -d '{}' \
  -o /dev/null -w "%{http_code}\n"

# Schritt 2: Gefälscht - wenn etwas anderes als 401 zurückgegeben wird, wahrscheinlich verwundbar
curl -sk -X POST https://<TARGET>:443/api/v1/auth/signin \
  -H "Content-Type: application/json" \
  -H "X-SSL-CLIENT-VERIFY: SUCCESS" \
  -H "X-SSL-CLIENT-S-DN: CN=admin" \
  -H "X-SSL-CLIENT-SERIAL: 0000000000000001" \
  -d '{}' \
  -o /dev/null -w "%{http_code}\n"

Wenn die erste 401 und die zweite 500 oder 200 zurückgibt, ist die Instanz verwundbar.


Indikatoren für eine Kompromittierung

Achten Sie in Ihrer Umgebung auf diese Anzeichen:

  • Anomale API-Anfragen, die X-SSL-CLIENT-VERIFY-Header von Nicht-Proxy-Quellen enthalten
  • Unerwartete Richtlinienänderungen, die ohne Admin-Sitzungsaktivität an Endpunkte verteilt werden
  • Neue Admin-Konten oder geänderte Anmeldeinformationen in EMS ohne entsprechende Aktivitätsprotokolle
  • Ungewöhnliches FortiClient-Agentenverhalten auf verwalteten Endpunkten (neue Softwareinstallationen, Richtlinienänderungen)
  • Apache-Zugriffsprotokolle, die API-Aufrufe ohne entsprechende mTLS-Handshakes zeigen
  • Honeypot-/IDS-Warnungen für Anfragen mit zertifikatsbezogener Header-Injektion

Zu überprüfende Protokollquellen:

  • FortiClient-EMS-Anwendungsprotokolle
  • Apache-Zugriffs- und Fehlerprotokolle
  • FortiClient-Agentenprotokolle auf verwalteten Endpunkten
  • Netzwerkflussdaten, die Verbindungen zu EMS-API-Ports zeigen

Behebung

Sofortmaßnahmen (jetzt durchführen):

  1. Hotfix anwenden - Fortinet hat am 4. April 2026 Notfall-Hotfixes für FortiClient EMS 7.4.5 und 7.4.6 veröffentlicht
  2. Netzwerkzugriff einschränken - Zugriff auf die EMS-Verwaltungsoberfläche nur auf vertrauenswürdige Admin-Netzwerke beschränken (Firewall-Regeln, ACLs)
  3. API-Aktivität überwachen - Detaillierte Protokollierung aktivieren und auf anomale API-Zugriffsmuster achten

Kurzfristig (diese Woche):

  1. Upgrade auf FortiClient EMS 7.4.7 durchführen, sobald verfügbar, für die vollständige Korrektur
  2. Endpunktkonfigurationen prüfen - Alle verwalteten Endpunkte auf unbefugte Richtlinienänderungen überprüfen
  3. Anmeldeinformationen rotieren - Alle Admin-Passwörter ändern und alle von EMS verwalteten Zertifikate neu generieren
  4. Verwaltete Endpunkte überprüfen - Auf Anzeichen von Malware-Bereitstellung oder unbefugten Konfigurationsänderungen scannen

Langfristig:

  1. Netzwerksegmentierung - Sicherstellen, dass EMS in einem isolierten Verwaltungs-VLAN mit strengen Zugriffskontrollen liegt
  2. WAF-/Reverse-Proxy-Regeln - Regeln bereitstellen, die X-SSL-CLIENT-VERIFY, X-SSL-CLIENT-S-DN und X-SSL-CLIENT-SERIAL-Header aus eingehenden Anfragen am Netzwerkrand entfernen
  3. Überwachung - Alarmierung bei jedem API-Zugriff ohne gültige mTLS-Sitzungen implementieren

Referenzen

  • CISA-KEV-Katalog - CVE-2026-35616
  • Tenable-Blog - CVE-2026-35616-Analyse
  • Bishop Fox - API-Authentifizierungsumgehung in FortiClient EMS
  • SOCRadar - CVE-2026-35616 FortiClient EMS Auth Bypass
  • Horizon3.ai - CVE-2026-35616-Analyse
  • BleepingComputer - FortiClient-EMS-Schwachstelle in Angriffen ausgenutzt
  • The Hacker News - Fortinet patcht aktiv ausgenutzte CVE-2026-35616

Autor

Kerem Oruç - Cybersicherheitsingenieur

  • GitHub: @keraattin
  • Twitter: @keraattin
Tool herunterladen