Gli exploit di Citrix NetScaler trasformano gli appliance edge in tunnel di rete con privilegi root
Citrix conferma exploit attivi su NetScaler ADC e Gateway: due falle pre-auth permettono root, webshell PHP e tunnel verso la rete interna. Aggiorna ora.
Immagine illustrativa generata con AI
Citrix ha confermato lo sfruttamento attivo di due vulnerabilità pre-autenticazione in NetScaler ADC e NetScaler Gateway. Le falle, CVE-2026-88771 e CVE-2026-88772, consentono agli aggressori di compromettere gli appliance vulnerabili senza credenziali valide.
Gli attacchi vanno oltre l’esecuzione iniziale di codice. Gli investigatori hanno rilevato web shell PHP nascoste, configurazioni del server web modificate, accessi persistenti con privilegi root, furto di credenziali e tunnel creati dagli appliance NetScaler esposti per raggiungere le reti interne.
Entrambe le vulnerabilità figurano nel catalogo Known Exploited Vulnerabilities della Cybersecurity and Infrastructure Security Agency statunitense dal 27 settembre 2026. La scadenza federale per la correzione è il 30 settembre 2026.
Due vulnerabilità sfruttate interessano le stesse versioni di NetScaler
CVE-2026-88771 è una vulnerabilità dovuta a una convalida impropria dell’input, classificata come CWE-20. Consente a un aggressore remoto non autenticato di eseguire comandi arbitrari.
L’NVD le assegna un punteggio CVSS v3 di 9,8 e il seguente vettore:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVE-2026-88772 è una vulnerabilità relativa alla sicurezza della memoria, classificata come CWE-119, che riguarda le operazioni eseguite oltre i limiti validi di un buffer di memoria. Può causare l’esecuzione di codice da remoto o un denial of service; il percorso sfruttabile coinvolge DTLS.
Il punteggio assegnato dall’NVD è 8,1, con il seguente vettore:
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Un rapporto separato assegna a CVE-2026-88772 un punteggio di 9,5. La discrepanza non ne modifica la rilevanza operativa: Citrix ha confermato che la vulnerabilità viene sfruttata e che gli attacchi riusciti possono eseguire shellcode con privilegi root.
Le versioni interessate indicate per entrambe le vulnerabilità sono:
| Prodotto | Versioni interessate |
|---|---|
| NetScaler ADC | Precedenti alla 14.1-73.37 |
| NetScaler ADC | Precedenti alla 13.1-64.23 |
| NetScaler ADC FIPS | Precedenti alla 14.1-73.37 FIPS |
| NetScaler ADC FIPS e NDcPP | Precedenti alla 13.1.37.279 FIPS e NDcPP |
| NetScaler Gateway | Precedenti alla 14.1-73.37 |
| NetScaler Gateway | Precedenti alla 13.1-64.23 |
La scheda del prodotto nell’NVD indica inoltre le versioni di NetScaler Application Delivery Controller e NetScaler Gateway precedenti alla 13.1-64.23. Gli amministratori dovrebbero installare gli aggiornamenti di sicurezza più recenti di Citrix, senza affidarsi esclusivamente al confronto delle stringhe di versione.
Frammenti DTLS malformati provocano una sovrascrittura estesa della memoria
La vulnerabilità meglio documentata, CVE-2026-88772, deriva dalla gestione incoerente dei messaggi frammentati dell’handshake DTLS.
NetScaler si fida del campo fragment_length di un frammento anche quando il suo valore è in conflitto con la lunghezza totale dell’handshake, indicata dal campo length. Nell’esempio analizzato da Sina Kheirkhah, ricercatore di watchTowr, il messaggio completo dichiara una lunghezza di 120 byte, mentre ogni frammento afferma di contenerne uno solo.
Un aggressore può inviare frammenti che coprono gli offset da 0 a 119. Quando tutti gli offset sono presenti, NetScaler considera completo l’handshake e avvia la ricomposizione.
La quantità di dati memorizzati nel buffer, tuttavia, può superare di molto la lunghezza dichiarata del messaggio. Ogni pacchetto da 1.459 byte viene memorizzato in un NetScaler Buffer, o NSB. I pacchetti vengono poi copiati in un buffer temporaneo da 35.840 byte.
L’implementazione vulnerabile non verifica che ogni pacchetto in arrivo possa essere contenuto nel buffer prima di eseguire la scrittura successiva. Dopo 120 record, l’handshake dichiarato risulta completo, mentre la catena NSB associata contiene circa 174 KB. La ricomposizione di quella catena provoca una scrittura fuori dai limiti del buffer.
Secondo l’analisi tecnica di CVE-2026-88772, l’overflow può reindirizzare l’esecuzione verso shellcode controllato dall’aggressore. Il percorso di exploit usa mprotect() per aggirare le protezioni di memoria NX e ottenere l’esecuzione con privilegi root.
La telemetria di Mandiant conferma uno scenario analogo: header di record appositamente costruiti o frammentati corrompono i limiti dell’heap nel NetScaler Packet Processing Engine, o NSPPE, consentendo l’esecuzione di shellcode sul sistema FreeBSD sottostante. Lo sfruttamento può anche causare l’arresto imprevisto di NSPPE, perciò i crash inspiegabili del motore di elaborazione dei pacchetti sono un indicatore utile per la ricerca delle minacce.
I dettagli tecnici dello sfruttamento di CVE-2026-88771 non sono stati descritti pubblicamente. È noto che la vulnerabilità non richiede autenticazione e consente di eseguire comandi arbitrari.
Gli aggressori hanno nascosto le web shell dietro richieste di file apparentemente normali
Il 24 settembre 2026, tre giorni prima che Citrix rendesse pubbliche le vulnerabilità, GreyNoise ha rilevato un tentativo di attacco contro un NetScaler Gateway. L’attacco proveniva da 149.104.78.141.
L’attività mirava a modificare /bin/sh per ottenere una shell root e a installare una web shell PHP protetta da password in:
/var/netscaler/logon/LogonPoint/custom/.ctxs.receiver
Gli aggressori hanno tentato anche di modificare /etc/httpd.conf. Il loro obiettivo era fare in modo che le richieste di risorse CSS apparentemente innocue, tra cui receiver.min.css, eseguissero il file PHP nascosto.
Altre intrusioni hanno adottato tecniche di camuffamento simili. Mandiant ha individuato web shell archiviate come file .deb in directory normalmente riservate al software client di NetScaler. Gli aggressori hanno configurato quei file di pacchetto in modo che venissero eseguiti come PHP.
In altri casi, il codice malevolo era nascosto in file .sig. Le modifiche alla configurazione del server web associavano le richieste di immagini .ico nella directory /vpn/media/ ai payload PHP.
Le shell usavano funzioni come shell_exec() ed eval() per eseguire comandi. Alcune restituivano false risposte HTTP 404 mentre eseguivano quei comandi, facendo sembrare il traffico malevolo una serie di richieste non riuscite a normali contenuti statici.
Lo sfruttamento iniziale garantiva privilegi root, ma i comandi avviati tramite il server web di NetScaler venivano normalmente eseguiti con un account dotato di privilegi inferiori. Gli aggressori hanno aggirato questa limitazione impostando il bit setuid su /bin/sh, così da mantenere una via per ottenere di nuovo l’esecuzione con privilegi root. Hanno inoltre riavviato gli appliance o il server web per rendere effettive le modifiche alla configurazione.
WHIPSHOT e SLAPSHOT aprono varchi verso le reti interne
Durante le intrusioni, Mandiant ha individuato due famiglie di malware mai documentate prima.
WHIPSHOT è una web shell PHP camuffata da pacchetto Debian e collocata nella directory degli script VPN di NetScaler. Estrae dati codificati in Base64 dagli header HTTP e funge da proxy HTTP per un secondo impianto.
WHIPSHOT è in grado di verificare se il secondo impianto è in esecuzione. Può anche estrarre payload Python incorporati e avviarli in background.
SLAPSHOT è il componente di tunneling basato su Python. Riceve istruzioni tramite WHIPSHOT, si connette agli host interni, scambia dati e chiude le sessioni. Può terminare dopo un periodo di inattività.
In almeno un’intrusione, gli aggressori hanno usato il tunnel per ricognizioni manuali sulla rete interna e per rubare credenziali. Questa funzionalità rende particolarmente pericolosa la compromissione degli appliance: i sistemi NetScaler sono spesso esposti a Internet, ma occupano anche una posizione di rete da cui potrebbero essere raggiungibili i servizi interni.
Gli strumenti tradizionali di rilevamento sugli endpoint potrebbero non coprire questi appliance. Un exploit riuscito può quindi creare un ponte difficile da monitorare che aggira i controlli perimetrali.
Mandiant ritiene che gli attacchi siano iniziati almeno ai primi di settembre e abbiano colpito organizzazioni in Nord America e in Europa. Tra le vittime figurano enti governativi e realtà dei settori finanziario, dell’istruzione, legale e dei servizi professionali. L’identità degli aggressori non è stata resa nota.
La ricerca delle tracce deve proseguire anche dopo l’applicazione delle patch
Installare gli aggiornamenti di sicurezza più recenti di Citrix blocca i percorsi vulnerabili noti, ma non rimuove gli artefatti lasciati da una compromissione precedente. Gli operatori dovrebbero ispezionare gli appliance alla ricerca di meccanismi di persistenza e modifiche alla configurazione.
Tra i controlli più importanti:
- La web shell
.ctxs.receivero file inattesi nelle directory web di NetScaler. - Direttive
AliasoAliasMatchnon autorizzate inhttpd.conf. - Handler PHP associati a estensioni insolite come
.deb,.sig,.icoo altre. - Codice PHP incorporato in file presentati come pacchetti, firme, immagini o fogli di stile.
- Permessi setuid root assegnati a
/bin/sh. - Modifiche a proprietario, modalità o contenuto di
/bin/sh. /tmp/.uxdporto/tmp/.uxdlock, associati a SLAPSHOT.- Processi Python avviati tramite
nohup. - Comandi o file Python contenenti grandi payload codificati in Base64.
- Crash imprevisti di NSPPE.
- Attività sospette di esecuzione di comandi associate a risposte HTTP 404.
- Connessioni che coinvolgono
149.104.78.141.
GreyNoise non ha pubblicato l’exploit completo. L’assenza di traffico proveniente dall’indirizzo identificato non basta quindi a dimostrare che un appliance sia pulito.
Quando le esigenze operative lo consentono, prima di ricostruire o riavviare i sistemi sospetti le organizzazioni dovrebbero conservare i log e i file di configurazione pertinenti. Anche le credenziali accessibili tramite un appliance compromesso andrebbero considerate potenzialmente esposte.
La mitigazione di DTLS copre solo una delle due vulnerabilità
Se non è possibile applicare subito la patch, disabilitare DTLS può ridurre l’esposizione a CVE-2026-88772. Le organizzazioni che non hanno bisogno di DTLS possono anche bloccare il traffico UDP in ingresso sulla porta 443 a monte dell’appliance.
Nessuna delle due misure protegge da CVE-2026-88771. L’aggiornamento a una versione corretta di NetScaler è l’unica azione disponibile che copre entrambe le vulnerabilità sfruttate.
La CISA impone alle agenzie federali di applicare le mitigazioni indicate dal fornitore, seguire le linee guida per l’applicazione delle patch basata sul rischio previste da BOD 26-04 e completare le attività di analisi forense entro il 30 settembre 2026. Per i servizi cloud, le agenzie devono seguire le linee guida applicabili di BOD 26-04 oppure interromperne l’uso quando non sono disponibili mitigazioni. Devono inoltre valutare l’esposizione a Internet di ciascun asset.
Queste segnalazioni si inseriscono in una serie di vulnerabilità Citrix aggiunte di recente al KEV. CVE-2026-19490 è entrata nel catalogo il 9 settembre 2026, mentre CVE-2026-8452 è stata aggiunta il 26 agosto 2026.
Per CVE-2026-88771 e CVE-2026-88772, lo sfruttamento è già confermato. Le patch dovrebbero essere accompagnate da un’analisi forense: gli operatori osservati hanno installato meccanismi di accesso persistenti e usato gli appliance compromessi per raggiungere i sistemi oltre il perimetro di rete.
Fonti
Questo articolo è una rielaborazione originale basata sulle fonti seguenti.
CVE trattate in questo articolo
- CVE-2026-88771Critica9.8Improper input validation vulnerability in Citrix NetScaler ADC and Citrix NetScaler Gateway. This issue affects ADC: before 14.1-73.37, before 13.1-64.23, before 14.1-73.37 FIPS, and before 13.1.37.279 FIPS and NDcPP; Gateway: before 14.1-73.37 and before 13.1-64.23 leading to an unauthenticated a
- CVE-2026-88772Alta8.1Vulnerability in Citrix NetScaler ADC and Citrix NetScaler Gateway. This issue affects ADC: before 14.1-73.37, before 13.1-64.23, before 14.1-73.37 FIPS, and before 13.1.37.279 FIPS and NDcPP; Gateway: before 14.1-73.37 and before 13.1-64.23 leading to Remote Code Execution or Denial of Service




