The malware detonation chamber left its viewing window unlocked, and the door faces the hallway
CVE-2026-59835 is an Exposure of Resource to Wrong Sphere flaw (CWE-668) in FortiSandbox 5.0.0–5.0.2 and 4.4.3–4.4.8. The scanning VMs that FortiSandbox uses to detonate suspicious files expose a VNC server that is reachable from the appliance's network-facing interface without authentication. An attacker who can talk to the appliance over the network can attach to the VNC console of the detonation VMs, read what's being analyzed, and interact with the guest desktop. FortiSandbox PaaS deployments are not impacted; the flaw is specific to on-prem appliances including FSA-500G and FSA-1500G. Fortinet published FG-IR-26-145 on 2026-07-14.
Fortinet rates this HIGH (8.6). Our read: 7.7 is the more defensible CVSS (matches the public write-ups), but the severity bucket is right. FortiSandbox is a security-plane appliance that ingests live malware samples — anyone reading the sandbox's screen is reading detections in flight, potentially harvesting attacker TTPs, unreleased IOCs, or sensitive files submitted for analysis. The 'wrong sphere' here is the *malware analysis sphere* leaking into the corporate LAN. HIGH is fair, not inflated.
4 steps from start to impact.
Reach the FortiSandbox management/data plane
- Network path to FortiSandbox appliance interface
- Affected version (5.0.0–5.0.2 or 4.4.3–4.4.8)
- FortiSandbox is rarely internet-facing
- Most enterprises segregate security tooling onto isolated VLANs
Probe TCP ports where VNC is bound (typ. 5900–590x)
nmap -sV -p 5900-5910 <fsa-ip> the attacker enumerates listening VNC endpoints on the appliance. Because the flaw is CWE-668 (resource exposed to wrong sphere) the VNC daemon meant only for internal loopback usage is bound to a network-facing interface.- Ability to send TCP SYN to appliance ports 5900+
- No ACL blocking VNC ports on upstream firewall
- Even light egress/east-west filtering usually kills this — VNC ports aren't in standard allowlists
- FortiGate default rules on management interfaces block non-mgmt ports
RFB 003.00x.Attach with a VNC client — no credentials required
vncviewer <fsa-ip>::5900 or metasploit auxiliary/scanner/vnc/vnc_none_auth the attacker completes the RFB handshake. Because the exposed VNC has no auth configured (that's the vendor's design assumption for the *internal* sphere), the attacker gets a live console into the detonation VM.- Standards-compliant VNC client
- Reachable session from step 2
- None once ports are reachable — this is the whole point of the bug
Harvest analysis artefacts and pivot
- Established VNC session
- Sandbox VM currently detonating a job
- Interaction is limited to guest VM — no direct pivot to FortiSandbox host OS
- Guests are ephemeral and revert after each job
The supporting signals.
| In-the-wild exploitation | None reported as of 2026-07-15 (advisory published *yesterday*) |
|---|---|
| Public PoC | None published yet; trigger is trivial (vncviewer <ip>::5900) so weaponization is essentially instant once the port binding is confirmed |
| EPSS | Not yet scored — advisory <24h old at time of write; expect <1% initial percentile that will climb over 30 days |
| KEV | Not listed |
| CVSS 3.1 vector | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L — network, no auth, no UI. Confidentiality is the driver. |
| Affected versions | FortiSandbox 5.0.0–5.0.2 and 4.4.3–4.4.8. 5.2.x also referenced in some write-ups — check FG-IR-26-145 for authoritative table. |
| Fixed versions | FortiSandbox 5.0.3+ and 4.4.9+ per Fortinet PSIRT. PaaS not affected. |
| Exposure data | Censys/Shodan surface for public FortiSandbox management is in the low hundreds globally; primary exposure is internal to enterprise security VLANs |
| Disclosure | 2026-07-14, Fortinet PSIRT advisory FG-IR-26-145 |
| Credited researcher | Internal Fortinet PSIRT discovery per advisory |
noisgate verdict.
Verdict held at HIGH because the affected component is a security-plane appliance handling live malware and sensitive IR artefacts — that role multiplier prevents downgrade even though the appliance is rarely internet-facing. The single most decisive factor is deployment role: a sandbox that leaks its detonation console to any reachable IP is leaking your active investigations.
Why this verdict
- Unauthenticated + network-reachable + no UI: the trigger is a stock VNC client, no exploit development required.
- Role multiplier — FortiSandbox is a security-analysis appliance: the chain succeeds against 100% of on-prem installs on affected firmware; blast radius is disclosure of every detonation job (malware samples, submitted files, IOCs, IR context). This is the canonical high-value-role case — floor is HIGH.
- Friction downward pressure — not internet-facing: typical deployments place FortiSandbox on internal security VLANs. That limits the attacker population to *post-initial-access* actors, which is why we don't push to CRITICAL.
- No auth, no crypto: VNC RFB with
Noneauth means any attacker with a TCP path reads the screen — there is no interim mitigation short of an ACL.
Why not higher?
Not CRITICAL because FortiSandbox is not typically exposed to the internet, so the attacker must already have a foothold on the security or management segment. Impact is scoped to intelligence disclosure and interaction with ephemeral guest VMs — not appliance root, not fleet takeover, not identity compromise. No active exploitation observed.
Why not lower?
Not MEDIUM because the deployment role is a security-plane appliance handling live malware and IR data, the flaw needs no credentials once reachable, and Fortinet's own severity is 8.6. Any attacker who reaches the security VLAN — a common post-phish reality — gets a live window into detections.
What to do — in priority order.
- ACL FortiSandbox management/data interfaces to a named admin bastion — Block TCP 5900–5910 (and ideally everything except required FortiGate/FortiAnalyzer sync ports) from all sources except the SOC bastion. Push via upstream FortiGate policy or L3 switch ACL within 30 days (noisgate HIGH mitigation SLA).
- Upgrade to FortiSandbox 5.0.3+ or 4.4.9+ — Apply the vendor fix from FG-IR-26-145. Schedule within the 180-day noisgate HIGH remediation SLA; sooner if your sandbox handles regulated data or your security VLAN is not tightly segmented.
- Alert on inbound VNC handshake to any security appliance — Add a Suricata/Zeek rule for
RFB 003.byte pattern destined to FortiSandbox IPs. High signal, near-zero false positive on a security VLAN. - Audit which analysts submit sensitive files — Assume anything detonated in the last 90 days on an unpatched appliance could have been observed if an attacker had internal access. Rotate any credentials that may have appeared in submitted samples.
- FortiSandbox admin password rotation — the exposed VNC has no authentication at all; rotating passwords changes nothing.
- IPS signatures on FortiGate — VNC RFB is a legitimate protocol; without ACLs the traffic looks like admin activity.
- Enabling MFA on FortiSandbox web UI — different service, different port, unrelated to the bug.
Crowdsourced verification payload.
Run on an *auditor workstation* on the same L3 segment as the FortiSandbox appliance. Invoke as ./check-cve-2026-59835.sh <fsa-ip>; requires nmap and outbound TCP to ports 5900–5910. No credentials needed — this only probes the exposed VNC binding.
#!/usr/bin/env bash
# noisgate check for CVE-2026-59835 (FortiSandbox VNC exposure)
# Usage: ./check-cve-2026-59835.sh <fortisandbox-ip>
set -u
TARGET="${1:-}"
if [[ -z "$TARGET" ]]; then
echo "UNKNOWN: usage: $0 <fortisandbox-ip>"; exit 2
fi
if ! command -v nmap >/dev/null 2>&1; then
echo "UNKNOWN: nmap not installed"; exit 2
fi
# Probe the VNC port range used by FortiSandbox scanning VMs
SCAN=$(nmap -Pn -sT -p 5900-5910 --open -sV "$TARGET" 2>/dev/null)
OPEN=$(echo "$SCAN" | awk '/\/tcp[[:space:]]+open/ {print $1}')
if [[ -z "$OPEN" ]]; then
echo "PATCHED (or ACL'd): no VNC ports reachable on $TARGET"
exit 0
fi
# Attempt an RFB handshake read — vulnerable appliance responds with 'RFB 003.'
for P in $OPEN; do
PORT=${P%/tcp}
BANNER=$(timeout 3 bash -c "exec 3<>/dev/tcp/$TARGET/$PORT; head -c 12 <&3" 2>/dev/null)
if [[ "$BANNER" == RFB* ]]; then
echo "VULNERABLE: $TARGET:$PORT exposes VNC ($BANNER) — CVE-2026-59835"
exit 1
fi
done
echo "UNKNOWN: ports open on $TARGET but no RFB banner returned — investigate manually"
exit 2
If you remember one thing.
Sources
- Fortinet PSIRT FG-IR-26-145 (advisory)
- CyberPress — FortiSandbox VNC server exposure
- CybersecurityNews — FortiSandbox VNC vuln coverage
- Greenbone — Fortinet RCE and FortiSandbox 2026 flaws
- CCB Belgium — Fortinet multi-product advisory
- BleepingComputer — Fortinet FortiSandbox/FortiAuthenticator flaws
- CWE-668 — Exposure of Resource to Wrong Sphere
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.