
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 — это уязвимость произвольной загрузки файлов, затрагивающая уязвимые версии плагина Breeze Cache для WordPress. Когда включено локальное хранение Gravatar, Breeze может получать URL-адреса аватаров и сохранять загруженный файл в доступный через веб каталог кэша без достаточной проверки типа файла.
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
Уязвимое поведение находится в процессе кэширования Gravatar в Breeze:
src принимается обработчиком Gravatar в Breeze.download_url() WordPress.Соответствующая уязвимая область:
inc/class-breeze-cache-cronjobs.php
fetch_gravatar_from_remote()
Требования к цели:
<= 2.4.4.Host Files Locally - Gravatars.Примечания для локальной лаборатории:
git clone https://github.com/AnggaTechI/CVE-2026-3844.git
cd CVE-2026-3844
python3 --version
Сторонние пакеты Python не требуются. Скрипт использует только модули стандартной библиотеки Python.
Запуск инструмента:
python3 exploit.py
Пример с одной целью:
[*] Target URL or file: http://localhost/lab-wp
Пример со списком целей:
[*] Target URL or file: targets.txt
[*] Threads (default 30): 30
[*] Auto-inject on vulnerable? [y/N]: n
Пример вывода:
[+] 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
Скрипт проверяет, является ли цель сайтом WordPress, читает метаданные плагина Breeze и сравнивает обнаруженную версию с уязвимым диапазоном.
Скрипт пытается определить, включено ли локальное хранение Gravatar, проверяя ссылки на кэш breeze-extra/gravatars плагина Breeze.
Когда автовнедрение включено, скрипт пытается проверить возможность эксплуатации, разворачивая сгенерированную тестовую полезную нагрузку и проверяя наличие её маркера.
Для локальных лабораторий скрипт может использовать прямой доступ к файловой системе, если ему удаётся определить корневой каталог WordPress. Для удалённых авторизованных тестов он запускает временный сервер полезной нагрузки и пытается активировать процесс кэширования Gravatar в Breeze.
В зависимости от конфигурации WordPress кэшированные файлы могут появляться в одном из следующих видов:
/wp-content/cache/breeze-extra/gravatars/<filename>
/wp-content/cache/breeze-extra/gravatars/1/<filename>
Первый путь распространён в обычных одиночных установках WordPress. Второй может появляться, когда включён идентификатор блога/сайта.
Используйте этот контрольный список при тестировании в локальной лаборатории WordPress:
2.4.4.Host Files Locally - Gravatars.wp-content/cache/breeze-extra/gravatars/.wp-content.gravatar=OFF
Плагин может быть активен, но Breeze ещё не создал локальные файлы кэша Gravatar. Откройте страницу, отображающую аватары, или вызовите путь рендеринга аватаров WordPress в лаборатории.
not vulnerable
Распространённые причины: исправленная версия Breeze, Breeze не установлен, WordPress не обнаружен по указанному URL или в пути цели отсутствует подкаталог, например /lab-wp.
Injection failed
Настройка Gravatar может быть отключена, сайт может не отображать аватары публично, путь к кэшу может быть недоступен для записи, или удалённый URL полезной нагрузки может быть недоступен с сервера WordPress.
Этот репозиторий предназначен для обучения, воспроизведения в локальной лаборатории и авторизованного тестирования безопасности. Не запускайте его против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения.
| Поле | Детали |
|---|
| CVE | CVE-2026-3844 |
| Продукт | Breeze Cache, плагин кэширования WordPress |
| Поставщик | Cloudways |
| Тип уязвимости | Неограниченная загрузка файлов |
| CWE | CWE-434 |
| Серьёзность | Критическая, CVSS 9.8 |
| Аутентификация | Не требуется |
| Подверженные версии | Breeze Cache <= 2.4.4 |
| Исправленная версия | 2.4.5 или новее |
| Необходимая настройка | включена опция Host Files Locally - Gravatars |