Daily Top · Vulnerabilities / Email

CISA put FortiMail on KEV. The fixed builds are still marked upcoming.

CVE-2026-104286 is unauthenticated arbitrary file write on FortiMail. There is no firmware to install. CISA due date is 4 October.

RWP Ventures · 2026-10-02 · event 2026-10-01 · 13 min read · priority 9.2

Bottom line up front

CONFIRMED CISA added CVE-2026-104286 to the Known Exploited Vulnerabilities catalog on 1 October 2026. Catalog version 2026.10.01 (released 1 October 19:54 UTC, count 1731). One new row since yesterday’s Catalyst SD-WAN Manager Daily Top, which still saw freeze 2026.09.30 / 1730. Federal due date is 4 October 2026. Ransomware-campaign use is Unknown. Forensic triage is Yes.

The product is Fortinet FortiMail. The bug is unauthenticated arbitrary file write on the underlying system through crafted HTTP or HTTPS. Fortinet’s CNA score is 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (CWE-22 path traversal plus CWE-158 NULL-byte handling). Component is the GUI. Attack type is unauthenticated. Fortinet’s impact line is execute unauthorized code or commands. Virtual patch: No.

Do not collapse four facts.

  1. There is no firmware to install on 8.0, 7.6, or 7.4. Advisory FG-IR-26-175 lists 8.0.2, 7.6.7, and 7.4.9 as upcoming. 7.2.0 through 7.2.9 must migrate to the 7.4 branch or above — into a train that is itself still waiting on 7.4.9. A change ticket that says “upgrade to the fixed release” is currently a wait, not a close.
  2. The workaround is not the patch. Fortinet’s two published delays: disable Identity-Based Encryption (config system encryption ibe / set status disable) or pull the management interface off the internet / restrict it to a trusted private network. Neither evicts an attacker who already wrote files. CISA’s forensic-triage language is Yes. Hunt, then constrain, then wait for the ISO.
  3. A scanner CPE can lie about who is in. The Fortinet table says 8.0.0–8.0.1, 7.6.0–7.6.6, 7.4.0–7.4.8, 7.2.0–7.2.9. NVD’s CNA product list, retrieved 2 October, still showed 7.6 through 7.6.5, 7.4 through 7.4.6, and a 7.0.0–7.0.9 range the HTML table does not name. Inventory against FG-IR-26-175, not against a cached CPE. Treat 7.0 as UNKNOWN pending Fortinet, not as cleared.
  4. Yesterday’s SD-WAN clock did not pause. Catalog 2026.09.30 added Cisco CVE-2026-76504 (due 3 October). Catalog 2026.09.29 added Apple CVE-2026-86950 (due today, 2 October). NetScaler CVE-2026-88771 / 88772 were due 30 September. Those tickets stay open. The new operational ticket is the mail gateway.
FactRecord
CVECVE-2026-104286 (CWE-22, CWE-158)
ProductFortinet FortiMail
Vendor scoreCVSS 3.1 9.8
KEV catalog2026.10.01, count 1731
Due4 October 2026
Forensic triageYes
Virtual patchNo
Fixed builds 8.0.2 / 7.6.7 / 7.4.9Upcoming (1–2 October retrieval)
Named actorNone
Ransomware useUnknown (KEV field)
OT / process impactNone claimed

What happened

Thursday 1 October, Fortinet published FG-IR-26-175. Same day, CISA put the CVE on KEV.

Fortinet’s sentence: path traversal plus improper neutralization of a NULL byte or NULL character may allow an unauthenticated attacker to write arbitrary files on the underlying system via crafted HTTP or HTTPS. The advisory is explicit that this has been reported to be exploited in the wild. Known Exploited: Yes. Discovered internally by Gwendal Guégniaud of Fortinet Product Security. Fortinet told BleepingComputer it is coordinating the content with government organizations, including CISA. The advisory does not name a customer, a count, a first-seen date, or a cluster.

