資安

FortiSandbox 三漏洞被串成一個 HTTP 請求拿 root:CVE-2026-39813/39808/25089 正遭實戰利用

2026.06.24 · 114 次瀏覽
FortiSandbox 三漏洞被串成一個 HTTP 請求拿 root:CVE-2026-39813/39808/25089 正遭實戰利用

FortiSandbox 三個未認證 CVSS 9.1 漏洞遭實戰利用,攻陷其他 Fortinet 設備所信任的中央大腦——補丁、緩解與 IOC。

分享:

威脅情報廠商 Defused 與多家資安媒體於 2026 年 6 月中旬 證實,攻擊者正在實戰利用 FortiSandbox 上的三個 CVSS 9.1 漏洞——CVE-2026-39813(路徑遍歷 / 認證繞過)、CVE-2026-39808(OS 命令注入)與 CVE-2026-25089(OS 命令注入,上週才修補)。三者都能在無需認證的情況下,靠單一 HTTP 請求觸發。最危險的是:FortiSandbox 不是邊緣設備,而是其他 Fortinet 產品「拿來判斷檔案是好是壞」的中央大腦——它一旦被攻陷,整套防禦的判決邏輯就被攻擊者接管。

技術原理用人話講:CVE-2026-39813 是 FortiSandbox 的 JRPC API 出現 ../filedir 形式的路徑遍歷,讓未認證攻擊者繞過驗證;接著 CVE-2026-39808/25089 是兩個 OS 命令注入,讓攻擊者把指令塞進精心構造的 HTTP 請求裡,由系統以高權限執行。攻擊鏈:未認證 → 繞過驗證 → 注入命令 → 遠端執行任意程式碼(root 等級)。整條鏈低複雜度、零互動、免認證。值得注意的是,Defused 指出 CVE-2026-25089 的某個公開 exploit 看起來像是用 AI 模型寫的、而且有 bug——這代表攻擊者也在用 AI 量產 exploit,速度只會更快。

受影響範圍:FortiSandbox 5.0.0–5.0.54.4.0–4.4.8,CVE-2026-25089 還影響 4.2 全版本以及 FortiSandbox Cloud / PaaS 的 Web UI。Fortinet 早在 2026 年 4 月就揭露 39813 與 39808,但實戰利用在 6 月被確認——這是「揭露到武器化」的時間壓縮再次上演的典型案例。

為什麼這值得你在 24 小時內動手、而不是排進下次 patch window?因為它免認證、已被實戰利用、且攻陷的是你資安架構的「裁判」。下面給你補丁 vs 緩解的對照、IOC,以及就算你不用 Fortinet 也該做的事。

技術細節:漏洞類型 + 攻擊路徑

三個漏洞分屬兩類經典弱點:路徑遍歷(CWE-22)與 OS 命令注入(CWE-78)。攻擊者不需要任何帳密,只要能連到 FortiSandbox 的管理介面,就能用一個構造過的請求把指令送進去執行。對 PHP/Nginx 後端的工程師而言,這是教科書級的提醒:任何把使用者輸入拼進檔案路徑或系統指令的地方,都是同一種破口。下面是「同類錯誤」在 PHP 上的危險寫法與正解:

// ❌ 危險:使用者輸入直接拼進路徑(路徑遍歷)
$file = '/var/data/' . $_GET['name'];
readfile($file); // ?name=../../etc/passwd
 
// ✅ 正解:basename + 白名單 + realpath 邊界檢查
$base = '/var/data/';
$path = realpath($base . basename($_GET['name']));
if ($path === false || !str_starts_with($path, $base)) {
    http_response_code(400); exit;
}
readfile($path);
 
// ❌ 危險:使用者輸入拼進系統指令(命令注入)
exec("convert {$_GET['f']} out.png");
// ✅ 正解:escapeshellarg 或改用原生函式庫
exec('convert ' . escapeshellarg($input) . ' out.png');

三類讀者的立刻行動

  • 系統管理員:立即升級 FortiSandbox 到 Fortinet advisory 指定的修補版本(離開 5.0.5 以下、4.4.8 以下、4.2 全線);在升級前,把 FortiSandbox 的管理/JRPC 介面從公網下架,只允許內網或 VPN 來源,並在防火牆封掉外部對其管理埠的存取。
  • 開發者:盤點自家系統所有「使用者輸入 → 檔案路徑」與「使用者輸入 → 系統指令」的位置,套上 basename + realpath 邊界檢查與 escapeshellarg;Nginx 層可加 location 規則擋掉含 ../ 的請求。
  • 接案商/顧問:今天就寄一封客戶通告——條列「你是否使用 FortiSandbox?受影響版本?是否暴露在公網?」三個是非題,附上升級連結。這封信本身就是一次看護服務的展示。

