Fortinet FortiMail CVE-2026-104286: unauthenticated file write through the IBE endpoint, exploited as a zero-day
Unauthenticated attackers write files on FortiMail through the /ibe endpoint; exploited before a patch. Upgrade to 8.0.2, 7.6.7 or 7.4.9, or turn IBE off.
- Published
- Updated
- Ecosystem
- Network edgeEnterprise software
- Fixed in
- FortiMail 8.0.2, 7.6.7, 7.4.9; 7.2.10 announced but not yet released; 7.0 must migrate
- Exploitation
- Yes. Fortinet says exploited in the wild; in CISA KEV since 1 October 2026
Live scores
CVE-2026-104286- EPSS
- 0.046
some chance of attack soon - VEDAS
- 0.747
some exploit evidence - On CISA KEV
- Yes, since 2026-10-01
- Detection rule
- None yet
Thin horizontal line: the “likely” (EPSS 0.10) or “strong” (VEDAS 0.90) threshold. Shaded “no data” areas are periods when cve-scores did not publish.
What happened
On 1 October 2026, Fortinet published FG-IR-26-175 for CVE-2026-104286, rated CVSS 9.8. A path traversal combined with a NULL-byte handling flaw lets an unauthenticated attacker write arbitrary files on the FortiMail system with crafted HTTP or HTTPS requests. Fortinet lists the impact as execution of unauthorized code or commands, and marks it “Known Exploited: Yes” (Fortinet). Fortinet’s own Product Security team found it. Fortinet’s workaround and WAF rule both point at IBE (Identity Based Encryption), the encryption feature served at /ibe.
CISA added it to KEV on 1 October, with a due date of 4 October (CISA KEV). Fortinet published no attribution or victim numbers.
The indicators Fortinet published show what an intrusion looked like (Fortinet):
- A root cron job running
/bin/sh -c 'O=/migadmin ...'. - The
adminuser adding a remote archive account namedarchive234from the CLI. It sends archived mail every hour to79.141.169.187, in the remote directory/uploads. That is a way to copy the organisation’s email off the appliance. - IBE decrypter errors reporting
Invalid Base64 Encoding at pos 0. Character=0x2a, followed by a failed login for an internal user*@<your domain>.
Fortinet updated the advisory on 5 and 7 October. FortiMail Cloud was fixed on 5 October by moving all instances to 7.6.7 or 8.0.2, and cloud customers need do nothing.
Am I affected?
| Version | Affected | Fix |
|---|---|---|
| FortiMail 8.0 | 8.0.0 to 8.0.1 | 8.0.2 or later |
| FortiMail 7.6 | 7.6.0 to 7.6.6 | 7.6.7 or later |
| FortiMail 7.4 | 7.4.0 to 7.4.8 | 7.4.9 or later |
| FortiMail 7.2 | 7.2.0 to 7.2.9 | upcoming 7.2.10 |
| FortiMail 7.0 | all versions | migrate to a fixed release |
Source: Fortinet. As of 2 November 2026, Fortinet’s documentation site still lists 7.2.9 as the newest 7.2 release (Fortinet docs).
Check the running version from the FortiMail CLI:
get system statusThen check whether IBE is enabled (GUI: Encryption, then IBE, then IBE Service) and whether webmail and /ibe are reachable from the internet.
Look for the published indicators. In the FortiMail logs, search for the following. Also review every archive account in the configuration and confirm each one is yours.
- Event logs with
ui=cronrunning/bin/sh -c 'O=/migadmin. - Config logs containing
Added 'archive234' to 'archive account', or any archive account withdestination[remote]that you did not set up. - Encryption logs containing
Invalid Base64 Encoding at pos 0. Character=0x2a. - Traffic to or from
79.141.169.187or45.129.0.192.
What to do now
- Upgrade to 8.0.2, 7.6.7 or 7.4.9 or later (Fortinet).
- On 7.0 and 7.2, or until you can upgrade, disable IBE. In the GUI, set Encryption, IBE, IBE Service to off. In the CLI:
config system encryption ibe
set status disable
end- If you need IBE running, Fortinet’s alternatives are to block internet access to the webmail interface, or limit it to trusted private networks, or, with a WAF in front, block POST requests to
/ibethat contain../(Fortinet). - Remove any archive account you did not create and check where it was sending mail. An account like
archive234means mail was being copied out. Treat that as an email data breach for the period it existed. - If you find any indicator, treat the appliance as compromised. The attacker had root cron and admin CLI access. Rebuild from a clean firmware image and a reviewed configuration rather than deleting the cron entry. Review admin accounts, and change the credentials of accounts the logs show were used.