← Blog
FortiMailZero-DayCVE-2026-104286Email Security

FortiMail CVE-2026-104286: scrittura file non autenticata, sfruttata come zero-day

FortiMail CVE-2026-104286: scrittura file non autenticata (path traversal), CVSS 9.8, sfruttata in rete per installare una backdoor. Patch e hunting.

Zero Hunt Research··7 min di lettura

Pubblicato da Zero Hunt, un red team AI autonomo su un'appliance on-premise con AI privata: penetration test automatizzato per reti e infrastrutture, in black box o gray box, con una persona che approva ogni passo che conta.

Fortinet ha confermato che CVE-2026-104286, una falla critica nel suo secure email gateway FortiMail, viene sfruttata come zero-day. Il bug consente a un attaccante non autenticato di scrivere file arbitrari sul sistema sottostante tramite una richiesta HTTP o HTTPS malformata verso l'interfaccia di gestione — e negli attacchi osservati finora quella scrittura serve a installare una backdoor persistente sull'apparato. CISA ha aggiunto la vulnerabilità al catalogo Known Exploited Vulnerabilities il 1° ottobre, dando alle agenzie federali tempo fino al 4 ottobre e richiedendo triage forense. Se la tua interfaccia di gestione FortiMail era raggiungibile prima della patch, applicarla è il primo passo, non il traguardo.

Notizia in evoluzione — pubblicata alle 09:20 (07:20 UTC) del 2 ottobre 2026. Aggiornata man mano che vendor e CISA pubblicano.

In breve

CVE CVE-2026-104286
Prodotto / versioni colpite FortiMail 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 elenca anche 7.0.0–7.0.9)
Corretta in 8.0.2+ · 7.6.7+ · 7.4.9+; per il ramo 7.2.x non esiste build corretta — migrare a 7.4.9+
CVSS 9.8 Critica · CVSS 3.1, assegnato da Fortinet · AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Sfruttata attivamente Sì — Fortinet conferma lo sfruttamento attivo; zero-day
CISA KEV Aggiunta il 2026-10-01; scadenza federale 2026-10-04 (BOD 26-04, triage forense richiesto)
Advisory ufficiale FG-IR-26-175

Cosa ha comunicato Fortinet

L'advisory FG-IR-26-175 descrive due debolezze che lavorano insieme: una limitazione impropria del percorso verso una directory riservata (CWE-22, il classico path traversal) e una neutralizzazione impropria di un byte o carattere NULL (CWE-158). Combinate, permettono a una richiesta di uscire dalla directory in cui il web server vorrebbe confinarla e di depositare un file dove il servizio può scrivere. Nessuna credenziale, nessuna sessione, nessuna interazione utente — il vettore CVSS 3.1 è AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, un pulito 9.8.

La scrittura arbitraria di file su un apparato non è un impatto "di integrità" teorico. Su un dispositivo basato su Linux è la primitiva con cui si costruisce un punto d'appoggio: scrivi un oggetto condiviso, scrivi un componente web, scrivi un loader, e l'apparato è tuo. È esattamente ciò che fa l'attività osservata in rete. Secondo il vendor e come confermato da BleepingComputer e The Hacker News, gli attaccanti usano la scrittura per installare un impianto nel linker dinamico e servizi backdoor, per poi aprire un canale verso l'esterno.

"Abbiamo applicato la patch la mattina stessa dell'advisory." Quella frase descrive un apparato che ora esegue codice pulito — e, se prima era raggiungibile da internet, forse esegue ancora la liblog.so di qualcun altro. La patch chiude la porta. Non accompagna fuori chi è già entrato.

Chi è esposto, e come verificare

Ogni ramo FortiMail supportato al di sotto della build corretta è vulnerabile. Verifica la versione in esecuzione dalla CLI:

get system status

Leggi la riga Version. Sei esposto se rientra in uno di questi intervalli: 8.0.0–8.0.1, 7.6.0–7.6.6, 7.4.0–7.4.8, 7.2.0–7.2.9. Il record NVD elenca anche 7.0.0–7.0.9; la tabella dell'advisory Fortinet non riporta un ramo 7.0, quindi se sei su 7.0.x consideralo vulnerabile e passa a una build 7.4 corretta comunque. L'esposizione che pesa di più: un'interfaccia di gestione (admin HTTP/HTTPS e il portale Identity-Based Encryption / IBE) raggiungibile da internet.

Remediation

1. Sono esposto? Esegui get system status e confronta la riga Version con gli intervalli sopra. Poi stabilisci se l'interfaccia admin o il portale IBE siano mai stati esposti su internet — a questo rispondono le regole del firewall perimetrale e i log di un eventuale reverse proxy, non l'apparato da solo.

2. Patch — versioni corrette esatte. Aggiorna alla prima build corretta del tuo ramo, verbatim da FG-IR-26-175:

Ramo Versione corretta
FortiMail 8.0 8.0.2 o superiore
FortiMail 7.6 7.6.7 o superiore
FortiMail 7.4 7.4.9 o superiore
FortiMail 7.2 Nessuna build 7.2 corretta — aggiornare a 7.4.9 o superiore

3. Non puoi applicare la patch subito? Controlli compensativi. Fortinet ne indica due, e vale la pena applicarli entrambi anche dopo la patch. Disabilita l'Identity-Based Encryption, che è nel percorso sfruttato:

config system encryption ibe
    set status disable
end

