← voltar
CVE-2019-8394highsob ataqueCWE-434

CVE-2019-8394

98Vexday Risk Score

Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.

ssvc Actcvss 7.5epss 63%
da publicação à arma1 dias
Publicada no NVD17 de fev.
1ª PoC+1d
metasploit20 de ago.
CISA KEV+990d
probabilidade de exploração
63%top 1% das CVEs
exploração observada
simCISA + VulnCheck
2 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2022-05-03

Apply updates per vendor instructions.

Resumo

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.

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

Como é explorada

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.

Versões

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

Como se proteger

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.

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

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.
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
Produtos afetados
n/a · n/a
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.