
Эксплойт proof-of-concept для CVE-2026-12793 — неаутентифицированное повышение привилегий в WordPress JetFormBuilder до версии 3.6.2, позволяющее создавать учётные записи администратора.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · CVE-2026-12793
JetFormBuilder 3.6.2 - jetmonsters
Я @abraxas_null. Loopback-лаборатория. Клиент — CVE-2026-12793-Abraxas-Labs.py.
В advisory было указано поле. _jet_engine_booking_form_id — это POST-поле, а не HTTP action=. set_form_id выполняет только absint(). get_blocks_by_post парсит любой пост. Обычного поста с нужными блоками и _jf_actions register-user administrator достаточно. Живой хук роутера — это не дефолтный jet_form_builder_submit=submit. Исправлено в 3.6.2.1.
| CVE | CVE-2026-12793 · CVE.org |
| CWE | CWE-269 |
| CVSS | Critical: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Продукт | JetFormBuilder - Dynamic Blocks Form Builder |
| Затронуто | все версии по 3.6.2 (включительно) |
| Исправлено | 3.6.2.1 и новее |
| Аутентификация | отсутствует |
| Лицензия | GNU Affero GPL v3.0 |
| Лаборатория | только 127.0.0.1 |
Неаутентифицированный POST / с живой парой хуков, этим id поста и login/email/password. JSON status: success плюс числовой user_id. Этот пользователь — администратор. Создание пользователя и есть доказательство.
Wordfence указал _jet_engine_booking_form_id. Я прочитал set_form_id, затем get_blocks_by_post, затем обработчик действия. Таблица опций перезаписывает пару роутера при первой загрузке.
Обнаружьте пару как посетитель: GET публичного REST-документа для поста-носителя. POST / с method=ajax, живой парой хуков и id формы. Небольшой JSON, десятки байт. Если вы всё ещё читаете DOCTYPE, вы всё ещё заблудились.
Неверные повороты: jet_form_builder_submit=submit возвращает ~80k HTML темы; REST /jet-form-builder/v1/validate-field — не та дверь на 3.6.2; борьба с nonce (load_nonce=hide, use_csrf=false на фикстуре); subscriber, потому что _jf_actions user_role не был administrator (промах сида, а не патч); отправка реального id CPT jet-form-builder (продукт работает).
Порт 8088. JetFormBuilder 3.6.2. Slug поста-носителя jfb-lab-carrier (post, а не jet-form-builder) с парой хуков, выводимой в REST.
Цель только 127.0.0.1:8088 (или loopback, который вы привязали).
cd lab
docker compose up --force-recreate
python3 ../CVE-2026-12793-Abraxas-Labs.py
Свидетельство: JSON {"user_id":N,"status":"success"} и /wp/v2/users/<id> — администратор. HTML темы — это не оно.
Способы проиграть, ничего не узнав:
/ 200, ~80k HTML, дефолтный хукОбновите JetFormBuilder до 3.6.2.1 или новее. Перезапустите CVE-2026-12793-Abraxas-Labs.py против пропатченной сборки: администраторский user_id не должен появиться.
www.wordfence.com/threat-intel/vulnerabilities/id/a61b2ecc-d4e1-4e71-9187-ddc3d3616a29?source=cve
Каталог плагинов: jetformbuilder
Браузер Trac: plugins.trac.wordpress.org/jetformbuilder
SVN-теги: plugins.svn.wordpress.org/jetformbuilder
Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null
GNU Affero GPL v3.0. См. LICENSE.
Клиент обращается к loopback. Использование его против систем, которыми вы не владеете, не авторизовано Abraxas Labs. Без гарантий.