- Lỗi OS command injection pre-auth trong FortiSandbox 4.4.0–4.4.8 cho phép bất kỳ ai gửi 1 request GET duy nhất để chiếm root.
- Param jid trên endpoint tracer-behavior đi thẳng vào shell.
- PoC đã public trên GitHub.
TL;DR
CVE-2026-39808 là lỗi OS command injection không cần auth trên Fortinet FortiSandbox, CVSS 9.1. Endpoint /fortisandbox/job-detail/tracer-behavior, param jid, nối thẳng vào shell. Một curl --get duy nhất với payload |cmd| đủ để RCE as root. Affect 4.4.0→4.4.8, patch 4.4.9+. PoC public trên GitHub bởi Samuel de Lucas Maroto (KPMG Spain). Upgrade ngay — PoC đã out, mass scan là vấn đề thời gian.
What's new
Ngày 14/04/2026 (Patch Tuesday), Fortinet publish advisory FG-IR-26-100 cho FortiSandbox — appliance sandbox dùng để detonate file nghi ngờ trong stack phòng thủ của doanh nghiệp. Kèm đó là FG-IR-26-112 (CVE-2026-39813, path traversal → auth bypass). Ngày hôm sau, researcher Samuel de Lucas Maroto (KPMG Spain) — người đã responsibly disclose lỗi từ tháng 11/2025 — push PoC lên GitHub.
PoC không phải 100 dòng exploit chain phức tạp. Nó là một dòng curl.
Why it matters
FortiSandbox không phải endpoint vớ vẩn. Nó là trung tâm phân tích malware của tổ chức — chỗ mà FortiGate, FortiMail, FortiClient gửi file nghi ngờ tới để detonate. Compromise FortiSandbox = compromise oracle quyết định file nào là malware. Kẻ tấn công có thể:
- Inject verdict giả — đánh dấu malware là clean, để payload lọt qua mail gateway
- Exfil malware samples đang phân tích — lấy luôn threat intel của nạn nhân
- Lateral movement: sandbox thường có visibility rộng vào internal traffic
- Persistence cực khó detect — ai soi security appliance của chính mình?
Và vì exploit là pre-auth, root, single request, nó là giấc mơ của ransomware affiliate và APT operator. Lịch sử các CVE Fortinet (FortiOS, FortiManager) cho thấy từ PoC đến mass exploitation thường chỉ mất vài tuần.
Technical facts
| Property | Value |
|---|---|
| CVE ID | CVE-2026-39808 |
| CVSS v3.1 | 9.1 (Critical) |
| Class | CWE-78 OS Command Injection |
| Auth required | None (pre-auth) |
| Privilege on success | root |
| Vector | Network / HTTP GET |
| Affected | FortiSandbox 4.4.0 → 4.4.8 |
| Patched | 4.4.9+ |
| Not affected | FortiSandbox 5.0.x, FortiSandbox PaaS |
| Endpoint | /fortisandbox/job-detail/tracer-behavior |
| Parameter | jid (GET) |
| Advisory | FG-IR-26-100 |
PoC mẫu từ Samuel de Lucas Maroto (bản rút gọn):
curl -s -k --get "http://HOST/fortisandbox/job-detail/tracer-behavior" \
--data-urlencode "jid=|(id > /web/ng/out.txt)|"Cơ chế: backend lấy jid ghép vào một shell command (có thể là lệnh đọc trace log của job), không escape, không whitelist, không parameter binding. Payload |(id > /web/ng/out.txt)| là classic pipe-injection — pipe đóng lệnh gốc, chạy id, redirect output vào webroot để attacker đọc qua HTTP.
Comparison: 39808 vs 39813
| Property | CVE-2026-39808 | CVE-2026-39813 |
|---|---|---|
| Class | OS Command Injection | Path Traversal (JRPC) |
| Impact | Unauth RCE (root) | Auth bypass |
| CVSS | 9.1 | 9.1 |
| Affected | 4.4.0–4.4.8 | 4.4.0–4.4.8, 5.0.0–5.0.5 |
| Discoverer | Samuel de Lucas Maroto (KPMG) | Loic Pantano (Fortinet PSIRT) |
39808 là one-shot RCE. 39813 cần chain thêm post-auth bug để đạt code execution, nhưng lại affect cả 5.0 — nguy hiểm dài hạn hơn cho fleet đã upgrade sớm.
Who's at risk
Bất kỳ tổ chức nào deploy FortiSandbox 4.4.x on-prem và lỡ expose management/analysis interface ra internet (cố ý hoặc vô ý qua misconfig). Shodan query cho banner FortiSandbox thường trả về vài nghìn host public. MSSP và enterprise với nhiều site là miếng mồi đặc biệt hấp dẫn vì 1 sandbox có thể phục vụ hàng chục FortiGate — compromise 1 box = visibility vào file traffic của toàn bộ fleet downstream.
Các vertical high-value cần ưu tiên kiểm: finance (FortiSandbox là phần bắt buộc trong nhiều compliance stack), healthcare, government, SOC/MDR cung cấp bởi MSSP. Nếu tổ chức bạn từng mua FortiSandbox qua gói Fortinet Security Fabric kèm FortiGate, check phiên bản ngay — nhiều deployment bị quên vì nó chạy "background" sau khi setup ban đầu.
Detection
Grep access log (hoặc upstream proxy/WAF log) tìm request tới path /fortisandbox/job-detail/tracer-behavior với param jid chứa |, `, $(, ;, &&. Bất kỳ request nào từ IP external + param jid có ký tự non-alphanumeric là IOC đủ mạnh để alert. Kiểm file lạ trong /web/ng/ (webroot) — PoC public dùng đường này để exfil output.
Limitations & mitigation
- Chưa phát hiện exploit in-the-wild tại thời điểm disclosure — nhưng PoC public, expect scan tăng vọt.
- Không có workaround chính thức ngoài upgrade.
- Mitigation tạm: chặn truy cập management interface từ internet, ACL whitelist IP trusted, bật WAF chặn request chứa ký tự
|,&,;,`ở paramjid. - 5.0.x không affect CVE-2026-39808 — nhưng vẫn cần patch 39813 (upgrade 5.0.6+).
- FortiSandbox PaaS đã được Fortinet patch server-side.
What's next
Kịch bản 2-4 tuần tới khá dễ đoán: scan hàng loạt từ Shodan/Censys → các red team và ransomware affiliate sẽ nhặt exploit vào toolkit → CISA có thể add vào KEV nếu wild exploit xuất hiện → Fortinet ra emergency advisory lần hai. Nếu bạn có FortiSandbox 4.4.x, cửa sổ vá là bây giờ — upgrade 4.4.9 hoặc cắt internet access management plane. Đừng là data point đầu tiên trong báo cáo incident tháng sau.
Nguồn: Fortinet PSIRT FG-IR-26-100, PoC GitHub, Help Net Security, The Register.