
Proof-of-Concept und Labor-Reproduktion für CVE-2026-75816, eine unauthentifizierte WordPress Frontend Admin Account-Übernahme über admin-ajax Formularübermittlung.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · CVE-2026-75816
Frontend Admin by DynamiApps 3.29.11 - shabti
Ich bin @abraxas_null. Loopback-Lab. Der Client ist CVE-2026-75816-Abraxas-Labs.py.
user_1 ist kein Post. Unauthentifiziertes admin-ajax.php frontend_admin/form_submit. ActionPost::conditions_logic() kehrt früh zurück, wenn die Objekt-ID nicht numerisch ist (user_1), und überspringt dabei current_user_can('edit_post'). Das Email-Feld pre_update_value in 3.29.11 hat keine edit_user-Prüfung und führt wp_update_user für die E-Mail von User 1 aus. NVD listet bis 3.29.12; das Changelog von 3.29.12 fügte diese Prüfung hinzu. Das Lab ist 3.29.11. Aktuell ist 3.29.13.
| CVE | CVE-2026-75816 · CVE.org |
| CWE | CWE-287 |
| CVSS | Kritisch: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Produkt | Frontend Admin by DynamiApps |
| Betroffen | alle Versionen bis einschließlich 3.29.11 (NVD listet 3.29.12; 3.29.12 fügte die edit_user-Prüfung des Email-Felds hinzu) |
| Gepatcht | 3.29.12 und später |
| Auth | keine |
| Lizenz | GNU Affero GPL v3.0 |
| Lab | nur 127.0.0.1 |
Ein Gast-POST ändert die Administrator-E-Mail. Ein Passwort-Reset an diese Adresse bedeutet Account-Übernahme. Das Lab endet bei der E-Mail-Änderung. Ich veröffentliche kein Rezept zum Zurücksetzen des Passworts, das auf den Admin von jemand anderem abzielt.
Wordfence nannte pre_update_value und user_1. Ich las conditions_logic, dann das Email-Feld, dann erntete ich das öffentliche Formular.
GET /fea-lab/. _acf_nonce, _acf_objects, den Feld-Key user_email herausziehen. POST acff[post][<key>][email protected]. GET /?fea_lab_email=1. Kleines Ajax-JSON Post updated, dann die neue Adresse.
Irrwege: action=pre_update_value oder parse_array (Funktionsnamen sind keine Routen); hartkodierte Nonce; numerische post_id (dann läuft edit_post tatsächlich und ein Gast wird abgewiesen); who_can_see nicht all; 3.29.12; [email protected] noch im Body als Erfolg zu werten.
Port 8088. Frontend Admin 3.29.11. Öffentliches Formular /fea-lab/, who_can_see=all, Objekt user_1.
Ziel nur 127.0.0.1:8088 (oder das Loopback, an das du gebunden hast).
cd lab
docker compose up --force-recreate
./run.sh
Witness: GET /?fea_lab_email=1 ist [email protected]. Generisches Formular-HTML oder [email protected] ist es nicht.
Wege, zu verlieren, ohne etwas zu lernen:
[email protected] ist weiterhin die Admin-E-Mail0 / -1 / Permission-JSON ohne die E-Mail-ÄnderungAktualisiere Frontend Admin by DynamiApps auf 3.29.12 oder neuer (aktuell 3.29.13). Führe CVE-2026-75816-Abraxas-Labs.py erneut gegen den gepatchten Build aus: Die Admin-E-Mail darf sich nicht ändern.
plugins.trac.wordpress.org/changeset/3664865/acf-frontend-form-element
www.wordfence.com/threat-intel/vulnerabilities/id/f1637a3b-7b0f-485d-9d19-4f711f8c671b?source=cve
Plugin-Verzeichnis: acf-frontend-form-element
Trac-Browser: plugins.trac.wordpress.org/acf-frontend-form-element
SVN-Tags: plugins.svn.wordpress.org/acf-frontend-form-element
Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null
GNU Affero GPL v3.0. Siehe LICENSE.
Der Client kommuniziert mit Loopback. Die Verwendung gegen Systeme, die dir nicht gehören, ist von Abraxas Labs nicht autorisiert. Keine Gewährleistung.