The published workarounds:


config system encryption ibe
set status disable
end

Alternatively: disable internet access to the FortiMail management interface, or limit it to a trusted private network.

Fortinet published compromise indicators. They are hunt artifacts, not a public exploit.

Added or modified files (hashes as Fortinet printed them):

PathStatusSHA-256
/data/lib/liblog.soAdded8015f34dc84922b03688399d7f9fe7a00361789f7e420c7e2a2cdb23e75cef84
/bin/smitModified77324ac428bde86d351fc5fc06f6d64a6bfe737dfb2743df1d4c5ac2418a5b6a
/data/bin/webconsoleAdded7a6cea9f5c9e2e9994d4e3c4da73f86cf5acd05ea5d312c066c9d1dafd69ee38
/data/bin/mailserviceAdded4000276a150a165d3c2537d1e19fb393c4de8333076a16655e28059cae82157b
/data/etc/httpd.confModified703e97c64e61e41dc3aaba580d82bb2aa7b6a11b54ee6fb467ed5d5a3bffdef5
/data/etc/ld.so.preloadAdded8953ec7960b09f544a880b072ad4e6cfda7a8303f486251d3478dcfdfbac23b6
/data/migadmin.tar.gzModifiedd6fe51c22b91776f4c961ea58bcac5917f15d560a619d7ce726d3d51795609d3

IPs in the advisory: 79.141.169.187, 45.129.0.192. Do not treat those two as the campaign. They are the addresses Fortinet associated with the observed activity.

Log leads Fortinet printed:

A match is a lead. Fortinet did not say every IBE Base64 error is exploitation.

Why it matters

FortiMail sits on inbound and outbound mail: spam, malware, encryption, journaling, and often the last appliance that sees a message before Exchange, Microsoft 365, or Google. Unauthenticated file write on that box is not “a web CVE on a GUI.” It is a path to the mail plane — stored messages, archive accounts, credentials the gateway holds, and any trust the rest of the estate places in that host.

Three operational lies are now in the ticket.

  1. “We will take the fixed build in the next window.” Incomplete. On 1–2 October the fixed builds were upcoming. BOD 26-04 still wants FCEB to check whether the actor was on the box. An ISO that does not exist cannot close a KEV row that is due 4 October.
  2. “Management is not internet-facing, so we can wait.” Reachability of the GUI is the exploit precondition Fortinet described. If that interface is reachable from an untrusted network, the file-write applies. SMTP exposure is a separate question; do not use “the MX is public, the GUI is not” as a substitute for actually verifying the management ACL. The IBE disable is the other published delay — it is an operational trade, not a firmware bump.
  3. “Arbitrary file write is not RCE.” Fortinet’s own impact field is execute unauthorized code or commands. The IoC set includes /data/etc/ld.so.preload (dynamic-linker hijack), added binaries under /data/bin/, a modified httpd.conf, and an archive account pointed at a remote IP. That is persistence and staging language. It is not a claim that every unpatched FortiMail already has those files.

A FortiMail that also journals industrial or safety-system mail is still an IT mail-gateway compromise until evidence shows process impact. None is in this record.

Who / what is affected

AssetWhat to assumeStatus
FortiMail 8.0.0–8.0.1In; 8.0.2 upcomingCONFIRMED vendor table
FortiMail 7.6.0–7.6.6In; 7.6.7 upcomingCONFIRMED vendor table
FortiMail 7.4.0–7.4.8In; 7.4.9 upcomingCONFIRMED vendor table
FortiMail 7.2.0–7.2.9In; migrate to 7.4 or aboveCONFIRMED vendor table
FortiMail 7.0.0–7.0.9Named in NVD/CVE product list, not in the FG-IR HTML tableUNKNOWN pending Fortinet
7.4.7 / 7.4.8 or 7.6.6 (inside advisory, outside some CPE cuts)In, if the advisory table is the source of truthCONFIRMED by advisory vs CPE split
Virtual patch / IPS signature from FortinetNone publishedCONFIRMED vendor (“Virtual Patch: No”)
Named victimsNone in the advisoryUNKNOWN
Named actorNoneUNKNOWN
OT / ICS / processNot claimedNo evidence
CISA ransomware fieldUnknownCONFIRMED catalog

