CVE-2020-12812
CRITICAL(9.8)KEV — Aktiv ausgenutztCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- CVSS 9.8 — Kritisch
- EPSS 49%
- Im CISA KEV-Katalog (aktiv ausgenutzt)
CISA KEV
Bestätigt ausgenutzt
EPSS-Score
49.3%
Exploit-Wahrscheinlichkeit (30 Tage)
CVSS Score
9.8
Technische Schwere
SecBoard-Einordnung
CVE-2020-12812 betrifft eine Schwachstelle in der SSL-VPN-Komponente von FortiOS. Es handelt sich um eine fehlerhafte Authentifizierung, die es einem Benutzer ermöglicht, sich ohne die erforderliche Zwei-Faktor-Authentifizierung (FortiToken) anzumelden, wenn der Benutzer die Groß-/Kleinschreibung seines Benutzernamens ändert. Die primäre Auswirkung ist ein Umgehen der Authentifizierung, was zu unautorisiertem Zugriff führen kann.
KI-gestützte Einordnung auf Basis der NVD-Daten.
Beschreibung
An improper authentication vulnerability in SSL VPN in FortiOS 6.4.0, 6.2.0 to 6.2.3, 6.0.9 and below may result in a user being able to log in successfully without being prompted for the second factor of authentication (FortiToken) if they changed the case of their username.
Erkennung & Indikatoren
Ausnutzung
Aktiv ausgenutzt (CISA KEV).
Threat-Hunting-Queries
Diese Schwachstelle betrifft eine fehlerhafte Authentifizierung in FortiOS SSL VPN, bei der die zweite Authentifizierungsstufe (FortiToken) umgangen werden kann, wenn der Benutzer die Groß-/Kleinschreibung seines Benutzernamens ändert. Die Erkennung sollte sich auf ungewöhnliche Anmeldeversuche bei FortiOS SSL VPN konzentrieren, insbesondere auf solche, bei denen die Groß-/Kleinschreibung des Benu
Sentinel/Defender KQL
FortiGateEvent
| where DeviceProduct == "FortiGate" and EventType == "vpn" and Action == "login"
| where isnotempty(DstUsername)
| summarize LoginAttempts = count(), SuccessfulLogins = countif(Result == "success") by DstUsername, tolower(DstUsername)
| where SuccessfulLogins > 0 and LoginAttempts > SuccessfulLogins // Potentially indicates attempts with case variations
| project DstUsername, tolower(DstUsername), LoginAttempts, SuccessfulLogins
| extend Anomaly = iff(LoginAttempts > SuccessfulLogins, "Potential Case-Insensitive Login Bypass", "")Splunk SPL
index=fortinet sourcetype=fortigate eventtype=vpn action=login
| stats count(eval(result="success")) as successful_logins, count as total_logins by DstUsername, lower(DstUsername) as lower_dstusername
| where successful_logins > 0 AND total_logins > successful_logins
| table DstUsername, lower_dstusername, successful_logins, total_loginsSigma
title: FortiOS SSL VPN Case-Insensitive Login Bypass Attempt
author: SecBoard
date: 2024/07/30
logsource:
product: fortigate
service: vpn
detection:
selection:
action: 'login'
result: 'success'
condition: selection
timeframe: 5m
groupby: DstUsername
having: 'count(DstUsername) > 1' # Look for multiple successful logins for the same user (case-insensitive)
falsepositives:
- 'Legitimate user behavior with varying case (unlikely for 2FA bypass)'
level: highElastic ES|QL
FROM fortigate_logs
| WHERE event.action == "login" AND event.result == "success"
| GROUP BY user.name, lower(user.name) AS lower_username
| AGG successful_logins = count()
| WHERE successful_logins > 0
| JOIN (FROM fortigate_logs | WHERE event.action == "login" | GROUP BY user.name, lower(user.name) AS lower_username | AGG total_logins = count()) ON lower_username
| WHERE successful_logins > 0 AND total_logins > successful_logins
| SELECT user.name, lower_username, successful_logins, total_loginsSecBoard-generated · behavioral · requires customization — Von SecBoard erzeugt und nicht in einer Zielumgebung validiert. Vor dem Einsatz an die eigene Protokollierung anpassen.
Betroffene Produkte
- cpe:2.3:o:fortinet:fortios:*:*:*:*:*:*:*:*
- cpe:2.3:o:fortinet:fortios:*:*:*:*:*:*:*:*
- cpe:2.3:o:fortinet:fortios:6.4.0:*:*:*:*:*:*:*