← volver
CVE-2019-8394highbajo ataqueCWE-434

CVE-2019-8394

98Vexday Risk Score

Corrige ahora. Ella está bajo explotación confirmada por CISA y tiene exploit funcional público.

ssvc Actcvss 7.5epss 63%
de la publicación al arma1 días
Publicada en NVD17 feb
1ª PoC+1d
metasploit20 ago
CISA KEV+990d
probabilidad de explotación
63%top 1% de las CVE
explotación observada
CISA + VulnCheck
2 exploit(s) público(s)
Acción exigida por CISAplazo federal: 2022-05-03

Apply updates per vendor instructions.

Resumen

Falha de upload de arquivo arbitrário no ManageEngine ServiceDesk Plus (SDP) que permite depositar um webshell JSP no servidor através da funcionalidade de personalização da página de login. Está no catálogo KEV da CISA desde novembro de 2021, tem exploit público desde o dia seguinte à divulgação e módulo Metasploit — ou seja, é trivial de operacionalizar por qualquer atacante com as condições de acesso certas.

Detalle técnico

A vulnerabilidade (CWE-434, Unrestricted Upload of File with Dangerous Type) está no endpoint /common/FileAttachment.jsp. Segundo a análise do pesquisador que publicou o PoC, na linha 332 desse arquivo a validação de extensão de upload só é aplicada quando o parâmetro 'module' da requisição é igual a 'SSP', 'DashBoard' ou 'HomePage'. Quando o atacante define module=CustomLogin — o fluxo usado para personalizar a página de login com logo, HTML etc. — essa checagem é completamente pulada.

Com module=CustomLogin, o arquivo enviado é gravado diretamente na pasta /custom/login/ do servidor, sem qualquer filtro de extensão ou de conteúdo. Como essa pasta é servida publicamente pela aplicação web, um arquivo .jsp depositado ali fica acessível e executável via host:porta/custom/login/nomedoarquivo — dando execução de código no contexto do servidor de aplicação.

O atacante controla três coisas: o valor do campo 'module' na requisição multipart, o nome do arquivo (extensão .jsp) e o conteúdo do arquivo — que pode ser um webshell completo. Não há sanitização de path nem de tipo MIME nesse fluxo específico, apenas nos outros três valores de 'module' listados.

Cómo se explota

O PoC público envia uma requisição POST multipart para /common/FileAttachment.jsp com module=CustomLogin e um arquivo com extensão .jsp anexado, seguida do acesso direto à URL resultante para executar o webshell. Isso dá execução remota de código sobre o servidor onde o SDP está instalado.

Aqui está o ponto que a manchete e o CVSS (PR:N) escondem: a descrição técnica do próprio autor do exploit afirma que é necessário um usuário autenticado, mesmo que com permissão mínima (o exemplo dado é 'guest'). Isso é uma exigência real de pré-condição que o vetor CVSS 3.1 publicado (AV:N/AC:L/PR:N/UI:N) não reflete adequadamente — divergência entre o que o CVSS registra e o que o pesquisador demonstrou. Em instalações que permitem auto-registro de usuários, contas de convidado padrão, ou portal de autoatendimento aberto, a barreira de autenticação praticamente desaparece.

A presença no catálogo KEV da CISA confirma exploração ativa em campanhas reais, embora a CISA não detalhe atores ou volume. A combinação de PoC público, módulo Metasploit disponível e exposição comum do SDP à internet (é uma ferramenta de service desk frequentemente publicada para acesso externo de técnicos e usuários) torna a barra de exploração baixa para quem já tem qualquer credencial válida no sistema.

Versiones

Afectadas
ManageEngine ServiceDesk Plus (SDP) versão 9.4 e 10.0 em builds anteriores à 10.0 build 10012, segundo o exploit publicado. A descrição oficial do CVE cita apenas 'before 10.0 build 10012'.
Corregidas en
10.0 build 10012 e versões posteriores. Não foi possível confirmar nas fontes consultadas builds específicas de correção além dessa referência.

Cómo protegerse

A correção do fornecedor é atualizar para a build 10012 da série 10.0 do ServiceDesk Plus ou posterior — a numeração exata de builds subsequentes não foi confirmada nas fontes consultadas, então a orientação prática é aplicar a versão mais recente disponível no canal oficial de atualizações do produto e confirmar que a build instalada é igual ou superior a 10.0.10012. A entrada no KEV da CISA recomenda genericamente 'aplicar atualizações conforme instruções do fornecedor', sem detalhar versão-alvo.

Se a atualização imediata não for viável, um controle compensatório é restringir ou desabilitar a funcionalidade de personalização da página de login (CustomLogin) até a atualização, e bloquear via proxy/WAF requisições POST para /common/FileAttachment.jsp que contenham module=CustomLogin com anexos de extensão .jsp/.jspx/.war. Também vale auditar e remover manualmente qualquer arquivo inesperado em custom/login/ no servidor.

O que não funciona como mitigação: restringir apenas o acesso de usuários administrativos, já que o vetor documentado funciona com contas de permissão mínima (guest). Também não basta bloquear a extensão .jsp no upload via frontend, pois a falha está na ausência de validação no lado servidor — qualquer controle precisa atuar na própria requisição HTTP recebida pelo endpoint.

Cómo detectar

Procurar em logs de acesso web por requisições POST para /common/FileAttachment.jsp contendo o parâmetro module=CustomLogin acompanhadas de upload de arquivo com extensão .jsp, .jspx ou .war — esse padrão é o indicador mais direto de tentativa de exploração, replicando exatamente a estrutura do PoC público. Complementarmente, verificar a pasta custom/login/ no servidor por arquivos com extensões de script (.jsp, .jspx) que não correspondam a assets legítimos de personalização (imagens, CSS, HTML estático).

Não há assinatura de rede canônica publicada pelo fornecedor para essa falha; a detecção depende de logging de aplicação e da inspeção do diretório de upload, já que o tráfego HTTP em si (multipart POST) não difere estruturalmente de um upload de logo legítimo além do nome/extensão do arquivo e do valor do parâmetro module.

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.
Zoho ManageEngine ServiceDesk Plus (SDP) before 10.0 build 10012 allows remote attackers to upload arbitrary files via login page customization.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Productos afectados
n/a · n/a
⚠ Recursos públicos, para evaluar la exposición de sistemas que controlas o estás autorizado a probar. Prueba solo con autorización.