FortiGate, FortiOS SSL-VPN, FortiVoice, and FortiClient EMS are not this CVE. Do not collapse last year’s FortiVoice stack overflow (CVE-2025-32756) or this year’s FortiOS / EMS KEVs onto CVE-2026-104286.

Technical context

RWP is not reproducing request paths, NULL-byte encodings, or write locations. Fortinet’s published defender cut is enough: the GUI mishandles a pathname and a NULL; an unauthenticated HTTP or HTTPS request writes a file on the appliance.

What to hunt, from Fortinet’s published guidance — files, configs, and logs, not an exploit path:

ATT&CK mapping for the ticket, not a kill chain we ran:

TechniqueIDWhy it is on the ticket
Exploit Public-Facing ApplicationT1190Pre-auth HTTP/HTTPS to the GUI
Hijack Execution Flow: Dynamic Linker HijackingT1574.006/data/etc/ld.so.preload in the vendor IoC set
Server Software ComponentT1505Added webconsole / mailservice binaries — assessed, not independently classified
Archive Collected DataT1560archive234 remote archive in the vendor log example
Exfiltration Over Alternative ProtocolT1048Remote archive IP / /uploads in the same log line
Impair DefensesT1562Modified httpd.conf is in the IoC set — not observed by RWP

No public proof-of-concept is in this assessment. Feedly’s 1 October note said analyzed URLs were non-exploitable; that is not evidence the in-the-wild write did not happen. Fortinet and CISA already said it did.

Threat / exploitation status

ClaimStatusSource
CVE-2026-104286 exploited in the wildCONFIRMEDFortinet PSIRT “Known Exploited: Yes”; CISA KEV 1 Oct
Unauthenticated arbitrary file write via HTTP/HTTPSCONFIRMEDFG-IR-26-175
On KEV, due 4 Oct, ransomware Unknown, forensic-triage language presentCONFIRMEDCatalog 2026.10.01
Fixed 8.0.2 / 7.6.7 / 7.4.9 available to installFALSE as of 2 Oct retrievalVendor table: upcoming
Virtual patch availableFALSEVendor: No
Workaround: disable IBE or restrict management GUICONFIRMEDVendor
Victim count, start date, named actorUNKNOWNNone in the advisory
Ransomware use of this CVEUNKNOWNKEV field Unknown
OT / process impactUNKNOWN / none claimedNo evidence
Apple CVE-2026-86950 due 2 OctCONFIRMEDCatalog 2026.09.29 — not this story
Cisco CVE-2026-76504 due 3 OctCONFIRMEDCatalog; [yesterday’s hunt](/posts/2026-10-01-cisco-sdwan-manager-cve-2026-76504-kev/)

Confidence on the vulnerability, the KEV clock, the “upcoming” floors, and the no-virtual-patch sentence: high. Confidence on actor, victim count, and how far the file write was taken past persistence: low. Confidence that every FortiMail with IBE enabled is already compromised: low — reachability of the GUI is the precondition Fortinet described.

