
CitrixBleed-2 (CVE-2025-5777) – exploit de prova de conceito para NetScaler ADC/Gateway “vazamento de memória”
CitrixBleed-2 (CVE-2025-5777) – exploit proof-of-concept para NetScaler ADC/Gateway “vazamento de memória”
CVE-2025-5777 é uma vulnerabilidade crítica de leitura fora dos limites não autenticada no Citrix NetScaler ADC/Gateway (modo Gateway ou AAA vServer). Uma única requisição maliciosa pode despejar memória contendo tokens de sessão, permitindo a bypass total de autenticação—ganhando o apelido de “CitrixBleed 2”.
Versões corrigidas foram publicadas em 17 de junho de 2025:
Não existem mitigações oficiais para sistemas não corrigidos.
As informações fornecidas neste repositório do Github são apenas para fins educacionais. Todas as informações neste Github são fornecidas de boa fé, no entanto, não faço nenhuma declaração ou garantia de qualquer tipo, expressa ou implícita, quanto à precisão, adequação, validade, confiabilidade, disponibilidade ou integridade de qualquer informação. Este código é liberado apenas para fins educacionais e defensivos. Antes de testar, confirme que você possui o alvo ou tem permissão explícita. O PoC vaza memória ativa; execute-o em appliances de teste sempre que possível.
Este script requer o uso de Python3 e da biblioteca urllib Se você quiser testar a vulnerabilidade, faça-o apenas em seus sistemas (não de produção)
python CVE-2025-5777.py <target.host>
O script ns_log_scanner.py pode ser usado para detectar qualquer caractere fora do intervalo HEX 0x20 até 0x7F (ASCII) ou 0x09, 0x0A e 0x0D (tabulação horizontal, LF e CR) - que poderiam ser binários:
python ns_log_scanner.py /var/log/ns.log # (caminho de exemplo)
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";
# ‼ Bare “login” – next char must NOT be '='
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
Autor : Mischa Rick van Geelen (@rickgeex)
Empresa : Anovum B.V.
Contato : [email protected]