CVE-2026-35616 is a critical improper access control vulnerability in Fortinet FortiClient EMS affecting versions 7.4.5 through 7.4.6. The flaw is in the product's API access control and allows a remote, unauthenticated attacker to bypass API authentication by sending specially crafted requests. Successful exploitation can result in unauthorized execution of code or operating system commands on the EMS server. The issue has been reported as actively exploited in the wild and has been associated with post-compromise abuse of EMS administrative functionality to alter endpoint management and VPN-related settings for malware delivery.
Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.
What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.
What an attacker gets, and what they’ve been doing with it.
If you can’t patch tonight, do this now.
Patch, then assume compromise.
2 valid exploits after Mallory filtered fakes, detection scripts, and README-only repos (8 hidden).
This repository is a small standalone Python exploit for CVE-2026-35616 targeting a Fortinet API certificate-chain verification bypass. The repo contains three files: a README with usage guidance, one executable exploit script (exploit.py), and a requirements file. The exploit is not framework-based. Core capability: the script attempts to bypass client-certificate based access controls on Fortinet API endpoints by discovering acceptable CA/Common Names, generating a forged self-signed X.509 certificate with a candidate CN, and sending requests that spoof upstream TLS-authentication headers. It uses the headers X-SSL-CLIENT-VERIFY: SUCCESS and X-SSL-CLIENT-CERT containing a URL-encoded PEM certificate. If the target trusts these headers improperly, the script can access protected API routes. Operational flow: it builds a target base URL from command-line arguments (default 172.16.50.51:443), optionally enumerates acceptable client certificate CA names via openssl s_client, tests candidate CNs against /api/v1/system/capabilities, selects a working CN when HTTP/retval indicate success, then probes several additional API endpoints. It stores results in a JSON file under results/ and prints equivalent curl commands for manual verification. Notable targeted endpoints include /api/v1/system/capabilities, /api/v1/system/version, /api/v1/settings/server/public_address, /api/v1/fabric_device_auth/fortigate/init, and /api/v1/fortigate/info. The exploit is operational rather than a simple detector because it actively forges a certificate, performs authenticated bypass attempts, and retrieves protected API data. The payload is basic and hardcoded around header/certificate spoofing rather than a customizable post-exploitation framework.
This repository is a small standalone Python PoC for CVE-2026-35616 affecting Fortinet FortiClient EMS. It contains only two files: a README with usage/affected-version notes and one executable script, cve_2026_35616.py, which is the clear entry point. The script is not part of a larger exploit framework. The exploit targets a pre-authentication bypass in certificate-based authentication logic. Its core technique is to generate a self-signed X.509 certificate on the fly, URL-encode it, and send it in the X-SSL-CLIENT-CERT header while forcing X-SSL-CLIENT-VERIFY: SUCCESS. The script assumes the server-side component trusts these headers directly instead of validating the certificate cryptographically. Operational flow: (1) build the HTTPS base URL from target and port; (2) discover likely acceptable certificate common names (CNs) by invoking openssl s_client to inspect acceptable client CA names, by downloading certificates from /api/v1/ztna_certificates/download and parsing their CNs, and by reading a Serial Number response header from the target root page; (3) if discovery fails, fall back to hardcoded CN guesses (support, fortinet-ca2); (4) iterate through candidate CNs and attempt the bypass against /api/v1/system/capabilities; (5) once a working CN is found, probe several protected API endpoints with GET/POST/PATCH requests; and (6) print equivalent curl commands for manual reuse. Main exploit capabilities include unauthorized retrieval of system capabilities, version information, and public address settings, plus interaction with FortiGate-related API endpoints. The script is more than a detector because it actively performs the bypass and accesses protected resources, but it does not deploy a post-exploitation shell or arbitrary command payload. As written, it is an operational PoC for unauthorized API access against vulnerable FortiClient EMS instances.
Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.
Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.
319 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
Critical unauthenticated remote code/command execution vulnerability in FortiClient EMS 7.4.5–7.4.6.
A specific vulnerability listed among the report's analyzed CVEs, but without further detail in the content.
An insufficient access control vulnerability in Fortinet FortiClientEMS that allows unauthenticated remote attack.
A critical vulnerability in Fortinet FortiClient EMS that was reportedly exploited to deploy EKZ Stealer for credential theft and exfiltration.
Query your assets running an affected version, and investigate the blast radius.
Every observed campaign linking this CVE to a named adversary.
Malware families riding this exploit, with evidence and IOCs.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Cross-references every affected SKU, including bundled OEM variants.
Community discussion across Reddit, Mastodon, and other social sources.