← back
CVE-2022-47966criticalunder attackransomwareCWE-20

CVE-2022-47966

100Vexday Risk Score

Patch now. It under exploitation confirmed by CISA, has a working public exploit and 1 threat group(s) use it.

ssvc Actcvss 9.8epss 100%
from disclosure to weapon0 days
Published on NVDJan 18
1st PoCJan 17
metasploitJan 10
CISA KEV+5d
exploitation probability
100%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
1 group(s)12 public exploit(s)
Who exploits it1

Groups known to exploit this vulnerability (MITRE ATT&CK attribution).

Action required by CISAfederal deadline: 2023-02-13

Apply updates per vendor instructions.

Summary

RCE pré-autenticação em mais de vinte produtos on-premise da linha ManageEngine (Zoho), incluindo ServiceDesk Plus, Endpoint Central, ADManager Plus e ADSelfService Plus, decorrente do uso da biblioteca Apache Santuario xmlsec (XML Security for Java) na versão 1.4.1 ou anterior no processamento de respostas SAML. A falha está na CISA KEV com exploração confirmada em campo e PoC pública funcional — é crítica onde SAML SSO está habilitado, mas essa configuração não padrão é o pré-requisito que a manchete de CVSS 9.8 esconde.

Technical detail

O núcleo do problema não é um bug de código no ManageEngine, e sim uma decisão de design do xmlsec 1.4.1: essa versão da biblioteca permite que transformações XSLT sejam executadas durante a validação de assinatura XML (dentro do fluxo de verificação de SAML Response), e delega explicitamente à aplicação que a usa a responsabilidade de restringir quais transformações e funções de extensão podem rodar. As versões dos produtos ManageEngine listadas embutem o xmlsec 1.4.1 sem implementar essas restrições — nenhuma validação de que o `` referenciado na assinatura XML é seguro, nenhum bloqueio a extension functions Java dentro do XSLT.

O efeito prático é um XML External/XSLT injection (CWE-611/CWE-91, dependendo de como se classifica a transformação) que desemboca em execução arbitrária de código Java, porque motores XSLT como o Xalan embutido no JDK permitem invocar métodos Java arbitrários via extension functions dentro do próprio stylesheet — incluindo `java.lang.Runtime`. Quem controla o corpo da SAML Response controla, portanto, o stylesheet XSLT processado durante a verificação da assinatura, e por extensão controla a execução de código no servidor.

O vetor de entrada é o endpoint de consumo de asserção SAML do produto (ex.: `/samlLogin/` em produtos ligados a Active Directory, ou `/SamlResponseServlet` em outros). Como a verificação de assinatura ocorre antes de qualquer autenticação de sessão — é o próprio mecanismo de login SSO — o atacante não precisa de credencial alguma; ele só precisa que o endpoint SAML esteja acessível e que o produto tenha SSO via SAML configurado.

O pesquisador da Viettel Cyber Security (Khoa Dha) documentou a causa raiz original em múltiplas versões do xmlsec; o Horizon3.ai publicou uma análise técnica própria e um PoC que confirma o padrão em pelo menos quatro produtos (ServiceDesk Plus, Endpoint Central, ADManager Plus, ADSelfService Plus), destacando que outros produtos da lista podem exigir bypass de validações adicionais específicas de cada aplicação.

How it’s exploited

A exploração publicada consiste em enviar uma SAML Response HTTP POST manipulada para o endpoint de login SAML do produto, contendo um ``/stylesheet XSLT malicioso no bloco de assinatura. Quando a biblioteca xmlsec processa essa assinatura para validá-la, executa o XSLT embutido, que por sua vez invoca uma extension function Java para rodar comando via `Runtime.exec`. Não é necessária nenhuma credencial válida nem sessão prévia — o vetor é a própria etapa de SSO que precede a autenticação de sessão. É por isso que o CVSS marca AV:N/PR:N/UI:N.

O pré-requisito real, ausente da descrição curta, é que o produto tenha SAML SSO habilitado e configurado — isso não é o padrão de fábrica na maioria das instalações ManageEngine, que costumam usar autenticação local ou LDAP/AD direto. Em produtos ligados a Active Directory (ex.: ADManager Plus), a exploração também exige conhecer ou adivinhar o valor de `issuer` configurado para o provedor de identidade, o que em geral está em texto claro na configuração do IdP ou é obtido por reconhecimento prévio do ambiente. Para produtos que fazem validações adicionais sobre a SAML Response, a exploração direta do PoC publicado pode não funcionar sem engenharia reversa adicional daquele binário específico — o Horizon3.ai é explícito sobre essa limitação.

A CISA confirma exploração ativa no mundo real (entrada no catálogo KEV), e existe módulo Metasploit e template Nuclei disponíveis, o que baixa bastante a barreira técnica para quem só precisa varrer a internet por instâncias com SSO habilitado. O resultado final, quando bem-sucedido, é execução de código arbitrário com os privilégios do processo do serviço ManageEngine — tipicamente SYSTEM/Administrator no Windows, dado como esses produtos costumam ser instalados.

Versions

