
CitrixBleed-2 (CVE-2025-5777) – exploit proof-of-concept per NetScaler ADC/Gateway “memory bleed”
CitrixBleed-2 (CVE-2025-5777) – proof-of-concept exploit per NetScaler ADC/Gateway “memory bleed”
CVE-2025-5777 è una critica lettura out-of-bounds non autenticata in Citrix NetScaler ADC/Gateway (modalità Gateway o AAA vServer). Una singola richiesta artificiosa può scaricare memoria contenente token di sessione, consentendo un bypass completo dell'autenticazione, guadagnandosi il soprannome “CitrixBleed 2.”
Le versioni corrette sono state pubblicate il 17 giugno 2025:
Non esistono mitigazioni ufficiali per i sistemi non aggiornati.
Le informazioni fornite in questo repository Github sono solo a scopo educativo. Tutte le informazioni su questo Github sono fornite in buona fede, tuttavia non fornisco alcuna dichiarazione o garanzia di alcun tipo, esplicita o implicita, riguardo all'accuratezza, adeguatezza, validità, affidabilità, disponibilità o completezza di qualsiasi informazione. Questo codice è rilasciato solo per scopi educativi e difensivi. Prima di testare, conferma di possedere il target o di avere il permesso esplicito. Il PoC perde memoria live; eseguilo su appliance di test quando possibile.
Questo script richiede l'uso di Python3 e della libreria urllib Se vuoi testare la vulnerabilità, fallo solo sui tuoi sistemi (non di produzione)
python CVE-2025-5777.py <target.host>
Lo script ns_log_scanner.py può essere utilizzato per rilevare qualsiasi carattere al di fuori dell'intervallo HEX 0x20 fino a 0x7F (ASCII) o 0x09, 0x0A e 0x0D (tabulazione orizzontale, LF e CR) - che potrebbe essere binario:
python ns_log_scanner.py /var/log/ns.log # (percorso di esempio)
alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (
msg:"doAuthentication bare-login exploit";
flow:established,to_server;
http_method; content:"POST"; nocase;
http_uri; pcre:"/\/p\/u\/doAuthentication\.do(?:[\/\?]|$)/Ui";
http_header; pcre:"/Content-Length\s*:\s*[1-9]\d{0,2}/Hi";
# ‼ “login” semplice – il carattere successivo NON deve essere '='
http_client_body; pcre:"/\blogin(?!\s*=)/i";
classtype:web-application-activity;
sid:1001003; rev:1; metadata:service http;
)
config ips custom-signature
edit "DoAuthentication_BareLogin"
set severity medium
set default-application signature
set service "HTTP"
set direction clienttoServer
set pattern "GETPOST \/p\/u\/doAuthentication\.do[\/\?]?.*Content-Length:\s*[1-9][0-9]{0,2}.*\blogin(?!\s*=)"
next
end
Autore : Mischa Rick van Geelen (@rickgeex)
Azienda : Anovum B.V.
Contatto : [email protected]