What defenders should do

  1. Inventory every FortiMail — physical, VM, HA peer, lab, DR, hosted. Record the running version against FG-IR-26-175, not against a scanner CPE that still stops at 7.4.6 / 7.6.5. If you run 7.0, ask Fortinet; do not write “not in scope” from NVD silence or from NVD inclusion alone.
  2. If the management GUI is reachable from an untrusted network, treat that as the exploit condition. Pull it behind a jump host / management subnet today. That is workaround two. It does not replace hunting.
  3. Decide the IBE trade explicitly. If the estate does not need Identity-Based Encryption, disable it with the published CLI. If it does, do not disable it as a silent “patch.” Constrain the GUI and hunt; document the residual.
  4. Preserve, then hunt, then constrain. Snapshot configs and logs off-box before you reboot or image. Check the seven paths and hashes. Check archive-account config. Check ld.so.preload. Check admin CLI from (null). BOD 26-04: a later ISO can destroy the evidence. Open a Fortinet support case with CVE-2026-104286 / FG-IR-26-175 in the title if the files or archive account are ugly.
  5. If you find the IoCs: isolate the gateway, freeze mail-flow changes, rotate. Admin and operator passwords, API tokens, LDAP/SMTP credentials the box stores, archive-account secrets, and any trust downstream mail systems placed in that host. Do not assume a clean GUI means a clean /data. Rebuild from known-good firmware when Fortinet ships it; do not “clean” ld.so.preload and return the box to MX duty.
  6. When 8.0.2 / 7.6.7 / 7.4.9 actually exist, install them. Until then the KEV row is a mitigation-and-triage clock, not a patch clock. 7.2 does not get a 7.2.10 in this bulletin; the answer is a branch move into 7.4, which is still waiting on 7.4.9.
  7. Keep the rest of this window on the board. Apple CVE-2026-86950 is KEV, due today, 2 October. Cisco SD-WAN Manager CVE-2026-76504 is KEV, due tomorrow, 3 October; [yesterday’s assessment](/posts/2026-10-01-cisco-sdwan-manager-cve-2026-76504-kev/) still applies. NetScaler 88771/88772 were due 30 September. The mail gateway is today’s interrupt; those clocks did not pause.

RWP assessment

Score 9.2.

Highest-leverage development since yesterday’s SD-WAN hunt is a new KEV row on the box that inspects mail: unauthenticated file write, no virtual patch, no firmware, forensic triage Yes, due 4 October, and IoCs that already look like persistence (ld.so.preload, added binaries, remote archive). Evidence quality is high: Fortinet PSIRT primary, CISA JSON, NVD/CVE, BleepingComputer corroboration of the CISA coordination statement.

It outranks a second day on Cisco CVE-2026-76504 because yesterday already assessed that API bypass; the due date is tomorrow, not a new exploitation picture, and Cisco at least published floors. It outranks Apple CVE-2026-86950 because that CoreGraphics row has been on KEV since 29 September; today’s due date is a clock, not a new technical finding. It outranks the 1 October CISA ICS batch (ABB PCM600, Johnson Controls EasyIO, CISA Malcolm) because those advisories, as retrieved, did not claim in-the-wild exploitation. It outranks JADEPUFFER / Storm-3168 Azure destruction because Microsoft’s write-up landed 25 September (amplified 28 September), outside this primary window. It outranks municipal ransomware (Vicksburg) because that is a local incident without a new exploited CVE.

What we are not saying: that a named APT owns this CVE; that ransomware is using it; that every IBE decrypt error is exploitation; that 7.0 is confirmed in or out; that a FortiMail journaling an industrial site is confirmed process impact; that disabling IBE remediates a box that already has ld.so.preload.

What we are watching

Sources

Sources

  1. Fortinet PSIRT — FG-IR-26-175 CVE-2026-104286
  2. CISA — Adds one KEV CVE-2026-104286
  3. CISA — KEV JSON feed catalog 2026.10.01
  4. CISA — Known Exploited Vulnerabilities Catalog
  5. CISA — BOD 26-04
  6. NVD — CVE-2026-104286
  7. CVE — CVE-2026-104286
  8. BleepingComputer — Fortinet warns of critical FortiMail flaw exploited in zero-day attacks
  9. SecurityWeek — Exploited Fortinet FortiMail zero-day calls for urgent action
  10. Help Net Security — Critical FortiMail zero-day exploited in the wild
  11. watchTowr — Fortinet FortiMail CVE-2026-104286 FAQ