← volver
CVE-2019-19781criticalbajo ataqueransomwareCWE-22

CVE-2019-19781

100Vexday Risk Score

Corrige ahora. Ella está bajo explotación confirmada por CISA, tiene exploit funcional público y 3 grupo(s) de amenaza la utilizan.

ssvc Actcvss 9.8epss 100%
de la publicación al arma14 días
Publicada en NVD27 dic
1ª PoC+14d
metasploit17 dic
CISA KEV+677d
probabilidad de explotación
100%top 1% de las CVE
explotación observada
CISA + VulnCheck
3 grupo(s)82 exploit(s) público(s)
Quién la explota3

Grupos conocidos por explotar esta vulnerabilidad (atribución MITRE ATT&CK).

Acción exigida por CISAplazo federal: 2022-05-03

Apply updates per vendor instructions.

Resumen

Falha de directory traversal (CWE-22) no componente de gerenciamento web dos appliances Citrix ADC e Citrix Gateway (antigos NetScaler ADC/Gateway) que permite a um atacante não autenticado acessar scripts Perl internos sob o caminho /vpns/ e, encadeando isso com injeção no Perl Template Toolkit, executar código arbitrário no sistema. Importa porque não exige autenticação, é explorável remotamente com uma única requisição HTTP, e foi amplamente explorada em massa dias após a divulgação — incluindo por operadores de ransomware.

Detalle técnico

O bug está na forma como o servidor web interno do ADC/Gateway trata caminhos que misturam o diretório público /vpn/ com o diretório interno /vpns/, que hospeda scripts Perl usados pela interface de VPN SSL. Uma sequência de traversal como /vpn/../vpns/ escapa do sandboxing esperado e alcança arquivos e scripts que deveriam estar restritos a contextos autenticados ou internos.

A Citrix nunca publicou detalhes técnicos completos do bug (o bulletin original é enxuto), mas pesquisa independente (CERT/CC, Positive Technologies, que reportou a falha via Mikhail Klyuchnikov) mostrou que o traversal dá acesso de leitura a arquivos de configuração (ex.: smb.conf) e, mais grave, permite acionar scripts Perl expostos nesse caminho. Um dos vetores demonstrados usa o traversal para escrever um arquivo XML controlado pelo atacante em local acessível pelo Perl Template Toolkit (TT2) usado internamente por esses scripts; o TT2, ao processar o XML malicioso, permite injeção de template que resulta em execução de comandos no sistema operacional subjacente.

O atacante controla o conteúdo do arquivo escrito via traversal e, por extensão, o payload que o motor de template Perl interpreta. Não há necessidade de qualquer credencial — o caminho é acessível antes de qualquer autenticação de VPN SSL. A CISA classifica a falha sob CWE-22 (path traversal), mas o resultado final documentado é RCE completo, refletido no CVSS 9.8/10.0.

Cómo se explota

O vetor é uma requisição HTTP(S) direta ao appliance, sem necessidade de conta, VPN configurada ou qualquer segredo prévio — basta acesso de rede à interface de gerenciamento/gateway exposta. A prova de conceito de verificação mais citada é uma simples requisição GET com traversal (ex.: /vpn/../vpns/cfg/smb.conf) que, se retornar o conteúdo do arquivo em vez de 403, confirma que o sistema está vulnerável. A partir daí, a cadeia de exploração completa (escrita de arquivo via traversal + injeção via Perl Template Toolkit) permite execução de comandos arbitrários no appliance.

A exploração ficou pública quase imediatamente após a divulgação em dezembro de 2019/janeiro de 2020, com scanning massivo documentado (Bad Packets reportou mais de 25.000 instâncias vulneráveis expostas), módulos Metasploit, PoCs públicas e uso confirmado por múltiplos grupos de ameaça, incluindo operações de ransomware — motivo pelo qual a CISA marca a entrada no KEV com a flag 'usada em campanhas de ransomware'. A superfície de exposição típica é a interface de gateway/VPN publicada na internet, que por definição de uso é voltada à internet pública, tornando o volume de alvos expressivo.

O impacto final é execução de código no appliance com privilégios do processo do servidor web, o que na prática significa comprometimento total do dispositivo (visto que ADC/Gateway concentram autenticação de VPN, balanceamento e, em muitos ambientes, integração com Active Directory) — de onde o atacante normalmente pivota para a rede interna.

Versiones

