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

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-87902 — Prueba de concepto y paquete de divulgación para CVE-2026-87902, una inclusión de archivos locales no autenticada en WordPress Core a través de locate_template(), con un laboratorio de loopback y guía de parches. | Kitploit
Herramientas/GitHubGitHub/abraxas/cve-2026-87902
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónSeguridad WebPruebas de PenetraciónLabs y Práctica
GitHubabraxas/cve-2026-87902

CVE-2026-87902

Prueba de concepto y paquete de divulgación para CVE-2026-87902, una inclusión de archivos locales no autenticada en WordPress Core a través de locate_template(), con un laboratorio de loopback y guía de parches.

Ver Repositorio
311hace 1 díaAú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

Abraxas Labs — CVE-2026-87902 — WordPress

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  CVE-2026-87902

CVE-2026-87902 — WordPress

WordPress — WordPress Core 7.1.1 — WordPress

WordPress Core es vulnerable a Inclusión Local de Archivos (Local File Inclusion) a través de la función locate_template() en varias versiones hasta la 7.1.1, inclusive.

CVECVE-2026-87902 · CVE.org
CWECWE-98
CVSSAlto: 8.1 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
ProductoWordPress Core
Afectadotodas las versiones hasta la 7.1.1 (inclusive)
Parcheado7.1.2 y posteriores
Autenticaciónno autenticado (ver mapa de origen)
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1 · paquete de divulgación para el proveedor/cliente, no es un escáner

Aviso (del mapa de origen)

wp-includes/template.php get_page_template + locate_template en 7.1.1. Parche 7.1.2 _wp_is_template_path_allowed y validate_file sobre pagename decodificado.


Entrada

  • Método: GET
  • Ruta: /?page_id={id}&pagename=templates%252F%252e%252e%252F%252e%252e%252F%252e%252e%252Fuploads%252Fghsa7hp8-witness
  • Enrutador: Consulta de página del front-end no autenticada. get_page_template() construye page-{$pagename}.php a partir del pagename decodificado por URL. locate_template() concatena sobre el directorio del tema sin una jaula (jail).
  • Notas: CVE-2026-87902 CWE-98 WordPress <= 7.1.1 LFI no autenticado. Testigo: GHSA7HP8-WITNESS y wp_version=7.1.1 en la respuesta de la página. No es una reverse shell. No es pearcmd.

Cadena de llamadas

  • GET /?page_id=&lt;published page&gt;&pagename=&lt;double-encoded templates/../../../uploads/ghsa7hp8-witness&gt;
  • WP_Query parse_query is_page desde page_id; get_posts reemplaza WHERE con ID=page_id
  • get_page_template urldecode pagename luego page-{$pagename}.php
  • locate_template file_exists(stylesheet_path + '/' + template_name) sin jaula
  • template-loader realpath + include

Precondiciones del laboratorio

  • WordPress 7.1.1 (o cualquier rama afectada antes de los backports de 7.1.2)
  • tema clásico con un directorio de nivel superior llamado page-* (page-templates)
  • objetivo .php local legible (laboratorio: wp-content/uploads/ghsa7hp8-witness.php)

Testigo

El cuerpo de una respuesta 200 no autenticada contiene GHSA7HP8-WITNESS y wp_version=7.1.1. El control GET /?page_id=N no lo contiene.

No es éxito

  • testigo solo en un GET directo del archivo PHP en uploads (wp_version=none)
  • reverse shell
  • gadget pearcmd.php

Parche / remediación

Haga esto primero: Actualice WordPress Core a 7.1.2 o posterior.

Verificar después de la actualización

  • Vuelva a ejecutar CVE-2026-87902-Abraxas-Labs.py contra la compilación parcheada: el testigo mapeado no debe aparecer.
  • Confirme el aviso del proveedor / changeset en el árbol desplegado (ver referencias).
  • Una firma de WAF es un retraso, no un parche.

Si no puede actualizar de inmediato

  • Deshabilite o aísle el componente afectado.
  • Busque la condición del testigo en producción (nuevos usuarios privilegiados, archivos inesperados, filas inyectadas — lo que sea que nombre el mapa de este CVE).

Reproducción (laboratorio autorizado)

Apunte únicamente a http://127.0.0.1:8088 (o al loopback que haya enlazado). No apunte este script a internet.

root@kitploit:~
python3 CVE-2026-87902-Abraxas-Labs.py

El éxito es el testigo anterior en el cuerpo de la respuesta. Un HTML 200 genérico no lo es.


Imágenes del laboratorio

Pila de loopback usada para reproducir. Imágenes oficiales a menos que un Dockerfile en esta carpeta compile desde el código fuente.

  • lab/docker-compose.yml
  • lab/Dockerfile
root@kitploit:~
cd lab
docker compose up --force-recreate

Enlace el árbol del producto vulnerable junto a Compose si el YAML monta un directorio local (zip del plugin / etiqueta de código fuente de la tabla de versiones). No publique nada excepto 127.0.0.1.


Referencias

  • CVE-2026-87902 · NVD

  • CVE-2026-87902 · CVE.org

  • github.com/WordPress/wordpress-develop/security/advisories/GHSA-7hp8-65ch-5whp

  • www.wordfence.com/threat-intel/vulnerabilities/wordpress-core/wordpress-core-711-unauthenticated-local-file-inclusion-via-locate-template-path-traversal

  • www.cve.org/CVERecord?id=CVE-2026-87902

  • Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null


Registros (estructurados)

root@kitploit:~
# CVE-2026-87902 / GHSA-7hp8-65ch-5whp

CWE: CWE-98
CVSS: High 8.1 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H (Wordfence). GitHub advisory: Critical.

## Description

An unauthenticated attacker can make `get_page_template()` page-template resolution include a chosen readable local `.php` file outside the active theme directories. `locate_template()` in WordPress <= 7.1.1 concatenates the caller-supplied template name onto the theme path and does not verify the result stays inside the theme. The core-reachable vector is the url-decoded `pagename` query variable. WordPress 7.1.2 adds `_wp_is_template_path_allowed()`.

## Product

WordPress 7.1.1 (fixed in 7.1.2, backported through 4.7.37). Lab oracle is LFI of a witness PHP file, not RCE.

Licencia

Este paquete de divulgación está licenciado bajo la GNU Affero General Public License v3.0. Ver LICENSE.


Descargo de responsabilidad

Este paquete es para el proveedor, el propietario del sitio y laboratorios autorizados. El script se comunica con 127.0.0.1. Usarlo contra sistemas que no posee no está autorizado por Abraxas Labs. Sin garantía.

abraxaslabs.tech · github.com/abraxas · @abraxas_null

Descargar herramienta