
Python PoC для CVE-2026-102425: неаутентифицированный RCE в Joomla Balbooa Forms (com_baforms) через инъекцию шорткода поля в PHP eval() после отправки формы. Режимы проверки, эксплуатации и массовой эксплуатации.
Python 3 PoC для CVE-2026-102425 — расширение Joomla Balbooa Forms от balbooa.com — неаутентифицированное удалённое выполнение кода через инъекцию шорткода поля в опциональных действиях PHP-after-submission (eval()).
| | |
|---|---|
| PoCbit | https://pocbit.org/pocs/cve-2026-102425 |
| CVE.org | https://www.cve.org/CVERecord?id=CVE-2026-102425 (PUBLISHED 2026-09-29) |
| NVD | https://nvd.nist.gov/vuln/detail/CVE-2026-102425 |
| CNA | Joomla! Project |
| Компонент | com_baforms |
| Затронуто | 1.0.0 – 2.4.3.3 |
| Исправление | ≥ 2.4.3.4 |
| CWE | CWE-94 (Code Injection) |
| CVSS 4.0 | 9.5 Critical — CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H |
| Исследователи | Łukasz Rybak, Sergiy Tryzhychynskyi |
Balbooa Forms позволяет администраторам определять PHP-код, который выполняется после отправки публичной формы. Этот PHP-код может содержать шорткоды полей формы. Перед eval() компонент заменяет каждый шорткод на необработанное значение, отправленное посетителем (без экранирования).
CVE-2026-102425 эксплуатируется при выполнении всех следующих условий:
Версия расширения < 2.4.3.4.
Публичная форма использует опциональное действие PHP-after-submission.
Этот PHP интерполирует контролируемый атакующим шорткод поля внутри PHP-строки в двойных кавычках (классический выход из строки: ";echo …;//).
CVSS AT:P (Attack Requirements: Present) означает, что должна существовать уязвимая конфигурация — одной установки компонента недостаточно.
Это не CVE-2026-67364 (шорткод запроса [URL parameter = X], исправлен в 2.4.3.2). Используйте --include-67364 только если вы намеренно тестируете эту отдельную проблему.
Тот же компонент, та же ветка релизов: также пропатчите CVE-2026-102424, -101127, -101112, -101126 (см. mySites.guru).
| Режим | Поведение |
|------|----------|
| check | com_baforms, версия из манифеста, affected_version (< 2.4.3.4), public_form_detected через loadAjaxForm / embed |
| check попадания по умолчанию | hits.txt только если версия уязвима и загружается HTML публичной формы (очередь эксплуатации) |
| check --all-affected | Также перечисляет любой хост с уязвимой версией (шумная сортировка FOFA) |
| check --aggressive | Больше путей, сканирование ID через loadAjaxForm, больше проверок форм |
| exploit | Отправка form.message (современная) + устаревшие задачи; полезные нагрузки шорткода поля (выход из двойных кавычек) |
| exploit --include-67364 | Добавляет попытки шорткода URL-параметра (класс 67364) |
| exploit --aggressive | Полный скрейпинг + обнаружение через loadAjaxForm (медленнее) |
| --lab | Локальный мок: eval в двойных кавычках + инъекция поля |
| mass | --list + -j → JSONL, hits.txt, exploited.txt |
Строки JSONL включают cve_state, cve_record, nvd, cvss_v4_vector, attack_requirements, pocbit_page.
При exploit PoC сначала пытается использовать file_put_contents через тот же RCE шорткода поля, чтобы загрузить локальный up.php (multipart-загрузчик) в распространённые пути Joomla (images/baforms/uploads/, images/, …), затем подтверждает POCBIT-102425-OK в ответе на отправку. Если файл доступен через веб, выводится shell_url и добавляется в exploited.txt.
Python 3.9+
pip install requests urllib3 colorama
cd CVE-2026-102425
python poc.py # interactive
python poc.py hits.txt # mass exploit
python poc.py --check fofa_hosts.txt # mass scan → hits.txt
python poc.py -u https://site.tld
python poc.py --lab
python poc.py --help
# Full CLI / JSONL: python _engine.py --help
Интерактивный массовый check (hits.txt, 12 потоков, подробный вывод):

| Шаг | Запрос |
|------|---------|
| Загрузка формы | GET index.php?option=com_baforms&task=form.loadAjaxForm&id=N |
| Отправка | POST на action формы с task=form.message, form-id, полями (см. ba-form.js) |
| Избегать | format=json на фронтальных задачах на многих сайтах J4 (некорректный JSON контроллера) |
Устаревшие сайты могут использовать view=form&form_id=N или form.submitForm.
Обновите Balbooa Forms до 2.4.3.4+.
Удалите действия PHP-after-submission, содержащие шорткоды полей или URL, до установки патча.
Включите reCAPTCHA для публичных отправок.
Проведите аудит форм, административных пользователей и images/baforms/uploads/.
Только авторизованное тестирование безопасности.
CVE-2026-102425 PoC (PoCbit) — Joomla Balbooa Forms (com_baforms) 1.0.0–2.4.3.3: unauth RCE via field shortcode in PHP-after-submission eval() (CVSS 4.0 9.5 AT:P). check + exploit + mass. https://pocbit.org/pocs/cve-2026-102425