← back
CVE-2019-12991highunder attackCWE-78

CVE-2019-12991

93Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.

ssvc Actcvss 8.8epss 74%
from disclosure to weapon0 days
Published on NVDJul 16
1st PoCJul 12
CISA KEV+983d
exploitation probability
74%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
2 public exploit(s)
Action required by CISAfederal deadline: 2022-04-15

Apply updates per vendor instructions.

Summary

Falha de injeção de comando autenticada no script installpatch.cgi dos appliances Citrix SD-WAN e NetScaler SD-WAN, permitindo execução de comandos como root através do parâmetro 'installfile'. O CVSS 8.8 já reflete a necessidade de autenticação prévia, mas o risco real é maior: pesquisadores da Tenable demonstraram que essa falha pode ser encadeada com uma SQL injection não autenticada (CVE-2019-12989) no mesmo produto para obter um token de sessão válido e, na prática, alcançar execução remota de comando sem credenciais.

Technical detail

O script installpatch.cgi (Perl, CGI) recebe o parâmetro 'installfile' e o passa, sem sanitização, para uma chamada da função system(). Isso é um caso clássico de CWE-78 (OS Command Injection): qualquer metacaractere de shell — crase, ponto e vírgula, pipe — incluído no valor do parâmetro é interpretado pelo interpretador de comandos do sistema operacional, e não apenas como dado da aplicação.

O processo do appliance que executa esse script roda com privilégios de root, então o comando injetado herda esse privilégio — não há etapa de elevação de privilégio necessária depois da injeção.

A descrição oficial da Citrix trata isso como 'issue 5 of 6' de um conjunto de falhas de validação de entrada corrigidas no mesmo ciclo (10.0.8 / 10.2.3). O advisory da Tenable (TRA-2019-32) documenta esse item especificamente como CVE-2019-12991 dentro de um pacote de vulnerabilidades relacionadas no mesmo appliance, incluindo uma SQL injection não autenticada (CVE-2019-12989) que serve de vetor de bypass de autenticação.

How it’s exploited

Pré-requisito formal: sessão autenticada (token válido, referenciado no PoC como parâmetro 'swc-token'). Com esse token, o atacante envia uma requisição HTTP ao endpoint /cgi-bin/installpatch.cgi com o parâmetro 'installfile' contendo um comando entre crases, executado diretamente via system() com privilégios de root — resultado: shell reversa ou execução arbitrária de comando no appliance.

O ponto que a manchete e o CVSS (PR:L) não deixam claro: a Tenable demonstrou que a exigência de autenticação pode ser contornada sem credenciais válidas, explorando a SQL injection não autenticada em getpackagefile.cgi (CVE-2019-12989) para gravar um arquivo de token diretamente no diretório usado pela aplicação para validar sessões. Isso transforma a cadeia completa em um exploit remoto, não autenticado, ponta a ponta — de rede à raiz do sistema. É essa combinação que motivou a Tenable a classificar o conjunto como 'Critical'.

A vulnerabilidade está no catálogo KEV da CISA (adicionada em 2022-03-25, prazo de correção 2022-04-15), confirmando exploração ativa observada, e há prova de conceito pública desde 2019 (advisory da Tenable e publicação no Packet Storm), o que reduz a complexidade prática para qualquer atacante que já tenha acesso à interface administrativa do appliance.

Versions

Affected
Citrix SD-WAN 10.2.x anteriores à 10.2.3; NetScaler SD-WAN 10.0.x anteriores à 10.0.8 (descrição oficial). O advisory da Tenable também lista NetScaler SD-WAN 9.x e Citrix SD-WAN 10.1.x entre os produtos afetados pelo conjunto de vulnerabilidades relacionadas, sem detalhar versão de correção específica para esses ramos nas fontes disponíveis.
Fixed in
NetScaler SD-WAN 10.0.8 e Citrix SD-WAN 10.2.3, conforme indicado pela Citrix e confirmado pela Tenable como corrigindo todos os itens do lote de vulnerabilidades (incluindo CVE-2019-12991).

How to protect

A correção definitiva é atualizar para as versões corrigidas pela Citrix: NetScaler SD-WAN 10.0.8 ou superior, e Citrix SD-WAN 10.2.3 ou superior (ramo 10.1.x também é citado como afetado no advisory da Tenable, sem versão de correção específica detalhada nas fontes disponíveis). Não há flag de configuração ou workaround documentado pelo fornecedor que neutralize a falha em versões vulneráveis — o problema está no código do script CGI, e só é removido pelo patch.

Como controle compensatório, restringir o acesso à interface de gerência/API do appliance (a porta onde os endpoints /cgi-bin/ e /sdwan/nitro/ residem) a redes de gerência confiáveis e segmentadas reduz a superfície de ataque, mas não elimina o risco: se a falha de SQL injection associada (CVE-2019-12989) também estiver acessível na mesma superfície, um atacante com acesso de rede ainda pode montar a cadeia completa sem credenciais. Trocar senhas de administrador ou impor MFA no painel não mitiga esta CVE especificamente, porque o bypass de autenticação documentado não depende de credenciais fracas — depende de uma falha de validação de entrada em outro endpoint.

How to detect

Em logs do servidor web do appliance, procurar requisições a /cgi-bin/installpatch.cgi contendo o parâmetro 'installfile' com metacaracteres de shell (crase, ponto e vírgula, pipe, $() ) — esse padrão não tem uso legítimo normal e é forte indício de tentativa de exploração. Correlacionar com requisições anteriores ao endpoint /sdwan/nitro/v1/config/get_package_file com payloads de SQL injection no campo 'site_name' e cabeçalho SSL_CLIENT_VERIFY forjado como 'SUCCESS', que é o padrão documentado para obter o bypass de autenticação anterior à injeção de comando.

No host, monitorar processos filhos inesperados originados do processo do CGI (por exemplo, shells, netcat, conexões de saída não usuais) executando como root, e a criação de arquivos de token fora do fluxo normal de login em diretórios temporários do sistema.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
Citrix SD-WAN 10.2.x before 10.2.3 and NetScaler SD-WAN 10.0.x before 10.0.8 have Improper Input Validation (issue 5 of 6).
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Affected products
n/a · n/a
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.