
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 ║
╚════════════════════════════════════════════════════════════╝
Bei CVE-2026-3844 handelt es sich um eine Schwachstelle zum Hochladen beliebiger Dateien, die verwundbare Versionen des WordPress-Plugins Breeze Cache betrifft. Wenn lokales Gravatar-Hosting aktiviert ist, kann Breeze Avatar-URLs abrufen und die heruntergeladene Datei in einem öffentlich zugänglichen Cache-Verzeichnis speichern, ohne den Dateityp ausreichend zu validieren.
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
Das verwundbare Verhalten liegt im Gravatar-Caching-Ablauf von Breeze:
src-URL wird vom Breeze-Gravatar-Handler akzeptiert.download_url() heruntergeladen.Relevanter verwundbarer Bereich:
inc/class-breeze-cache-cronjobs.php
fetch_gravatar_from_remote()
Anforderungen an das Ziel:
<= 2.4.4.Host Files Locally - Gravatars ist aktiviert.Lokale Laborhinweise:
git clone https://github.com/AnggaTechI/CVE-2026-3844.git
cd CVE-2026-3844
python3 --version
Es sind keine Python-Pakete von Drittanbietern erforderlich. Das Skript verwendet ausschließlich Module aus der Python-Standardbibliothek.
Führen Sie das Tool aus:
python3 exploit.py
Beispiel für ein einzelnes Ziel:
[*] Target URL or file: http://localhost/lab-wp
Beispiel für eine Zielliste:
[*] Target URL or file: targets.txt
[*] Threads (default 30): 30
[*] Auto-inject on vulnerable? [y/N]: n
Beispielausgabe:
[+] 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
Das Skript prüft, ob das Ziel WordPress zu sein scheint, liest die Metadaten des Breeze-Plugins und vergleicht die erkannte Version mit dem verwundbaren Versionsbereich.
Das Skript versucht abzuleiten, ob lokales Gravatar-Hosting aktiviert ist, indem es nach Breeze-Cache-Verweisen auf breeze-extra/gravatars sucht.
Wenn Auto-Inject aktiviert ist, versucht das Skript, die Ausnutzbarkeit zu verifizieren, indem es einen generierten Test-Payload einsetzt und nach dessen Marker sucht.
Für lokale Labore kann das Skript direkten Dateisystemzugriff verwenden, wenn es das WordPress-Wurzelverzeichnis identifizieren kann. Für autorisierte Remote-Tests startet es einen temporären Payload-Server und versucht, den Gravatar-Caching-Ablauf von Breeze auszulösen.
Je nach WordPress-Konfiguration können gecachte Dateien in einer der folgenden Formen erscheinen:
/wp-content/cache/breeze-extra/gravatars/<filename>
/wp-content/cache/breeze-extra/gravatars/1/<filename>
Der erste Pfad ist bei normalen WordPress-Einzelinstallationen üblich. Der zweite kann auftreten, wenn eine Blog-/Site-ID enthalten ist.
Verwenden Sie diese Checkliste beim Testen in einem lokalen WordPress-Labor:
2.4.4 ist installiert.Host Files Locally - Gravatars ist aktiviert.wp-content/cache/breeze-extra/gravatars/.wp-content ausliefern.gravatar=OFF
Das Plugin ist möglicherweise aktiv, aber Breeze hat noch keine lokalen Gravatar-Cache-Dateien erzeugt. Besuchen Sie eine Seite, die Avatare rendert, oder rufen Sie im Labor einen WordPress-Pfad auf, der Avatare rendert.
not vulnerable
Häufige Ursachen sind gepatchte Breeze-Versionen, ein nicht installiertes Breeze, ein unter der URL nicht erkanntes WordPress oder ein Zielpfad, dem ein Unterverzeichnis wie /lab-wp fehlt.
Injection failed
Die Gravatar-Einstellung ist möglicherweise deaktiviert, die Website rendert Avatare möglicherweise nicht öffentlich, der Cache-Pfad ist möglicherweise nicht beschreibbar oder die Remote-Payload-URL ist vom WordPress-Server aus möglicherweise nicht erreichbar.
Dieses Repository ist für Bildung, die Reproduktion in lokalen Laboren und autorisierte Sicherheitstests gedacht. Führen Sie es nicht gegen Systeme aus, die Sie nicht besitzen oder für die Sie keine ausdrückliche Genehmigung zum Testen haben.
| Feld | Detail |
|---|
| CVE | CVE-2026-3844 |
| Produkt | Breeze Cache, WordPress-Cache-Plugin |
| Anbieter | Cloudways |
| Schwachstellentyp | Uneingeschränkter Datei-Upload |
| CWE | CWE-434 |
| Schweregrad | Kritisch, CVSS 9.8 |
| Authentifizierung | Nicht erforderlich |
| Betroffene Versionen | Breeze Cache <= 2.4.4 |
| Behobene Version | 2.4.5 oder neuer |
| Erforderliche Einstellung | Host Files Locally - Gravatars aktiviert |