← volver
CVE-2022-26352criticalbajo ataqueransomware

CVE-2022-26352

100Vexday Risk Score

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

ssvc Actcvss 9.8epss 91%
de la publicación al arma0 días
Publicada en NVD17 jul
metasploit3 may
CISA KEV+39d
probabilidad de explotación
91%top 1% de las CVE
explotación observada
CISA + VulnCheck
1 exploit(s) público(s)
Acción exigida por CISAplazo federal: 2022-09-15

Apply updates per vendor instructions.

Resumen

Falha de path traversal na API ContentResource do dotCMS (versões 3.0 a 22.02) permite que o nome de arquivo enviado em um upload multipart escape do diretório de armazenamento de assets e grave o arquivo em outro local do sistema de arquivos. Se o tipo de conteúdo alvo tiver permissão de criação anônima habilitada, um atacante sem autenticação pode depositar um arquivo executável (ex.: .jsp) e obter execução remota de código. O CVSS 9.8 reflete o cenário sem autenticação; em instalações onde a criação anônima de conteúdo está desabilitada (o padrão em muitos deployments corporativos), a exploração exige um usuário autenticado com permissão de escrita de conteúdo, o que reduz bastante o risco real.

Detalle técnico

O problema está no endpoint de upload de arquivos binários da ContentResource API (REST), usado para associar um arquivo a um campo de conteúdo via requisição multipart/form-data. O nome do arquivo enviado pelo cliente é usado para compor o caminho final de gravação sem normalização prévia contra sequências de travessia de diretório (../), classificando-se como CWE-22 (Path Traversal), combinado com CWE-434/ausência de validação de tipo de arquivo — a CISA classifica o par como CWE-22 e CWE-138 no KEV.

Cómo se explota

O vetor é uma requisição POST multipart contra a API ContentResource (endpoint de conteúdo do dotCMS) contendo uma parte de arquivo cujo campo de nome inclui sequências de travessia de diretório. O servidor grava o arquivo no caminho resultante sem restringi-lo ao repositório de assets, podendo posicioná-lo dentro da árvore da aplicação web servida pelo container servlet. Se a extensão escolhida for .jsp (ou outra reconhecida pelo container como executável) e o local de gravação estiver dentro de um diretório servido publicamente, uma requisição HTTP subsequente para esse arquivo executa código arbitrário com os privilégios do processo do dotCMS/Tomcat.

O pré-requisito decisivo, presente na própria descrição oficial, é o estado da permissão "criação de conteúdo anônima" (CMS Anonymous) sobre o tipo de conteúdo alvo. Com essa permissão concedida — configuração usada em sites que expõem formulários públicos ou envio de arquivos por visitantes não autenticados — o ataque é totalmente pré-autenticação. Sem ela, o atacante precisa de credenciais válidas com permissão de escrita de conteúdo, o que muda o vetor de "crítico remoto anônimo" para "escalonamento por usuário autenticado de baixo privilégio".

Há exploração confirmada: a CVE está no catálogo KEV da CISA desde 25/08/2022 (prazo de correção 15/09/2022), existe PoC pública (via SSD Secure Disclosure/PacketStorm), módulo Metasploit e template Nuclei, o que torna a varredura e exploração em massa triviais para quem tem acesso à API exposta na internet.

Versiones

Afectadas
dotCMS 3.0 até 22.02 (conforme descrição oficial da CVE).
Corregidas en
Não confirmado com o texto integral do advisory do fornecedor nas fontes consultadas; a CISA referencia o advisory dotCMS SI-62 como fonte da correção. Antes de considerar o ambiente corrigido, verifique diretamente a nota de release/advisory do fornecedor para a versão que resolve o CVE-2022-26352.

Cómo protegerse

A correção definitiva é atualizar o dotCMS para uma versão além de 22.02, que corrige a sanitização do nome de arquivo na ContentResource API — o advisório do fornecedor (SI-62, referenciado pela CISA) trata dessa versão corrigida; confirme o número exato de build na nota de release do seu ramo antes de considerar o ambiente corrigido, pois a fonte consultada aqui não trouxe o texto completo do advisory com o número de versão.

Se a atualização não for possível de imediato, o paliativo real é remover/negar a permissão de criação de conteúdo anônima ("CMS Anonymous") em todos os tipos de conteúdo que aceitam upload de arquivo, e restringir o acesso de rede ao endpoint da ContentResource API a clientes confiáveis. Um WAF ou proxy reverso pode bloquear requisições multipart cujo campo de nome de arquivo contenha sequências de travessia (../, codificações equivalentes), mas isso é controle compensatório, não correção — variações de encoding podem contornar filtros ingênuos.

Não funciona como mitigação apenas desabilitar a execução de JSP no container: dependendo da configuração, outras extensões executáveis (scripts, arquivos de configuração de deploy) podem ser usadas como vetor secundário, e o problema de fundo — gravação fora do diretório pretendido — continua presente.

Cómo detectar

Procure por requisições POST/PUT com Content-Type multipart/form-data direcionadas ao endpoint de conteúdo da ContentResource API (ex.: caminhos sob /api/content) contendo, no campo de nome de arquivo da parte multipart, sequências de travessia de diretório (../, %2e%2e%2f e variantes de encoding). No sistema de arquivos, sinal forte é o aparecimento de arquivos .jsp (ou outras extensões executáveis) fora da estrutura normal de assets do dotCMS, especialmente dentro da árvore do webapp servida pelo container. Correlacione com uma requisição GET subsequente ao mesmo caminho retornando 200 — padrão típico de webshell dropado seguido de acesso de verificação/execução. Não há assinatura única confiável sem visibilidade dos logs de aplicação do dotCMS; ambientes que só logam no nível do proxy podem não capturar o payload multipart completo.

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.
An issue was discovered in the ContentResource API in dotCMS 3.0 through 22.02. Attackers can craft a multipart form request to post a file whose filename is not initially sanitized. This allows directory traversal, in which the file is saved outside of the intended storage location. If anonymous content creation is enabled, this allows an unauthenticated attacker to upload an executable file, such as a .jsp file, that can lead to remote code execution.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
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.