補丁 vs 緩解措施對照

情境 立即補丁 無法立即補丁時的緩解
FortiSandbox 暴露公網 升級到 advisory 指定版本 立刻把管理/JRPC 介面下架,限內網/VPN 來源
內網但多人可達 升級 防火牆 ACL 僅允許管理跳板機 IP
Cloud / PaaS 部署 確認供應商已套修補 啟用來源 IP 白名單、檢視存取日誌
無法停機升級 排定緊急維護窗口 WAF/IDS 阻擋含 ../ 與可疑命令字元的請求

IOC 與威脅情資

  • 留意 FortiSandbox JRPC API(管理埠)出現含 ../filedir 字串的異常 HTTP 請求。
  • 監看 FortiSandbox 主機是否突然外連未知 C2 IP、或產生非預期的 shell 子程序(process tree 中出現 sh -ccurlwget)。
  • 比對 Fortinet 官方 PSIRT advisory(FG-IR) 公告的受影響版本與修補版號。
  • 檢查管理介面存取日誌中,來自非預期國別/IP 的未認證請求。

不會告訴你的事

第一,廠商公告的重點是「升級」,但很多組織的 FortiSandbox 是被其他 Fortinet 產品自動依賴的,貿然升級可能影響整套聯動判決——你得先確認版本相容性,否則修了一個洞、斷了整套防護。第二,這三個洞之一的 exploit「疑似 AI 生成且有 bug」聽起來像好消息(攻擊不穩定),但反過來說,攻擊者修好那個 bug 只是時間問題,AI 正在把 exploit 開發從「數週」壓縮到「數天」——你的修補窗口比帳面上更短。

這代表的更大趨勢

資安設備本身正成為頭號攻擊目標:VPN 閘道、防火牆、沙箱——這些「守門人」因為高權限、常暴露在邊界、又難停機更新,反而是最甜的目標。當「揭露 → 武器化」被 AI 壓縮到數天,傳統「每月 patch window」的節奏已經跟不上,企業需要的是「24 小時應變窗口」與「資安設備本身也要納入零信任」的思維。

常見問題 FAQ

我們沒有用 FortiSandbox,這篇跟我有關嗎?

有。其一,攻擊手法(未認證路徑遍歷 + 命令注入)是通用的,你自家系統的任何「使用者輸入拼路徑/拼指令」都是同類破口。其二,這提醒所有人把「資安設備、管理介面」從公網下架——同樣的原則適用於你的 phpMyAdmin、後台、CI 介面。

FortiSandbox 升級會不會影響其他 Fortinet 設備的聯動?

有可能。FortiSandbox 提供威脅判決給其他產品,升級前務必查 Fortinet 相容性矩陣,並在維護窗口內操作。若無法立即升級,優先做網路層隔離(下架管理介面)作為緩解。

「exploit 是 AI 寫的而且有 bug」是不是代表風險不高?

不能這樣解讀。有 bug 只代表「目前這版攻擊不穩定」,攻擊者用 AI 迭代修正的速度極快。把它當成「你只剩很短的時間」的警告,而不是「可以慢慢來」的理由。

最關鍵的單一動作是什麼?

把 FortiSandbox 的管理/JRPC 介面從公網拿掉,只允許 VPN 或內網跳板機存取。即使你還沒排到升級,這個動作就能把「免認證、單一請求」的攻擊面大幅縮小。

我的觀點

主流會說「趕快打補丁就好」。我的判斷是:補丁只是最後一步,真正的病灶是「資安設備被放在公網、又用月度節奏更新」。當 exploit 用 AI 數天就能量產,「Patch Tuesday 心智模型」已經死了,能存活的是「資產清單 + 24 小時應變 + 管理介面預設不公開」的組織。對 ScriptWalker 的客戶看護機會:把「邊界設備與後台管理介面暴露面盤點」做成一個季度固定服務——用 Shodan/Censys 視角幫客戶看自己有哪些管理介面(FortiSandbox、phpMyAdmin、後台、CI)暴露在公網,列出來、關起來。這對沒有專職資安人力的中小企業,是一個高價值、可標準化、又能持續收費的看護項目。

資料來源

分享: