Fortinet警告: FortiOS SSL VPN 驗證繞過漏洞(CVE-2020-12812)再度遭實際攻擊利用

五年前的老漏洞,今天仍在被武器化:

Fortinet 近期證實,一個早在 2020 年即已揭露並修補的 FortiOS SSL VPN 漏洞,至今仍在特定環境設定下遭到駭客實際濫用(in-the-wild exploitation
這起漏洞編號為 CVE-2020-12812(CVSS 5.2,本質並非傳統的程式錯誤,而是驗證邏輯與身分系統設計不一致所導致的安全繞過問題

漏洞本質:大小寫差異,竟能繞過雙因素驗證(2FA

CVE-2020-12812 屬於 不當驗證(Improper Authentication)漏洞,影響 FortiOS 的 SSL VPN 驗證流程
在特定條件下,攻擊者只要變更使用者名稱的大小寫(例如 jsmith 改成 JSmith),就可能完全跳過第二道驗證FortiToken / 2FA,成功登入系統。

Photo Credit: Fortinet

問題核心在於:

  • FortiGate 預設將使用者名稱視為「大小寫敏感」
  • LDAP 目錄服務則是「大小寫不敏感」
  • 當兩者混用時,驗證邏輯出現落差

什麼情況下會中招?(關鍵設定條件)

根據 Fortinet 最新(2025/12/24)公告,必須同時滿足以下設定條件,漏洞才會被觸發

  1. FortiGate 上存在啟用 2FA 的本機使用者(Local User
  2. 該本機使用者是透過 LDAP 進行遠端驗證
  3. 同一帳號同時也是 LDAP 群組成員
  4. 該 LDAP 群組被設定於 FortiGate,並用於:
    • 管理者登入
    • SSL VPN
    • IPsec VPN 等驗證政策

攻擊流程如何發生?

當使用者以「非完全一致大小寫」的帳號登入時:

  1. FortiGate 無法比對到本機的 2FA 使用者
  2. 系統轉而嘗試其他驗證政策
  3. 發現符合條件的 LDAP 群組
  4. 只要 LDAP 帳密正確,即可直接通過驗證
  5. 2FA、帳號停用等本機安全設定完全被繞過

結果是:

管理者或 VPN 帳號在未經 2FA 的情況下成功登入

為何這麼危險?

這類漏洞特別容易被忽略,因為:

  • 不需要漏洞利用程式(Exploit)
  • 不會留下明顯錯誤紀錄
  • 登入行為「看起來完全正常」

一旦被濫用,企業可能必須:

  • 全面重置管理者與 VPN 帳密
  • 重新檢視 AD / LDAP 架構
  • 進行入侵調查(IR)

多個 APT 與勒索組織早已實戰利用

事實上,CVE-2020-12812 並非理論漏洞,早已被多個威脅行為者武器化:

  • 2021 :FBI 與 CISA 聯合警告 APT 利用該漏洞攻擊 FortiOS
  • 伊朗相關 APT(含 APT35 / Charming Kitten)
    利用 CVE-2018-13379、CVE-2019-5591、CVE-2020-12812 進行橫向入侵
  • COBALT MIRAGE APT(2022)
    被 Secureworks 證實實際利用此漏洞
  • Hive 勒索軟體組織
    亦曾在攻擊行動中使用該漏洞

該漏洞也被列入美國政府「周邊設備(Perimeter Device)被大量武器化的關鍵弱點清單」。

修補與緩解建議(務必檢查)

已修補版本(2020 年即已釋出)

  • FortiOS 6.0.10
  • FortiOS 6.2.4
  • FortiOS 6.4.1

強制建議設定(關鍵)

舊版本(未升級者)

set username-case-sensitivity disable

較新版本(6.0.13 / 6.2.10 / 6.4.7 / 7.0.1 以上)

set username-sensitivity disable

關閉後,FortiGate 將把jsmith / JSmith / JSMITH 視為同一帳號,避免驗證流程錯位

進階防護建議(資安實務)

  • 若非必要,移除次要 LDAP 群組驗證
  • 定期檢視「本機帳號 + LDAP」混合設計
  • 若曾發現未經 2FA 的管理或 VPN 登入紀錄
    • 立即重置所有相關帳密
    • 聯繫 Fortinet Support 進行調查

資安觀點總結

這不是「舊漏洞沒修」的問題,而是「驗證設計被誤用」的風險。
在零信任與多因素驗證已成基本要求的今天,
任何一個「看似只是設定問題」的裂縫,都可能成為實際入侵的入口。