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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-92084-beaver-builder-shortcode-poc — Docker-лаборатория для проверки и Python PoC для CVE-2026-92084 — уязвимости неаутентифицированного выполнения шорткодов в Beaver Builder Lite <= 2.11.0.5, с исправленным контролем и проверкой nuclei. | Kitploit
Инструменты/GitHubGitHub/hassham1/cve-2026-92084-beaver-builder-shortcode-poc
Сканеры уязвимостейАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьЛаборатории и Практика
GitHubhassham1/cve-2026-92084-beaver-builder-shortcode-poc

CVE-2026-92084-beaver-builder-shortcode-poc

Docker-лаборатория для проверки и Python PoC для CVE-2026-92084 — уязвимости неаутентифицированного выполнения шорткодов в Beaver Builder Lite <= 2.11.0.5, с исправленным контролем и проверкой nuclei.

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

Популярное

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

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

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

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

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

CVE-2026-92084 — лаборатория валидации произвольного выполнения шорткодов в Beaver Builder

Материалы для исследования безопасности, предназначенные для воспроизведения и валидации CVE-2026-92084: Beaver Builder (Lite) <= 2.11.0.5 выполняет произвольные зарегистрированные шорткоды WordPress, внедрённые в вывод виджета, отображаемый модулем Sidebar, через общестраничный проход do_shortcode() конструктора.

  • Затронуто: Beaver Builder Lite <= 2.11.0.5
  • Исправлено: 2.11.0.6 (модуль Sidebar устанавливает 'renders_shortcodes' => false; сам механизм кодирования скобок появился раньше и не изменён)
  • CVSS 3.1: 9.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N) — CWE-94
  • Аутентификация: не требуется, но комментарий атакующего должен пройти порог одобрения комментариев сайта (автоодобрение или действие модератора), прежде чем виджет Recent Comments раскроет внедрённый шорткод

Используйте только в системах, которыми вы владеете или на тестирование которых у вас есть явное разрешение. PoC публикует один комментарий, имя автора которого содержит зарегистрированный в лаборатории маркерный шорткод. Деструктивные шорткоды не используются, и ничего не записывается на диск.

Вердикт

Статус: подтверждено в предоставленной лаборатории.

Beaver Builder Lite 2.11.0.5 (WordPress 7.1.2, страница конструктора с модулем Sidebar и виджетом Recent Comments):

comment posted : author name "[cve92084]" on the builder page
result         : rendered page contains the marker shortcode's server-side
                 output "CVE92084-SHORTCODE-FIRED"
                 (executed by the layout-wide do_shortcode() pass)
2.11.0.6       : brackets entity-encoded, marker absent (patched negative
                 control; page shows the literal text [cve92084])

Это демонстрирует серверное выполнение произвольного зарегистрированного шорткода с выводом, встроенным в страницу и раскрываемым каждому посетителю. Это не демонстрирует RCE; влияние зависит от того, какие шорткоды зарегистрированы на цели (раскрытие post/meta, формы, шорткоды, предоставляемые плагинами, с побочными эффектами).

Корневая причина (проверено на исправлении 2.11.0.6)

Сток. FLBuilder::render_content() прогоняет собранный макет конструктора через широкий проход шорткодов перед его выводом:

// classes/class-fl-builder.php:2139, Beaver Builder Lite 2.11.0.5
$content = do_shortcode( $content );

Точка внедрения. Модуль Sidebar выводит результат работы виджетов боковой панели WordPress без изменений в эту разметку:

