- La vulnerabilità critica CVE-2026-21643 in FortiClientEMS 7.4.4 consente l'iniezione SQL e la possibile esecuzione di codice in remoto senza autenticazione.
- La vulnerabilità è correlata alla gestione non sicura dell'intestazione HTTP Site nel middleware, sfruttabile tramite l'endpoint pubblico /api/v1/init_consts.
- Lo sfruttamento di questa vulnerabilità può comportare la compromissione totale del database di gestione, il furto delle credenziali e la modifica delle policy distribuite a tutti gli endpoint.
- Le misure di mitigazione prevedono l'aggiornamento a FortiClientEMS 7.4.5 o versioni successive, la disabilitazione della modalità multi-tenant qualora non sia possibile applicare immediatamente una patch e la limitazione dell'accesso alla console di amministrazione.
La sicurezza delle piattaforme di gestione degli endpoint è diventata una questione cruciale per molte aziende, e l'ultimo chiaro esempio è Fortinet e la sua soluzione FortiClient Endpoint Management Server (EMS). Negli ultimi mesi, è stata scoperta una vulnerabilità critica di SQL injection che interessa una versione molto specifica del prodotto, generando notevole interesse nella comunità della sicurezza informatica.
In questo articolo, analizzeremo con calma cosa sta succedendo con la vulnerabilità critica di SQL injection in Fortinet , come funziona la vulnerabilità CVE-2026-21643, quale impatto reale ha sulle organizzazioni, come viene sfruttata nella pratica e, soprattutto, quali misure urgenti e a medio termine dovresti implementare se gestisci infrastrutture basate su FortiClientEMS o prodotti simili.
Contesto della vulnerabilità CVE-2026-21643 in FortiClientEMS
La vulnerabilità CVE-2026-21643 è stata classificata come critica , con un punteggio CVSS compreso tra 9.1 e 9.8 a seconda delle fonti, collocandola praticamente al livello di gravità più elevato. La falla risiede in FortiClient Endpoint Management Server (EMS), la piattaforma utilizzata dalle aziende per implementare e gestire gli agenti FortiClient sui propri dispositivi utente.
Nello specifico, il problema riguarda la versione 7.4.4 di FortiClientEMS del ramo 7.4 quando è abilitata la modalità multi-tenant (la funzionalità "Siti"). Le versioni 8.0 e 7.2, così come le istanze di FortiEMS Cloud, non sono interessate da questo bug, pertanto Fortinet ha concentrato tutte le raccomandazioni di mitigazione sugli ambienti che utilizzano ancora la versione 7.4.4 on-premise.
Questa vulnerabilità di SQL injection si verifica a causa di una neutralizzazione impropria di elementi speciali nelle istruzioni SQL , classificata come CWE-89. In pratica, consente a un utente malintenzionato remoto non autenticato di inviare richieste HTTP appositamente create e di indurre il server a eseguire comandi SQL arbitrari, il che può portare all'esecuzione di codice remoto (RCE) con i privilegi dell'utente del database.
Gli avvisi di sicurezza di Fortinet indicano che la vulnerabilità risiede nel componente GUI di FortiClientEMS , nello specifico nell'interfaccia web utilizzata dagli amministratori per gestire e monitorare gli endpoint. Ciò significa che qualsiasi istanza con un'interfaccia accessibile da Internet diventa un obiettivo primario per gli aggressori.
Come si origina una vulnerabilità critica di SQL injection in Fortinet
La radice del problema è legata a un importante refactoring del middleware in FortiClientEMS 7.4.4 . Durante questa revisione del codice, gli sviluppatori hanno modificato il modo in cui l'applicazione gestisce le connessioni al database PostgreSQL e il routing dei tenant, introducendo inavvertitamente un bug nel file di connessione.
In questa nuova logica, il server passa direttamente il Intestazione HTTP Site per una consultazione search_path di PostgreSQLL'obiettivo era selezionare lo schema corrispondente a ciascun tenant in base a questa intestazione, ma il problema principale è che il middleware non esegue una validazione o una sanificazione adeguate di tale valore.
Di conseguenza, un utente malintenzionato può alterare il formato di stringa previsto e inserire il proprio payload dannoso nell'istruzione SQL, iniettando comandi arbitrari che il database eseguirà con gli elevati privilegi configurati dall'utente del servizio all'interno della macchina virtuale Fortinet.
Il rischio è ulteriormente amplificato dal fatto che questo middleware vulnerabile viene eseguito prima di qualsiasi controllo di autenticazione . In altre parole, non è necessario effettuare l'accesso o disporre di credenziali: è sufficiente inviare una richiesta HTTPS manipolata con un'intestazione Site modificata per tentare di sfruttare la vulnerabilità.
Questo schema si adatta perfettamente a uno scenario CVSS 3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H , in cui l'attacco arriva tramite rete, ha una bassa complessità, non richiede privilegi preliminari o interazione da parte dell'utente e compromette completamente la riservatezza, l'integrità e la disponibilità del sistema interessato.
Vettore di attacco: endpoint /api/v1/init_consts e intestazione del sito
I ricercatori nel campo della sicurezza, come il team di Bishop Fox, hanno spiegato che il vettore di attacco più efficace si trova a livello del dispositivo finale. accessibile al pubblico /api/v1/init_consts, una rotta API di FortiClientEMS utilizzata durante l'inizializzazione dell'interfaccia.
Gli aggressori possono prima utilizzare questo endpoint per Verifica se la modalità multi-tenant è abilitataSe scoprono che la funzionalità Siti è abilitata, procedono a iniettare payload SQL tramite l'intestazione HTTP. Site, approfittando del fatto che il valore viene passato senza pulizia alla frase search_path.
Questo endpoint presenta diversi difetti di progettazione: in primo luogo, è privo di meccanismi di limitazione della frequenza delle richieste e di specifiche difese contro gli attacchi brute-force; in secondo luogo, restituisce direttamente i messaggi di errore generati da PostgreSQL nel corpo della risposta. Ciò facilita notevolmente il lavoro di un potenziale aggressore.
Ricevendo questi errori in modo così esplicito, un malintenzionato può eseguire tecniche di estrazione basate sugli errori in una singola richiesta , senza dover ricorrere alle iniezioni basate sul tempo, che sono molto più lente. Ciò consente di enumerare tabelle, colonne e dati sensibili in modo estremamente rapido.
Se l'attacco ha successo, l'attaccante ottiene una compromissione completa del database di gestione degli endpoint . Poiché l'utente del database opera con privilegi di superutente di PostgreSQL, non solo può esfiltrare informazioni, ma anche ottenere privilegi elevati per l'esecuzione di codice remoto sul sistema operativo sottostante.
Impatto reale sull'organizzazione e sugli endpoint gestiti
L'impatto di questa vulnerabilità va ben oltre una semplice fuga di dati. La possibilità di eseguire query SQL arbitrarie sul database di FortiClientEMS consente agli aggressori di rubare password di amministratore, certificati digitali e inventari completi dei dispositivi connessi alla piattaforma.
Con un tale livello di accesso, un malintenzionato può modificare le policy di sicurezza e distribuire configurazioni dannose a tutti gli endpoint gestiti. Ciò apre la porta a scenari complessi in cui gli stessi agenti di sicurezza dell'organizzazione diventano un vettore di attacco per la rete interna.
Inoltre, la compromissione del database di gestione incide anche sulla riservatezza dei dati memorizzati (ad esempio, informazioni su utenti, apparecchiature, politiche e certificati), sull'integrità (alterazione di regole, modelli e assegnazioni) e sulla disponibilità (possibile cancellazione dei dati o sabotaggio del server di amministrazione).
Questa minaccia si inserisce nella tendenza sempre più diffusa di attacchi contro dispositivi edge e sistemi di gestione , molto ambiti dai criminali informatici perché fungono da concentratori di informazioni e consentono il controllo su un gran numero di endpoint.
Per tutti i motivi sopra elencati, Fortinet ha classificato questa vulnerabilità come critica e le agenzie e le aziende di sicurezza raccomandano di trattare qualsiasi istanza di FortiClientEMS 7.4.4 esposta come una risorsa ad altissimo rischio fino a prova contraria.
Area di sfruttamento attivo e di esposizione
Sebbene alcune segnalazioni iniziali indicassero che non era stato rilevato alcuno sfruttamento attivo, i ricercatori della società Defused hanno confermato attacchi reali che sfruttavano la vulnerabilità CVE-2026-21643 appena quattro giorni prima che la vulnerabilità venisse resa pubblica.
I dati raccolti da organizzazioni come Shadowserver mostrano che circa 2.000 istanze di FortiClientEMS erano direttamente esposte a Internet al momento del monitoraggio. Gli Stati Uniti erano in testa alla classifica con circa 756 server vulnerabili, seguiti dall'Europa con oltre 680. Shodan ha inoltre rilevato più di 1.000 interfacce web di FortiClientEMS accessibili pubblicamente, molte delle quali probabilmente non aggiornate.
La voce ufficiale del registro NIST per CVE-2026-21643 conferma questa estrema gravità, mostrando un vettore AV:N/AC:L/PR:N/UI:N con un impatto elevato su C, I e A. Ciò implica che qualsiasi server FortiClientEMS 7.4.4 con un'interfaccia web aperta può essere completamente compromesso senza che l'attaccante necessiti di credenziali o debba convincere alcun utente a cliccare su nulla.
Defused ha segnalato questi exploit il 28 marzo, notando anche che, nonostante ciò, la vulnerabilità non era ancora stata inserita nel catalogo KEV (Known Exploited Vulnerabilities) della CISA o in altri elenchi pubblici di falle attivamente sfruttate, cosa che di solito accade in queste fasi iniziali di sfruttamento.
D'altro canto, Fortinet aveva già rilasciato la patch correttiva a febbraio con la versione 7.4.5, il che evidenzia uno schema ricorrente nella sicurezza informatica: intercorre un lasso di tempo significativo tra la disponibilità della correzione e la sua effettiva implementazione in produzione, un periodo durante il quale gli aggressori ne approfittano per compromettere i sistemi non ancora aggiornati.
Indicatori di compromissione e segnali di attacco
Per gli amministratori che gestiscono FortiClientEMS, è fondamentale comprendere gli indizi lasciati da un potenziale tentativo di sfruttamento. I principali indicatori di compromissione (IoC) includono i seguenti:
In primo luogo, evidenziano il tempi di risposta insolitamente lunghi, che vanno da 5 a oltre 20 secondi, sugli endpoint /api/v1/auth/signin o /api/v1/init_consts, come si può vedere nei log di accesso di Apache o di un altro server web che si trova davanti.
È anche un segnale di avvertimento da vedere Risposte HTTP 500 ripetute dallo stesso indirizzo IP contro il punto finale /api/v1/init_constsQuesto schema potrebbe indicare che un attaccante sta perfezionando i propri payload di SQL injection tramite tentativi ed errori fino a trovarne uno funzionante che non generi errori.
Inoltre, vale la pena consultare i log degli errori di PostgreSQL. consultazioni search_path con virgolette singole, punti e virgola o parole chiave SQL come SELECT, INSERT o UPDATE al di fuori del contesto previsto. Questo tipo di traccia di solito indica direttamente un tentativo di manipolare l'intestazione del sito.
Come misura di risposta, qualsiasi server FortiClientEMS 7.4.4 esposto a Internet senza i dovuti aggiornamenti deve essere considerato potenzialmente compromesso . Ciò implica l'isolamento del server dalla rete, l'esecuzione di un'analisi forense dettagliata (database, sistema operativo e log) e la pianificazione di una ricostruzione controllata dell'ambiente qualora vengano rilevate prove di intrusione.
Misure di mitigazione immediate e soluzione ufficiale da Fortinet
La principale misura di mitigazione è chiara: aggiornare FortiClientEMS dalla versione 7.4.4 alla 7.4.5 o superiore il prima possibile. Fortinet ha risolto la vulnerabilità sostituendo l'interpolazione di stringhe nella query con una corretta gestione degli identificatori parametrizzati e proteggendo in modo sicuro l'input dall'intestazione Site.
Le versioni 8.0 e 7.2, così come FortiEMS Cloud, non richiedono ulteriori interventi , in quanto non sono interessate da questa specifica vulnerabilità. Ciononostante, è comunque consigliabile verificare l'esposizione a Internet e le configurazioni di accesso, poiché la superficie di attacco delle console di gestione dovrebbe essere sempre ridotta al minimo.
Per i team che, per motivi operativi, non possono applicare immediatamente la patch, alcuni ricercatori raccomandano una soluzione temporanea: disabilitare la funzionalità "Siti" multi-tenant . Questa azione impedisce l'esecuzione del codice vulnerabile collegato all'intestazione Site, riducendo significativamente le possibilità di sfruttamento.
Analogamente, è essenziale limitare l'accesso web all'interfaccia di gestione dell'EMS esclusivamente alle reti interne attendibili . Idealmente, la console dovrebbe essere protetta da una VPN o da un meccanismo di accesso zero-trust e non dovrebbe mai essere esposta direttamente a Internet, se non in casi eccezionali e adeguatamente protetti.
Inoltre, è consigliabile rivedere e rafforzare le regole del firewall e gli eventuali WAF posti davanti a FortiClientEMS , applicando filtri che blocchino i tipici schemi di SQL injection nelle intestazioni HTTP, in particolare nell'intestazione Site, e monitorando attentamente qualsiasi richiesta API anomala.
Buone pratiche di sicurezza oltre la patch
Oltre alla semplice applicazione di patch e misure di mitigazione specifiche, questo incidente dimostra chiaramente che la gestione delle vulnerabilità deve essere un processo continuo , non una reazione una tantum a un avviso del fornitore. Le organizzazioni che si affidano a piattaforme di gestione degli endpoint e soluzioni di sicurezza di rete dovrebbero rafforzare la propria strategia su più fronti.
Da un lato, è fondamentale disporre di un inventario aggiornato di risorse e versioni , in modo che, quando viene pubblicata una CVE critica, sia possibile identificare in pochi minuti quali sistemi sono vulnerabili e dare priorità al loro aggiornamento in base al livello di esposizione e criticità.
D'altro canto, è consigliabile optare per test di penetrazione periodici e revisioni dell'architettura che convalidino non solo la robustezza del prodotto in sé, ma anche le modalità di implementazione: segmentazione della rete, separazione dei piani di gestione, restrizioni di accesso, monitoraggio centralizzato dei log e rilevamento di comportamenti anomali.
Dal punto di vista dello sviluppo, questo caso dimostra ancora una volta l'importanza di applicare pratiche di sviluppo sicure e test di regressione ogni volta che si esegue un refactoring profondo del middleware o di componenti critici. I miglioramenti in termini di prestazioni o scalabilità non possono essere accompagnati da un passo indietro in meccanismi così basilari come la sanificazione degli input.
Le aziende specializzate in sicurezza informatica e sviluppo sicuro offrono servizi di audit del codice, penetration testing e consulenza specificamente progettati per individuare queste vulnerabilità prima che raggiungano l'ambiente di produzione. In ambienti che combinano infrastrutture on-premise, cloud e dispositivi edge, affidarsi a esperti esterni spesso fa la differenza.
Infine, a livello di governance e di business, è molto utile disporre di dashboard e strumenti di business intelligence che consentano di visualizzare lo stato delle vulnerabilità, l'esposizione delle interfacce di gestione e il potenziale impatto di un guasto critico sui processi aziendali. Questo approccio facilita la definizione delle priorità di investimento e la giustificazione di misure preventive che, a prima vista, possono sembrare costose, ma che nel medio termine evitano numerosi problemi.
La combinazione di un grave difetto di progettazione, un'ampia superficie di attacco e il consueto ritardo nell'applicazione delle patch rende CVE-2026-21643 un caso esemplare del perché la sicurezza delle console di gestione non debba mai essere sottovalutata. Qualsiasi organizzazione che utilizzi FortiClientEMS o soluzioni simili dovrebbe considerare questo incidente come un campanello d'allarme per rivedere il proprio livello di sicurezza, accelerare i cicli di aggiornamento e rafforzare le difese delle proprie piattaforme di gestione prima che un'altra vulnerabilità zero-day o un attacco di SQL injection la mettano nuovamente in una posizione di svantaggio.
