← voltar
CVE-2019-19781criticalsob ataqueransomwareCWE-22

CVE-2019-19781

100Vexday Risk Score

Corrija agora. Ela está sob exploração confirmada pelo CISA, tem exploit funcional público e 3 grupo(s) de ameaça a utilizam.

ssvc Actcvss 9.8epss 100%
da publicação à arma14 dias
Publicada no NVD27 de dez.
1ª PoC+14d
metasploit17 de dez.
CISA KEV+677d
probabilidade de exploração
100%top 1% das CVEs
exploração observada
simCISA + VulnCheck
3 grupo(s)82 exploit(s) público(s)
Quem explora3

Grupos conhecidos por explorar esta vulnerabilidade (atribuição MITRE ATT&CK).

Ação exigida pela CISAprazo federal: 2022-05-03

Apply updates per vendor instructions.

Resumo

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.

Detalhamento 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.

Como é explorada

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.

Versões

Afetadas
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.
Corrigidas em
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.

Como se proteger

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.

Como 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.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
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
Produtos afetados
n/a · n/a
PoCs públicas encontradas82
exploitdbwww.exploit-db.com/exploits/47901não verificadoexploitdbwww.exploit-db.com/exploits/47930não verificadoexploitdbwww.exploit-db.com/exploits/47913não 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/88021ad0e77bnão verificadovulncheckvulncheck.com/xdb/224739a35737não verificadovulncheckvulncheck.com/xdb/987910f7a39dnão verificadovulncheckvulncheck.com/xdb/03c8862d3d11não verificadovulncheckvulncheck.com/xdb/ebfe92f86902não verificadovulncheckvulncheck.com/xdb/7ab2e8a707c8não verificadovulncheckvulncheck.com/xdb/02742865c3b9não verificadocve_referencepacketstormsecurity.com/files/155904/Citrix-Application-Delivery-Controller-Gateway-Remote-Code-Execution.htmlnão verificadocve_referencepacketstormsecurity.com/files/155905/Citrix-Application-Delivery-Controller-Gateway-Remote-Code-Execution-Traversal.htmlnão verificadocve_referencepacketstormsecurity.com/files/155930/Citrix-Application-Delivery-Controller-Gateway-10.5-Remote-Code-Execution.htmlnão verificadovulncheckvulncheck.com/xdb/8d2aa3944ef3não verificadovulncheckvulncheck.com/xdb/d61ce8c7068dnão verificadovulncheckvulncheck.com/xdb/1b40df6017f7não verificadovulncheckvulncheck.com/xdb/f2880bad85d1não verificadovulncheckvulncheck.com/xdb/74d8500487d8não verificadocve_referencepacketstormsecurity.com/files/155947/Citrix-ADC-NetScaler-Directory-Traversal-Remote-Code-Execution.htmlnão verificadovulncheckvulncheck.com/xdb/9bc4ae3b0270não verificadocve_referencepacketstormsecurity.com/files/155972/Citrix-ADC-Gateway-Path-Traversal.htmlnão verificadovulncheckvulncheck.com/xdb/5ebd889262c7não verificadovulncheckvulncheck.com/xdb/f641370d0cf1não verificadovulncheckvulncheck.com/xdb/5daef00ab695não verificadovulncheckvulncheck.com/xdb/34b27d809743não verificadovulncheckvulncheck.com/xdb/0b44b71192ddnão verificadovulncheckvulncheck.com/xdb/553ce4defd35não verificadovulncheckvulncheck.com/xdb/83c11372ebebnão verificadovulncheckvulncheck.com/xdb/d55aabb8e817não verificadovulncheckvulncheck.com/xdb/8effe2bc3955não verificadovulncheckvulncheck.com/xdb/a73543340d72não verificadovulncheckvulncheck.com/xdb/f3b2f3994c60não verificadovulncheckvulncheck.com/xdb/eea607d2d8a4não verificadovulncheckvulncheck.com/xdb/69c8311e600cnão verificadovulncheckvulncheck.com/xdb/103163214ca9não verificadovulncheckvulncheck.com/xdb/bd1a9acc8fcfnão verificado
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.