
Proof-of-concept и воспроизведение в лабораторных условиях для CVE-2026-75816 — неаутентифицированного захвата учётной записи в WordPress Frontend Admin через отправку формы admin-ajax.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · CVE-2026-75816
Frontend Admin by DynamiApps 3.29.11 - shabti
Я @abraxas_null. Loopback-лаборатория. Клиент — CVE-2026-75816-Abraxas-Labs.py.
user_1 — это не пост. Неаутентифицированный admin-ajax.php frontend_admin/form_submit. ActionPost::conditions_logic() завершается досрочно, когда id объекта не является числом (user_1), пропуская current_user_can('edit_post'). Поле Email pre_update_value в 3.29.11 не имеет проверки edit_user и выполняет wp_update_user для email пользователя 1. NVD перечисляет версии вплоть до 3.29.12; в changelog 3.29.12 добавлена эта проверка. Лаборатория — 3.29.11. Текущая — 3.29.13.
| CVE | CVE-2026-75816 · CVE.org |
| CWE | CWE-287 |
| CVSS | Critical: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Продукт | Frontend Admin by DynamiApps |
| Затронуты | все версии вплоть до 3.29.11 (NVD перечисляет 3.29.12; в 3.29.12 добавлена проверка edit_user для поля Email) |
| Исправлено | 3.29.12 и новее |
| Аутентификация | отсутствует |
| Лицензия | GNU Affero GPL v3.0 |
| Лаборатория | только 127.0.0.1 |
Гостевой POST изменяет email администратора. Сброс пароля на этот адрес — это захват аккаунта. Лаборатория останавливается на изменении email. Я не публикую рецепт восстановления пароля, нацеленный на чужого администратора.
Wordfence указал на pre_update_value и user_1. Я прочитал conditions_logic, затем поле Email, затем собрал публичную форму.
GET /fea-lab/. Извлечь _acf_nonce, _acf_objects, ключ поля user_email. POST acff[post][<key>][email protected]. GET /?fea_lab_email=1. Небольшой ajax JSON Post updated, затем новый адрес.
Неверные шаги: action=pre_update_value или parse_array (имена функций — это не маршруты); жёстко заданный nonce; числовой post_id (тогда edit_post действительно выполняется и гость получает отказ); who_can_see не all; 3.29.12; трактовка [email protected], всё ещё присутствующего в теле, как успеха.
Порт 8088. Frontend Admin 3.29.11. Публичная форма /fea-lab/, who_can_see=all, объект user_1.
Цель — только 127.0.0.1:8088 (или loopback, к которому вы привязались).
cd lab
docker compose up --force-recreate
./run.sh
Свидетельство: GET /?fea_lab_email=1 возвращает [email protected]. Обобщённый HTML формы или [email protected] — это не оно.
Способы проиграть, ничего не узнав:
[email protected] всё ещё является email администратора0 / -1 / JSON об отказе в доступе без изменения emailОбновите Frontend Admin by DynamiApps до 3.29.12 или новее (текущая 3.29.13). Перезапустите CVE-2026-75816-Abraxas-Labs.py против пропатченной сборки: email администратора не должен измениться.
plugins.trac.wordpress.org/changeset/3664865/acf-frontend-form-element
www.wordfence.com/threat-intel/vulnerabilities/id/f1637a3b-7b0f-485d-9d19-4f711f8c671b?source=cve
Каталог плагинов: acf-frontend-form-element
Браузер Trac: plugins.trac.wordpress.org/acf-frontend-form-element
SVN-теги: plugins.svn.wordpress.org/acf-frontend-form-element
Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null
GNU Affero GPL v3.0. См. LICENSE.
Клиент обращается к loopback. Использование его против систем, которыми вы не владеете, не авторизовано Abraxas Labs. Без гарантий.