← voltar
CVE-2019-9874criticalsob ataqueCWE-502

CVE-2019-9874

95Vexday Risk Score

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

ssvc Actcvss 9.8epss 84%
da publicação à arma
Publicada no NVD31 de mai.
CISA KEV+2126d
probabilidade de exploração
84%top 1% das CVEs
exploração observada
simCISA + VulnCheck
Ação exigida pela CISAprazo federal: 2025-04-16

Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.

Resumo

Falha de desserialização insegura (CWE-502) no módulo Sitecore.Security.AntiCSRF do Sitecore CMS e Sitecore XP, que permite a um atacante não autenticado executar código arbitrário no servidor enviando um objeto .NET serializado no parâmetro POST __CSRFTOKEN. O CVSS 9.8 reflete a realidade: não exige autenticação, não exige configuração especial e o vetor é a rede — por isso está no catálogo KEV da CISA com exploração confirmada, mesmo tendo sido publicada em 2019.

Detalhamento técnico

O mecanismo de proteção anti-CSRF do Sitecore usa o campo __CSRFTOKEN, enviado no corpo de requisições POST, para validar que o formulário foi originado pela própria aplicação. Nas versões afetadas, o valor recebido nesse campo é desserializado diretamente como um objeto .NET, sem validação de tipo ou de origem antes de reconstituir o objeto na memória do processo do IIS/ASP.NET.

Esse padrão é o clássico problema de desserialização insegura em .NET: qualquer stream binário que o framework de serialização (tipicamente BinaryFormatter/ObjectStateFormatter, conforme a documentação técnica da falha) consiga desserializar pode instanciar tipos arbitrários presentes no AppDomain, incluindo tipos de bibliotecas do próprio Sitecore ou do .NET Framework que, quando construídos ou destruídos, disparam efeitos colaterais — os chamados "gadgets". Encadeando gadgets adequados, o atacante obtém execução de código no contexto do processo web, sem precisar de nenhuma sessão, cookie válido ou credencial.

O ponto crítico é que o próprio mecanismo criado para mitigar CSRF se tornou o vetor de RCE: o token deveria ser um valor opaco e verificado, mas era tratado como um blob de dados confiável a ser reconstruído em objeto. Isso caracteriza falha de design (confiar em dado controlado pelo cliente para operação de desserialização) e não um bug isolado de implementação.

Como é explorada

O vetor é uma requisição HTTP POST comum, para qualquer endpoint do Sitecore que processe o token anti-CSRF, contendo no parâmetro __CSRFTOKEN um payload serializado construído com uma cadeia de gadgets .NET conhecida publicamente (o tipo de payload gerado por ferramentas de geração de gadget chains para .NET). Não há necessidade de autenticação, de acesso prévio ao painel administrativo, nem de configuração não padrão — a superfície é a instalação padrão do Sitecore CMS/XP nas versões afetadas exposta à internet.

A complexidade de exploração depende da disponibilidade pública de gadget chains compatíveis com as bibliotecas carregadas pelo Sitecore; uma vez identificada uma cadeia funcional, o ataque é replicável em massa contra instâncias não corrigidas, o que explica a inclusão no catálogo KEV da CISA anos após a divulgação original — sinal de campanhas de exploração automatizada continuando a varrer a internet por instâncias antigas.

O resultado final é execução de código arbitrário no contexto do worker process do IIS que hospeda o Sitecore, tipicamente equivalente a comprometimento total do servidor de aplicação (leitura/escrita de arquivos, pivotagem na rede interna, acesso a bancos de dados de conteúdo e segurança do Sitecore).

Versões

Afetadas
Sitecore CMS 7.0 a 7.2; Sitecore XP 7.5 a 8.2 (conforme descrição oficial do CVE).
Corrigidas em
Sitecore publicou patches de segurança específicos por versão para as linhas afetadas, distribuídos como hotfix e documentados no artigo KB0334035 do suporte da Sitecore. As fontes revisadas não confirmam os números de build exatos de cada patch; é necessário validar a versão corrigida específica diretamente no portal de suporte/downloads da Sitecore para a instalação em questão.

Como se proteger

A correção definitiva é aplicar o patch de segurança do fornecedor para a versão instalada. A Sitecore distribuiu esses patches como hotfixes específicos por versão (não como um novo número de release), documentados no artigo de suporte KB0334035; as fontes analisadas não trazem os números de build individuais de cada patch, então é necessário consultar diretamente o portal de suporte da Sitecore para o pacote correspondente à versão exata em uso (7.0, 7.1, 7.2, ou XP 7.5 até 8.2).

Se a atualização imediata não for viável, a CISA (via KEV) recomenda aplicar as mitigações do fornecedor ou, na ausência delas, descontinuar o uso do produto exposto — não há uma mitigação compensatória documentada e confiável (como uma flag de configuração que desative a desserialização) nas fontes disponíveis. Um WAF capaz de inspecionar o corpo de requisições POST e bloquear payloads binários/serializados no campo __CSRFTOKEN reduz a superfície, mas é paliativo, não correção: gadgets podem ser codificados de formas que escapam de assinaturas simples.

Instâncias muito antigas do Sitecore 7.x sem suporte comercial ativo podem não ter patch disponível para download público — nesse caso a única mitigação real é isolar o sistema da rede ou desativá-lo, conforme a orientação padrão da CISA para produtos sem correção disponível.

Como detectar

Em logs de acesso web, procurar requisições POST para endpoints do Sitecore contendo o parâmetro __CSRFTOKEN com valores muito maiores que um token opaco típico, ou contendo padrões binários/base64 característicos de streams de serialização .NET (por exemplo, cabeçalhos típicos de BinaryFormatter). Tentativas de exploração tendem a gerar exceções de desserialização ou erros 500 no log de aplicação do IIS/ASP.NET no momento em que o gadget chain falha ou é incompatível com a versão exata carregada.

Não há um indicador de rede único e confiável além do conteúdo do próprio parâmetro, já que a requisição em si é um POST HTTP legítimo em formato; regras de WAF/IDS voltadas a detectar assinaturas de deserialização .NET (magic bytes de formatação binária) são o sinal mais próximo de detecção proativa disponível, mas payloads podem ser ofuscados para evitar essas assinaturas.

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.
Deserialization of Untrusted Data in the Sitecore.Security.AntiCSRF (aka anti CSRF) module in Sitecore CMS 7.0 to 7.2 and Sitecore XP 7.5 to 8.2 allows an unauthenticated attacker to execute arbitrary code by sending a serialized .NET object in the HTTP POST parameter __CSRFTOKEN.
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