E limita l'interfaccia di gestione alle reti fidate — idealmente toglila del tutto dall'internet pubblica e raggiungila via VPN o jump host. Un bug raggiungibile in rete e non autenticato smette di contare nel momento in cui la rete non è raggiungibile.

4. Caccia alla compromissione (fallo anche dopo la patch). È il passo che la maggior parte degli articoli salta, e su uno zero-day con impianto confermato è quello che conta. Il vendor ha pubblicato indicatori concreti — tratta la loro presenza come compromissione, non come un forse. File aggiunti o modificati sull'apparato:

  • /data/etc/ld.so.preload (aggiunto) — il perno della persistenza: tutto ciò che è elencato qui viene caricato in ogni processo. Mappa su ATT&CK T1574.006, Hijack Execution Flow: Dynamic Linker Hijacking, ed è coperto dalla regola Sigma pubblica Modification of ld.so.preload.
  • /data/lib/liblog.so (aggiunto) — l'oggetto precaricato; funziona da rootkit (T1014) che nasconde il resto.
  • /data/bin/webconsole e /data/bin/mailservice (aggiunti) — servizi backdoor su un apparato web/mail (T1505.003, web shell / componente server).
  • /bin/smit, /data/etc/httpd.conf, /data/migadmin.tar.gz (modificati).

Lato rete, gli indirizzi C2 osservati sono 79.141.169[.]187 e 45.129.0[.]192 — cerca nei log di egress e del firewall qualsiasi FortiMail che li contatti (ATT&CK T1071.001). Un mail gateway che storicamente emette solo SMTP e che improvvisamente apre sessioni web in uscita verso un host sconosciuto è il segnale, con o senza quegli IP esatti. L'accesso iniziale mappa su T1190, Exploit Public-Facing Application, visibile nei log web/proxy come richieste anomale all'interfaccia admin.

5. Bonifica e verifica. Un apparato patchato ma con impianto resta un apparato compromesso. Se è presente un solo indicatore, la via difendibile è una reinstallazione pulita da immagine corretta, non la cancellazione dei file trovati — un rootkit nel linker dinamico esiste proprio per rendere inaffidabile il "ho rimosso i file". Ruota ogni credenziale che l'apparato deteneva o poteva vedere: account admin, bind LDAP/AD, segreti di relay SMTP, token API, certificati. Verifica che sia pulito dopo la ricostruzione, non prima.

Cosa non si sa ancora

Al momento Fortinet non ha pubblicato l'identità dell'attore, la timeline completa dello sfruttamento, né quanti apparati siano stati colpiti. CISA indica l'uso in campagne ransomware come Unknown. Le fonti non citano un proof-of-concept pubblico, il che non significa che non esista — una scrittura file non autenticata già sfruttata va considerata weaponizzata. Aggiorneremo il post man mano che le fonti primarie aggiungono dettagli.

Intercettare l'impianto che l'apparato non può ammettere

La parte scomoda di questa CVE è che l'apparato a cui chiederesti "sei compromesso?" è lo stesso che esegue la liblog.so dell'attaccante, costruita per mentire. Per questo la risposta duratura vive sulla rete, non sull'host. L'AI Traffic Analysis di Zero Hunt è un modello di deep learning con quattro teste di inferenza parallele — traffico sospetto, classificazione malware, identificazione del tipo di attacco, fingerprinting applicativo — addestrato su miliardi di sequenze PCAP e in esecuzione localmente sulla GPU dell'apparato a 2.7+ Gbit/s. Un FortiMail che ha sempre parlato solo SMTP e che improvvisamente apre sessioni web verso un ASN mai visto è esattamente la deviazione che segnala mentre accade, indipendentemente dal fatto che il logging dell'host sia stato manomesso.

Questo si abbina alla domanda che la patch lascia aperta: il percorso di scrittura file è davvero chiuso sulla tua configurazione? L'autonomous AI red team di Zero Hunt risponde come farebbe un attaccante — uno swarm di 10 agenti che lavora in black-box contro l'apparato, con l'Exploit Forge che itera un proof eseguibile finché dimostra il percorso o conferma che la correzione tiene, e ogni finding firmato Ed25519 al momento della scrittura. Gira on-premise su modelli privati, con un human in the loop per qualsiasi azione che tocca il target, così l'evidenza non lascia mai il tuo perimetro. Per come si inserisce in una cadenza di test continui, vedi la nostra guida al penetration testing automatizzato; per il pattern più ampio degli apparati Fortinet, la nostra analisi precedente sulla CVE agentless di FortiSandbox.

Una nota di conformità da fare subito: sotto la BOD 26-04 questa voce KEV porta un requisito di triage forense, e per gli operatori UE l'orologio di notifica dell'Articolo 23 NIS2 parte da quando si è venuti a conoscenza dell'incidente. Le autorità verificheranno quella data di consapevolezza contro i tuoi stessi alert e log — che è un argomento per avere l'evidenza lato rete, firmata e con marca temporale, prima che qualcuno la chieda. Se il tuo FortiMail era esposto, avvia subito la verifica.

È sfruttabile nel tuo ambiente?

Zero Hunt lo verifica sulla tua rete: un red team AI autonomo su un'appliance on-premise, con AI privata, in black box o gray box e con una persona che approva ogni passo che conta. La prova di cosa è sfruttabile, la correzione e le evidenze firmate — nessun dato esce dal tuo perimetro.