Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-5118 — Divi Form Builder <= 5.1.2 — Неаутентифицированное повышение привилегий через инъекцию ролей | Kitploit
Инструменты/GitHubGitHub/yucaerin/cve-2026-5118
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и Образование
GitHubyucaerin/cve-2026-5118

CVE-2026-5118

Divi Form Builder <= 5.1.2 — Неаутентифицированное повышение привилегий через инъекцию ролей

Репозиторий
113 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-5118 — Divi Form Builder <= 5.1.2 — Неавторизованное повышение привилегий через внедрение роли

🔥 Краткое описание уязвимости

Плагин WordPress Divi Form Builder версий <= 5.1.2 уязвим к неавторизованному повышению привилегий. Эта критическая ошибка позволяет неавторизованным злоумышленникам создавать новую учетную запись Администратора напрямую через любую форму Divi Form Builder — включая контактные формы, формы заявок, формы подписки на новости или любую другую форму, поддерживаемую DFB.

Уязвимость возникает из-за функции create_user() в файле FormSubmissionHandler.php, которая принимает параметр role напрямую из отправленных пользователем POST-данных без надлежащей авторизации или проверки по белому списку. Плагин проверяет только, существует ли переданная роль в системе (например, administrator — допустимая роль WordPress) — но никогда не проверяет, безопасна ли роль для публичной регистрации.

Прорывное открытие: fb_nonce, используемый Divi Form Builder, является глобальным общим nonce (wp_create_nonce('security')) — одинаковым для всех форм на сайте. Более того, form_type=register может быть переопределен через POST к общему AJAX-обработчику. Это означает, что любая форма DFB (контактная, заявки, обратной связи и т.д.) может быть использована для запуска регистрации пользователя с произвольным назначением роли.

🔍 Затронутый плагин

  • Название плагина: Divi Form Builder
  • Затронутая версия: <= 5.1.2
  • Тип уязвимости: Неавторизованное повышение привилегий через внедрение роли
  • CVE ID: CVE-2026-5118
  • Оценка CVSS: 9.8 (Критическая)
  • CWE: CWE-266 — Некорректное назначение привилегий
  • Воздействие: Полный захват сайта — создание учетной записи администратора

🧨 Что могут сделать злоумышленники

🧪 Возможности эксплойта

  • 🔓 Аутентификация не требуется
  • 📝 Работает через любую форму DFB — контактную, заявки, подписки, обратной связи и т.д.
  • 🎯 Нацелен на AJAX-конечную точку /wp-admin/admin-ajax.php?action=de_fb_ajax_submit_ajax_handler
  • 🧠 Внедрение роли — отправляет role=administrator вместе с обычными полями формы
  • 🌐 Поддержка массового сканирования — многопоточный сканер нескольких целей с автообнаружением
  • 📄 Результаты сохраняются в result.txt

🧠 Уязвимый код

root@kitploit:~
// includes/shared/handlers/FormSubmissionHandler.php ~ line 2250
$role = isset($form_data['role']) ? sanitize_text_field($form_data['role']) : 'subscriber';

// ~ line 2278 — ONLY checks if role EXISTS, not if it is SAFE
$roles_obj = function_exists('wp_roles') ? wp_roles() : null;
if ($roles_obj && is_object($roles_obj) && is_array($roles_obj->roles) && !isset($roles_obj->roles[$role])) {
    $role = 'subscriber';  // ← "administrator" EXISTS, so this check PASSES
}

// ~ line 2301 — Directly applies the injected role
$user = new WP_User($user_id);
$user->set_role($role);  // ← PRIVILEGE ESCALATION!

🚀 Использование

Одиночная цель

root@kitploit:~
python3 exploit.py -t http://target.com
python3 exploit.py -t https://target.com -u hacker -p Pass123! -e [email protected]

Массовое сканирование (список без http/https)

Создайте targets.txt:

root@kitploit:~
target1.com
target2.com:8080
192.168.1.50
subdomain.target.com
root@kitploit:~
python3 exploit.py -l targets.txt -T 20

Опции

🛠 Рекомендации по исправлению

root@kitploit:~
// SECURE: Allowlist only safe roles for public registration
$allowed_registration_roles = array('subscriber', 'contributor');
if (!in_array($role, $allowed_registration_roles, true)) {
    $role = 'subscriber';  // ← Reject ALL dangerous roles
}
  • Удалить скрытое поле role из форм на стороне фронтенда полностью
  • Добавить проверки возможности current_user_can('create_users') для привилегированных ролей
  • Реализовать строгую проверку nonce, ограниченную для каждой формы, вместо глобальной
  • Добавить ограничение частоты запросов на AJAX-конечную точку регистрации

🧠 Исследователь

  • Автор: 0xd4rk5id3

📚 Ссылки

  • Рекомендация Wordfence
  • Оригинальный репозиторий CVE

🔒 Отказ от ответственности:

Эта информация предоставляется только в образовательных целях и для авторизованного тестирования на проникновение. Несанкционированная эксплуатация компьютерных систем является незаконной и неэтичной. Всегда получайте явное письменное разрешение перед тестированием любой цели, которая вам не принадлежит.

Скачать инструмент
ВозможностьВлияние
🔑 Создание учетной записи администратора без входаПолный захват сайта
📦 Доступ к данным клиентов WooCommerceУтечка данных
💉 Редактирование PHP-файлов плагинов/темУдаленное выполнение кода
🕳️ Установка скрытых бэкдоровПостоянный доступ
👥 Просмотр всех данных пользователейНарушение конфиденциальности
ФлагОписание
-t, --targetURL одиночной цели
-l, --listФайл со списком целей (по одной на строку, http/https необязательно)
-T, --threadsПотоки для массового сканирования (по умолчанию: 10)
-o, --outputФайл вывода для результатов (по умолчанию: result.txt)
-u, --usernameПользовательское имя для новой учетной записи
-p, --passwordПользовательский пароль для новой учетной записи
-e, --emailПользовательский email для новой учетной записи
-v, --verboseПодробный вывод отладки
--no-confirmПропустить подсказку подтверждения разрешения