
XSS2Shell (CVE-2026-64638) PoC espejo de XSS pre-autenticación a RCE en WordPress — WordSec, MIT; para pruebas de seguridad autorizadas
Espejo de distribución de HackSpeak. Este repositorio es un espejo de distribución del PoC educativo XSS2Shell (CVE-2026-64638) publicado por WordSec, con el código idéntico al upstream; el upstream tiene Licencia MIT, Copyright (c) 2026 WordSec.
⚠️ Solo para investigación de seguridad y pruebas autorizadas; ejecútelo únicamente contra sitios WordPress propios o con autorización escrita para su evaluación; el PoC genera y limpia publicaciones temporales, no lo utilice contra administradores de terceros ni sistemas de producción.
XSS2Shell (CVE-2026-64638) es un XSS reflejado de preautenticación en la página de inicio de sesión de WordPress (wp-login.php) que puede escalarse mediante una cadena completa hasta ejecución de código PHP en el servidor (RCE).
strip_tags() y WordPress KSES (wp_kses_post()) — al insertar un espacio entre y el nombre de la etiqueta (como ), el primero lo conserva como texto plano, mientras que el segundo lo analiza como un elemento HTML válido (// están todos en la lista de permitidos);<< area<area><div><button>ajaxurl → el user-profile.js incluido en la página de inicio de sesión dispara automáticamente un POST jQuery → REST API JSONP (_jsonp) → Same Origin Method Execution (SOME, Paulos Yibelo 2022) → clic entre ventanas en el botón de autorización de Application Password del administrador → robo de credenciales de API → publicación de una página que contiene <script> → subida de un ZIP de plugin malicioso → ejecución directa de PHP (sin necesidad de activación);python3 xss2shell_poc.py -t http://wordpress.test --lhost 192.168.1.100 --lport 8080 -c "whoami"
| Parámetro | Descripción |
|---|---|
-t, --target | Dirección base de WordPress (incluye http/https, normaliza automáticamente la barra final) |
-c, --command | Comando a ejecutar una vez que el shell esté listo |
--lhost / --lport | Dirección/puerto de escucha (lport 0 = aleatorio) |
--keep | Conserva la página de publicación temporal (por defecto se limpia) |
Dependencias: Python 3.7+, cero paquetes de terceros; se requiere que un administrador inicie sesión en el sitio objetivo y abra la URL del atacante (una interacción).