// modules/sidebar/includes/frontend.php:4, 2.11.0.5
if ( ! dynamic_sidebar( $settings->sidebar ) ) {

Содержимое виджета — это недоверенные пользовательские данные: базовый виджет Recent Comments выводит get_comment_author_link(), то есть любое имя, указанное (неаутентифицированным) комментатором. FLBuilder::double_escape_shortcodes() лишь повторно оборачивает в скобки экранированную форму [[x]], поэтому обычный [cve92084] проходит насквозь, и проход do_shortcode() его выполняет.

Исправление. В 2.11.0.5 уже присутствует механизм нейтрализации — FLBuilderModule::$renders_shortcodes = true (class-fl-builder-module.php:143) и FLBuilder::escape_foreign_module_shortcodes(), подключённый к обоим фильтрам рендеринга модулей (class-fl-builder.php:109-110, применяется в 3240), который кодирует сущностями скобки любого зарегистрированного шорткода в выводе модуля. Модуль Sidebar просто никогда не отказывался от этой обработки. Единственное функциональное изменение в 2.11.0.6 — это отказ от неё:

// modules/sidebar/sidebar.php, 2.11.0.6
'renders_shortcodes' => false,
// dynamic_sidebar() renders third-party widget output that can contain
// untrusted user data (e.g. a comment author name via the core Recent
// Comments widget); do not run its shortcodes.

Эксплуатационный сценарий (по результатам проверки)

  1. Выберите любую страницу конструктора, макет которой содержит модуль Sidebar над боковой панелью, отображающей контролируемый злоумышленником текст виджета (в лаборатории: основной виджет Recent Comments; на реальных целях — любой виджет, выводящий пользовательские данные).
  2. Отправьте POST-запрос с комментарием на /wp-comments-post.php, указав в качестве имени автора комментария полезную нагрузку в виде шорткода.
  3. Комментарий проходит порог одобрения сайта (в лаборатории одобрение автоматическое; на реальных целях: автоодобрение или модератор), и виджет Recent Comments начинает отображать имя автора.
  4. При следующем и каждом последующем рендеринге страницы конструктора вывод виджета попадает внутрь макета, и проход do_shortcode() выполняет полезную нагрузку. Её вывод заменяет имя автора и виден каждому посетителю.

Быстрый старт

Требования: Docker с Compose v2, Python 3.10+ на хосте.

./lab verify

Собирает лабораторную среду 2.11.0.5, требует срабатывания маркера, затем собирает лабораторную среду 2.11.0.6 и требует его отсутствия. Удалить всё с помощью ./lab reset.

Ожидаемые доказательства

Уязвимый контроль:

[!!!] SHORTCODE EXECUTION CONFIRMED
  posted  : comment author '[cve92084]' on page 5
  evidence: 'CVE92084-SHORTCODE-FIRED' present in the rendered builder page
  context : ...<a href="https://github.com/hassham1/cve-2026-92084-beaver-builder-shortcode-poc/blob/main/..." class="url">CVE92084-SHORTCODE-FIRED</a>...
RESULT: VULNERABLE CONTROL CONFIRMED

Исправленный элемент управления:

[=] shortcode text present but NOT executed: brackets entity-encoded
    (patched >= 2.11.0.6 behavior: escape_foreign_shortcodes).
RESULT: PATCHED CONTROL CONFIRMED

Маркер на странице только внутри отображаемого комментария (необработанный текст) не принимается как доказательство; маркер должен появляться как результат выполнения шорткода.

Ручной жизненный цикл лаборатории

./lab start vulnerable   # 2.11.0.5 lab on http://127.0.0.1:9488
./lab test               # assert marker fires
./lab start patched      # 2.11.0.6 lab
./lab test               # assert absence
./lab status
./lab reset

Запустите PoC вручную (по умолчанию используется loopback; для авторизованных внешних целей требуется явное переопределение):

python3 poc/poc_cve_2026_92084.py --url http://127.0.0.1:9488 --post-id 5
python3 poc/poc_cve_2026_92084.py --url https://target.example \
  --post-id 5 --allow-authorized-non-loopback [--insecure]

Шаблон nuclei (nuclei/cve-2026-92084.yaml) представляет собой только проверку версии (стабильный тег readme.txt <= 2.11.0.5). Поведенческая цепочка требует отправки комментария и перехода одобрения, что непрактично выразить в nuclei; Python PoC выполняет полный сценарий.

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

ВерсияОценка
Beaver Builder Lite 2.11.0.5Выполнение шорткода воспроизведено от начала до конца
Beaver Builder Lite 2.11.0.6Воспроизведён исправленный негативный контроль
Beaver Builder Lite <= 2.11.0.4Уязвима согласно рекомендации; отдельно не тестировалась
Beaver Builder (Pro/Agency)Не тестировалась — область действия рекомендации — плагин Lite

Структура репозитория

.
├── .github/workflows/validate.yml
├── .gitignore
├── LICENSE
├── README.md
├── SECURITY.md
├── docker-compose.yml
├── lab
├── nuclei/
│   └── cve-2026-92084.yaml
├── poc/
│   └── poc_cve_2026_92084.py
└── provision/
    └── install.php

Не закоммичено: assets/ (zip-архивы плагинов), .lab-state, __pycache__/.

Границы валидации

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