
CVE-2026-3844 — Unauthenticated Arbitrary File Upload to RCE in Breeze Cache (WordPress). CVSS 9.8 CRITICAL. Mass scanner + auto shell injector with multi-threading.
╔════════════════════════════════════════════════════════════╗
║ CVE-2026-3844 ║
║ Breeze Cache <= 2.4.4 Arbitrary File Upload ║
║ Unauthenticated RCE | Authorized Lab Use Only ║
╚════════════════════════════════════════════════════════════╝
CVE-2026-3844 è una vulnerabilità di caricamento arbitrario di file che interessa le versioni vulnerabili del plugin WordPress Breeze Cache. Quando l'hosting locale di Gravatar è abilitato, Breeze può recuperare gli URL degli avatar e archiviare il file scaricato in una directory di cache accessibile via web senza validare adeguatamente il tipo di file.
Attacker-controlled avatar URL
|
v
WordPress renders an avatar
|
v
Breeze Gravatar local-cache handler
|
v
download_url() fetches the remote file
|
v
File is saved under wp-content/cache/breeze-extra/gravatars/
|
v
Web-accessible uploaded file
Il comportamento vulnerabile si trova nel flusso di caching di Gravatar di Breeze:
src dell'avatar viene accettato dal gestore Gravatar di Breeze.download_url() di WordPress.Area vulnerabile rilevante:
inc/class-breeze-cache-cronjobs.php
fetch_gravatar_from_remote()
Requisiti del target:
<= 2.4.4.Host Files Locally - Gravatars è abilitata.Note per il laboratorio locale:
git clone https://github.com/AnggaTechI/CVE-2026-3844.git
cd CVE-2026-3844
python3 --version
Non sono richiesti pacchetti Python di terze parti. Lo script utilizza solo moduli della libreria standard di Python.
Esegui lo strumento:
python3 exploit.py
Esempio con un singolo target:
[*] Target URL or file: http://localhost/lab-wp
Esempio con lista di target:
[*] Target URL or file: targets.txt
[*] Threads (default 30): 30
[*] Auto-inject on vulnerable? [y/N]: n
Esempio di output:
[+] Loaded 1 target(s)
[+] Scanning 1 targets with 30 threads
[+] [1/1] localhost/lab-wp -> v2.4.4 gravatar=ON
[+] VULNERABLE: 1/1
[+] Saved: result.txt
Lo script verifica se il target sembra essere WordPress, legge i metadati del plugin Breeze e confronta la versione rilevata con l'intervallo vulnerabile.
Lo script tenta di dedurre se l'hosting locale di Gravatar è abilitato verificando i riferimenti alla cache breeze-extra/gravatars di Breeze.
Quando l'auto-iniezione è abilitata, lo script tenta di verificare la sfruttabilità distribuendo un payload di test generato e controllando il suo marker.
Per i laboratori locali, lo script può utilizzare l'accesso diretto al filesystem quando riesce a identificare la root di WordPress. Per i test remoti autorizzati, avvia un server payload temporaneo e tenta di innescare il flusso di caching di Gravatar di Breeze.
A seconda della configurazione di WordPress, i file in cache possono apparire in una di queste forme:
/wp-content/cache/breeze-extra/gravatars/<filename>
/wp-content/cache/breeze-extra/gravatars/1/<filename>
Il primo percorso è comune nelle installazioni WordPress normali a sito singolo. Il secondo può apparire quando è incluso un ID di blog/sito.
Usa questa checklist quando testi in un laboratorio WordPress locale:
2.4.4 è installato.Host Files Locally - Gravatars è abilitata.wp-content/cache/breeze-extra/gravatars/.wp-content di WordPress.gravatar=OFF
Il plugin potrebbe essere attivo, ma Breeze non ha ancora generato i file di cache locali di Gravatar. Visita una pagina che visualizza avatar o chiama un percorso di rendering degli avatar di WordPress nel laboratorio.
not vulnerable
Le cause comuni sono versioni di Breeze patchate, Breeze non installato, WordPress non rilevato all'URL o il percorso target privo di una sottodirectory come /lab-wp.
Injection failed
L'impostazione di Gravatar potrebbe essere disabilitata, il sito potrebbe non visualizzare avatar pubblicamente, il percorso della cache potrebbe non essere scrivibile oppure l'URL del payload remoto potrebbe non essere raggiungibile dal server WordPress.
Questo repository è destinato a scopi educativi, riproduzione in laboratorio locale e test di sicurezza autorizzati. Non eseguirlo su sistemi che non possiedi o per i quali non hai esplicito permesso di testare.
| Campo | Dettaglio |
|---|
| CVE | CVE-2026-3844 |
| Prodotto | Breeze Cache, WordPress Cache Plugin |
| Fornitore | Cloudways |
| Tipo di vulnerabilità | Caricamento file senza restrizioni |
| CWE | CWE-434 |
| Gravità | Critica, CVSS 9.8 |
| Autenticazione | Non richiesta |
| Versioni interessate | Breeze Cache <= 2.4.4 |
| Versione corretta | 2.4.5 o successiva |
| Impostazione richiesta | Host Files Locally - Gravatars abilitata |