Affected
Apache Santuario xmlsec (XML Security for Java) 1.4.1 e anteriores, embutido nos seguintes produtos ManageEngine on-premise: Access Manager Plus anterior a 4308; Active Directory 360 anterior a 4310; ADAudit Plus anterior a 7081; ADManager Plus anterior a 7162; ADSelfService Plus anterior a 6211; Analytics Plus anterior a 5150; Application Control Plus anterior a 10.1.2220.18; Asset Explorer anterior a 6983; Browser Security Plus anterior a 11.1.2238.6; Device Control Plus anterior a 10.1.2220.18; Endpoint Central anterior a 10.1.2228.11; Endpoint Central MSP anterior a 10.1.2228.11; Endpoint DLP anterior a 10.1.2137.6; Key Manager Plus anterior a 6401; OS Deployer anterior a 1.1.2243.1; PAM360 anterior a 5713; Password Manager Pro anterior a 12124; Patch Manager Plus anterior a 10.1.2220.18; Remote Access Plus anterior a 10.1.2228.11; RMM anterior a 10.1.41; ServiceDesk Plus até 14003; ServiceDesk Plus MSP anterior a 13001; SupportCenter Plus anterior a 11026.
Fixed in
Access Manager Plus 4308+; Active Directory 360 4310+; ADAudit Plus 7081+; ADManager Plus 7162+; ADSelfService Plus 6211+; Analytics Plus 5150+; Application Control Plus 10.1.2220.18+; Asset Explorer 6983+; Browser Security Plus 11.1.2238.6+; Device Control Plus 10.1.2220.18+; Endpoint Central 10.1.2228.11+; Endpoint Central MSP 10.1.2228.11+; Endpoint DLP 10.1.2137.6+; Key Manager Plus 6401+; OS Deployer 1.1.2243.1+; PAM360 5713+; Password Manager Pro 12124+; Patch Manager Plus 10.1.2220.18+; Remote Access Plus 10.1.2228.11+; RMM 10.1.41+; ServiceDesk Plus 14004+; ServiceDesk Plus MSP 13001+; SupportCenter Plus 11026+.

How to protect

A mitigação definitiva é atualizar cada produto afetado para a versão corrigida publicada pelo fornecedor (lista abaixo, específica por produto — não existe uma versão-corte única porque cada linha do ManageEngine tem seu próprio ciclo de build). Isso substitui ou corrige o uso do xmlsec vulnerável e adiciona as validações que a versão 1.4.1 da biblioteca deixava a cargo da aplicação.

Se a atualização imediata não for possível, o paliativo real é desabilitar SAML SSO no produto — isso remove o endpoint de consumo de asserção usado como vetor, ao custo de forçar autenticação local ou outro mecanismo de login enquanto o patch não é aplicado. Restringir acesso de rede ao endpoint SAML (firewall, allowlist de IPs de IdP conhecidos) reduz a superfície mas não elimina o risco caso o atacante tenha posição de rede interna, que é o cenário mais comum para produtos ManageEngine expostos apenas internamente.

WAF genérico não é mitigação confiável aqui: o payload malicioso fica embutido dentro de um XML assinado (SAML Response), estruturalmente complexo, e regras de assinatura baseadas em palavras-chave simples tendem a gerar falsos negativos ou exigir parsing XML profundo que a maioria dos WAFs de borda não faz por padrão.

How to detect

Procurar em logs de aplicação do produto ManageEngine por requisições POST aos endpoints de consumo SAML (padrões como `/samlLogin/` ou `/SamlResponseServlet`) contendo blocos XML com ``, `` referenciando XSLT, ou strings associadas a extension functions Java (ex.: referências a `java.lang.Runtime`, `java.lang.ProcessBuilder`) dentro do corpo da asserção — isso não é tráfego SAML legítimo. Erros ou stack traces de parsing XML/XSLT nos logs do produto em torno do horário de tentativas de login SSO também são indício, especialmente se acompanhados de processos filho anômalos (cmd.exe, powershell.exe, bash, ou binários incomuns) sendo criados pelo processo Java do serviço ManageEngine — o Horizon3.ai publicou um guia de IOCs específico para essa cadeia. Não existe um padrão de assinatura de rede único e confiável para todos os produtos, porque cada aplicação valida a SAML Response de forma um pouco diferente; a ausência de erro nos logs não garante ausência de exploração bem-sucedida.

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.
Multiple Zoho ManageEngine on-premise products, such as ServiceDesk Plus through 14003, allow remote code execution due to use of Apache Santuario xmlsec (aka XML Security for Java) 1.4.1, because the xmlsec XSLT features, by design in that version, make the application responsible for certain security protections, and the ManageEngine applications did not provide those protections. This affects Access Manager Plus before 4308, Active Directory 360 before 4310, ADAudit Plus before 7081, ADManager Plus before 7162, ADSelfService Plus before 6211, Analytics Plus before 5150, Application Control Plus before 10.1.2220.18, Asset Explorer before 6983, Browser Security Plus before 11.1.2238.6, Device Control Plus before 10.1.2220.18, Endpoint Central before 10.1.2228.11, Endpoint Central MSP before 10.1.2228.11, Endpoint DLP before 10.1.2137.6, Key Manager Plus before 6401, OS Deployer before 1.1.2243.1, PAM 360 before 5713, Password Manager Pro before 12124, Patch Manager Plus before 10.1.2220.18, Remote Access Plus before 10.1.2228.11, Remote Monitoring and Management (RMM) before 10.1.41. ServiceDesk Plus before 14004, ServiceDesk Plus MSP before 13001, SupportCenter Plus before 11026, and Vulnerability Manager Plus before 10.1.2220.18. Exploitation is only possible if SAML SSO has ever been configured for a product (for some products, exploitation requires that SAML SSO is currently active).
CVSS:3.1/AV:N/AC:L/PR:N/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.