Afectadas
Citrix Application Delivery Controller (ADC) e Citrix Gateway (antigos NetScaler ADC/Gateway) nas branches 10.5, 11.1, 12.0, 12.1 e 13.0. O KB CERT/CC (VU#619785) também associa a mesma família de vulnerabilidade a Citrix SD-WAN WANOP Appliance em certos modelos.
Corregidas en
Citrix liberou builds corrigidas por versão via CTX267027, em cronograma escalonado entre o final de dezembro de 2019 e o final de janeiro de 2020. As fontes analisadas não trazem a lista completa e exata de números de build por branch — apenas a nota do CERT/CC de que, na branch 12.1, é necessário estar nas builds 51.16/51.19 ou 50.31 (ou superiores) para que o workaround de mitigação funcione corretamente, devido a um bug adicional nessa versão. Para os números de build definitivos por branch, é necessário consultar diretamente CTX267027.

Cómo protegerse

A correção definitiva é aplicar as builds corrigidas por versão publicadas pela Citrix no bulletin CTX267027. As fontes disponíveis não trazem a tabela completa de números de build por branch (10.5, 11.1, 12.0, 12.1, 13.0); consulte CTX267027 para os números exatos, pois a liberação foi escalonada entre o final de dezembro de 2019 e o final de janeiro de 2020, com branches diferentes recebendo patch em datas distintas.

Se a atualização não for possível de imediato, a Citrix publicou workaround em CTX267679 baseado em política Responder que bloqueia requisições contendo /vpns/ combinadas com padrões de traversal, além de ajuste via nsapimgr_wr.sh. Esse workaround reduz a exposição mas não é equivalente ao patch — cobre os vetores conhecidos na época, não necessariamente variações futuras. Atenção: o próprio CERT/CC nota que esse workaround responder-based não funciona corretamente em builds 12.1 anteriores a 51.16/51.19 e 50.31, devido a um bug distinto nesse branch — nesses casos é necessário primeiro atualizar para uma build não afetada por esse bug secundário antes de confiar na mitigação.

O que não funciona como mitigação: apenas restringir acesso por IP de origem não neutraliza o risco se a interface precisa ficar exposta para uso legítimo de VPN, e WAFs genéricos sem regra específica para o padrão /vpns/../ tendem a não bloquear as variações de encoding usadas nos exploits reais.

Cómo detectar

O teste de verificação mais citado por pesquisadores é uma requisição para um caminho com traversal apontando a um arquivo de configuração conhecido (ex.: /vpn/../vpns/cfg/smb.conf); resposta 403 indica que a mitigação/patch está aplicada, resposta com o conteúdo do arquivo indica sistema vulnerável — isso serve tanto para teste defensivo quanto como assinatura de tentativa de exploração em logs de acesso do próprio appliance ou de qualquer proxy/WAF na frente dele. Em logs de servidor web, procurar por padrões de URL contendo '/vpn/../vpns/' ou variações de encoding equivalentes é o indicador mais direto.

Existe regra Sigma pública (repositório Neo23x0/sigma, arquivo web_citrix_cve_2019_19781_exploit.yml) voltada a esse padrão de exploração, e a CISA publicou alertas (AA20-020A, AA20-031A) com indicadores adicionais de comprometimento observados em campanhas reais, incluindo artefatos deixados no sistema de arquivos do appliance após exploração bem-sucedida — útil para resposta a incidente em appliances que ficaram expostos sem patch durante a janela de dezembro de 2019 a janeiro de 2020.

Investigado y redactado con IA a partir del advisory del fabricante y análisis públicos, con las fuentes citadas. Verifica siempre la versión corregida en el advisory oficial antes de actuar.
An issue was discovered in Citrix Application Delivery Controller (ADC) and Gateway 10.5, 11.1, 12.0, 12.1, and 13.0. They allow Directory Traversal.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Productos afectados
n/a · n/a
PoCs públicas encontradas82
exploitdbwww.exploit-db.com/exploits/47901no verificadoexploitdbwww.exploit-db.com/exploits/47930no verificadoexploitdbwww.exploit-db.com/exploits/47913no verificadogithubgithub.com/trustedsec/cve-2019-19781573githubgithub.com/projectzeroindia/CVE-2019-19781367githubgithub.com/mpgn/CVE-2019-19781158githubgithub.com/MalwareTech/CitrixHoneypot120githubgithub.com/cisagov/check-cve-2019-19781109githubgithub.com/mandiant/ioc-scanner-CVE-2019-1978194githubgithub.com/jas502n/CVE-2019-1978185githubgithub.com/citrix/ioc-scanner-CVE-2019-1978158githubgithub.com/aqhmal/CVE-2019-1978111githubgithub.com/w4fz5uck5/CVE-2019-19781-CitrixRCE10githubgithub.com/VladRico/CVE-2019-197817githubgithub.com/ianxtianxt/CVE-2019-197817githubgithub.com/unknowndevice64/Exploits_CVE-2019-197814githubgithub.com/onSec-fr/CVE-2019-19781-Forensic3githubgithub.com/k-fire/CVE-2019-19781-exploit3githubgithub.com/j81blog/ADC-197813githubgithub.com/andripwn/CVE-2019-197812githubgithub.com/DanielWep/CVE-NetScalerFileSystemCheck2githubgithub.com/oways/CVE-2019-197812githubgithub.com/nmanzi/webcvescanner1githubgithub.com/Vulnmachines/Ctirix_RCE-CVE-2019-197811githubgithub.com/r4ulcl/CVE-2019-197811githubgithub.com/redscan/CVE-2019-197811githubgithub.com/L4r1k/CitrixNetscalerAnalysis0githubgithub.com/jamesjguthrie/Shitrix-CVE-2019-197810githubgithub.com/hollerith/CVE-2019-197810githubgithub.com/Castaldio86/Detect-CVE-2019-197810githubgithub.com/awesome-security/citrixmash_scanner0githubgithub.com/b510/CVE-2019-197810githubgithub.com/Azeemering/CVE-2019-19781-DFIR-Notes0githubgithub.com/0xams/citrixvulncheck0githubgithub.com/EliusHHimel/citrix-honeypot0githubgithub.com/pwn3z/CVE-2019-19781-Citrix0githubgithub.com/zerobytesecure/CVE-2019-197810githubgithub.com/tpdlshdmlrkfmcla/CVE-2019-197810githubgithub.com/yukar1z0e/CVE-2019-197810githubgithub.com/becrevex/Citrix_CVE-2019-197810githubgithub.com/mekhalleh/citrix_dir_traversal_rce0githubgithub.com/zgelici/CVE-2019-19781-Checker0githubgithub.com/digitalshadows/CVE-2019-19781_IOCs0githubgithub.com/digitalgangst/massCitrix0githubgithub.com/darren646/CVE-2019-19781POC0githubgithub.com/Roshi99/Remote-Code-Execution-Exploit-for-Citrix-Application-Delivery-Controller-and-Citrix-Gateway-CVE-2010githubgithub.com/SharpHack/CVE-2019-197810githubgithub.com/qiong-qi/CVE-2019-19781-poc0githubgithub.com/autocode07/cisagov__check-cve-2019-19781.4142e02b0vulncheckvulncheck.com/xdb/88021ad0e77bno verificadovulncheckvulncheck.com/xdb/224739a35737no verificadovulncheckvulncheck.com/xdb/987910f7a39dno verificadovulncheckvulncheck.com/xdb/03c8862d3d11no verificadovulncheckvulncheck.com/xdb/ebfe92f86902no verificadovulncheckvulncheck.com/xdb/7ab2e8a707c8no verificadovulncheckvulncheck.com/xdb/02742865c3b9no verificadocve_referencepacketstormsecurity.com/files/155904/Citrix-Application-Delivery-Controller-Gateway-Remote-Code-Execution.htmlno verificadocve_referencepacketstormsecurity.com/files/155905/Citrix-Application-Delivery-Controller-Gateway-Remote-Code-Execution-Traversal.htmlno verificadocve_referencepacketstormsecurity.com/files/155930/Citrix-Application-Delivery-Controller-Gateway-10.5-Remote-Code-Execution.htmlno verificadovulncheckvulncheck.com/xdb/8d2aa3944ef3no verificadovulncheckvulncheck.com/xdb/d61ce8c7068dno verificadovulncheckvulncheck.com/xdb/1b40df6017f7no verificadovulncheckvulncheck.com/xdb/f2880bad85d1no verificadovulncheckvulncheck.com/xdb/74d8500487d8no verificadocve_referencepacketstormsecurity.com/files/155947/Citrix-ADC-NetScaler-Directory-Traversal-Remote-Code-Execution.htmlno verificadovulncheckvulncheck.com/xdb/9bc4ae3b0270no verificadocve_referencepacketstormsecurity.com/files/155972/Citrix-ADC-Gateway-Path-Traversal.htmlno verificadovulncheckvulncheck.com/xdb/5ebd889262c7no verificadovulncheckvulncheck.com/xdb/f641370d0cf1no verificadovulncheckvulncheck.com/xdb/5daef00ab695no verificadovulncheckvulncheck.com/xdb/34b27d809743no verificadovulncheckvulncheck.com/xdb/0b44b71192ddno verificadovulncheckvulncheck.com/xdb/553ce4defd35no verificadovulncheckvulncheck.com/xdb/83c11372ebebno verificadovulncheckvulncheck.com/xdb/d55aabb8e817no verificadovulncheckvulncheck.com/xdb/8effe2bc3955no verificadovulncheckvulncheck.com/xdb/a73543340d72no verificadovulncheckvulncheck.com/xdb/f3b2f3994c60no verificadovulncheckvulncheck.com/xdb/eea607d2d8a4no verificadovulncheckvulncheck.com/xdb/69c8311e600cno verificadovulncheckvulncheck.com/xdb/103163214ca9no verificadovulncheckvulncheck.com/xdb/bd1a9acc8fcfno verificado
⚠ Recursos públicos, para evaluar la exposición de sistemas que controlas o estás autorizado a probar. Prueba solo con autorización.