SecBoard
Zurück zur CVE-Übersicht

CVE-2020-12812

CRITICAL(9.8)KEV — Aktiv ausgenutzt

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Risk Signal Score69/100 — HOCH
  • 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_logins

Sigma

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: high

Elastic 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_logins

SecBoard-generated · behavioral · requires customizationVon 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:*:*:*:*:*:*:*

Referenzen