
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 est une vulnérabilité de téléversement arbitraire de fichiers affectant les versions vulnérables du plugin WordPress Breeze Cache. Lorsque l'hébergement local de Gravatar est activé, Breeze peut récupérer des URL d'avatars et stocker le fichier téléchargé dans un répertoire de cache accessible via le web sans valider suffisamment le type de fichier.
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
Le comportement vulnérable se trouve dans le flux de mise en cache des Gravatar de Breeze :
src de l'avatar est acceptée par le gestionnaire Gravatar de Breeze.download_url() de WordPress.Zone vulnérable concernée :
inc/class-breeze-cache-cronjobs.php
fetch_gravatar_from_remote()
Prérequis cible :
<= 2.4.4.Host Files Locally - Gravatars est activé.Notes pour le laboratoire local :
git clone https://github.com/AnggaTechI/CVE-2026-3844.git
cd CVE-2026-3844
python3 --version
Aucun paquet Python tiers n'est requis. Le script utilise uniquement les modules de la bibliothèque standard de Python.
Exécutez l'outil :
python3 exploit.py
Exemple avec une cible unique :
[*] Target URL or file: http://localhost/lab-wp
Exemple avec une liste de cibles :
[*] Target URL or file: targets.txt
[*] Threads (default 30): 30
[*] Auto-inject on vulnerable? [y/N]: n
Exemple de sortie :
[+] 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
Le script vérifie si la cible semble être WordPress, lit les métadonnées du plugin Breeze et compare la version détectée à la plage vulnérable.
Le script tente de déduire si l'hébergement local de Gravatar est activé en recherchant les références de cache breeze-extra/gravatars de Breeze.
Lorsque l'auto-injection est activée, le script tente de vérifier l'exploitabilité en déployant une charge utile de test générée et en recherchant son marqueur.
Pour les laboratoires locaux, le script peut utiliser un accès direct au système de fichiers lorsqu'il peut identifier la racine WordPress. Pour les tests distants autorisés, il démarre un serveur de charge utile temporaire et tente de déclencher le flux de mise en cache Gravatar de Breeze.
Selon la configuration WordPress, les fichiers en cache peuvent apparaître sous l'une des formes suivantes :
/wp-content/cache/breeze-extra/gravatars/<filename>
/wp-content/cache/breeze-extra/gravatars/1/<filename>
Le premier chemin est courant sur les installations WordPress mono-site normales. Le second peut apparaître lorsqu'un identifiant de blog/site est inclus.
Utilisez cette liste de vérification lorsque vous testez dans un laboratoire WordPress local :
2.4.4 est installé.Host Files Locally - Gravatars est activé.wp-content/cache/breeze-extra/gravatars/.wp-content de WordPress.gravatar=OFF
Le plugin peut être actif, mais Breeze n'a pas encore généré de fichiers de cache Gravatar locaux. Visitez une page qui affiche des avatars ou appelez un chemin de rendu d'avatar WordPress dans le laboratoire.
not vulnerable
Les causes courantes sont des versions de Breeze corrigées, Breeze non installé, WordPress non détecté à l'URL, ou le chemin cible sans sous-répertoire tel que /lab-wp.
Injection failed
Le paramètre Gravatar peut être désactivé, le site peut ne pas afficher d'avatars publiquement, le chemin de cache peut ne pas être accessible en écriture, ou l'URL de la charge utile distante peut ne pas être joignable depuis le serveur WordPress.
Ce dépôt est destiné à l'éducation, à la reproduction en laboratoire local et aux tests de sécurité autorisés. Ne l'exécutez pas contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de tester.
| Champ | Détail |
|---|
| CVE | CVE-2026-3844 |
| Produit | Breeze Cache, plugin de cache WordPress |
| Éditeur | Cloudways |
| Type de vulnérabilité | Téléversement de fichier sans restriction |
| CWE | CWE-434 |
| Sévérité | Critique, CVSS 9.8 |
| Authentification | Non requise |
| Versions affectées | Breeze Cache <= 2.4.4 |
| Version corrigée | 2.4.5 ou ultérieure |
| Paramètre requis | Host Files Locally - Gravatars activé |