
wp2shell — poc de cadena RCE pre-auth de WordPress Core para CVE-2026-63030 y CVE-2026-60137
Si aprecias mi trabajo, considera apoyar el proyecto mediante USDT (TRC20): TQBA72kakjCZLnJt8fJYcD7dyQCEpzNtVN
wp2shell es una prueba de concepto de investigación de seguridad que demuestra una cadena de vulnerabilidades de pre-autenticación en WordPress Core que combina:
WP_QueryLa cadena demuestra cómo estas vulnerabilidades pueden combinarse para pasar de una solicitud no autenticada a la API REST a una inyección SQL, escalada de privilegios, creación de cuentas de administrador y, finalmente, ejecución remota de código autenticada.
[!WARNING]
Solo Investigación de Seguridad Autorizada
Este proyecto está destinado a:
- Investigación de vulnerabilidades
- Validación defensiva
- Pruebas de penetración autorizadas
- Laboratorios de seguridad
- CTFs y entornos educativos
Solo pruebe sistemas que le pertenezcan o para los que tenga autorización escrita explícita para evaluar.
No utilice este proyecto contra infraestructura de terceros sin autorización.
wp2shell es una herramienta unificada de investigación de seguridad para WordPress Core, que permite investigar la interacción entre dos vulnerabilidades:```text
CVE-2026-63030
|
v
REST API Batch Route Confusion
|
v
Validation / Dispatch Confusion
|
v
CVE-2026-60137
|
v
WP_Query SQL Injection
|
v
Blind SQL Access
|
v
Application / Object-State Manipulation
|
v
Privilege Escalation
|
v
Administrator Account Creation
|
v
Authenticated Code Execution
The PoC is implemented as a Python research tool and uses the Python
standard library without requiring third-party Python packages.
---
# Vulnerability Chain
The project combines two WordPress Core vulnerabilities.```text
Unauthenticated Request
|
v
+----------------------+
| CVE-2026-63030 |
| REST Batch Route |
| Confusion |
+----------+-----------+
|
v
Validation Confusion
|
v
+----------------------+
| CVE-2026-60137 |
| WP_Query SQLi |
+----------+-----------+
|
v
Blind SQLi
|
v
Application-State Abuse
|
v
Privilege Escalation
|
v
Administrator Access
|
v
Authenticated RCE
```
The important security property is the interaction between the two
vulnerabilities rather than either vulnerability in isolation.
---
# CVE-2026-63030
## Confusión de rutas en el endpoint REST API Batch
La primera vulnerabilidad afecta al procesamiento de solicitudes a
través del endpoint REST API Batch de WordPress.
La implementación del procesamiento por lotes mantiene la información
de coincidencia y validación de solicitudes en estructuras paralelas
indexadas por la posición de la solicitud.
Una sub-solicitud malformada puede hacer que esas estructuras se
desincronicen.
Esto crea una condición de despacho off-by-one en la que una solicitud
posterior puede procesarse utilizando un controlador o contexto de
validación asociado a otra solicitud.
Conceptualmente:```text
Request A
|
+-- validation entry
+-- matching entry
|
v
Malformed request
|
+-- internal state becomes desynchronized
|
v
Request B
|
+-- unexpected handler / validation context
```
El PoC realiza comprobaciones de comportamiento para determinar si la confusión de ruta es realmente alcanzable.
---
# CVE-2026-60137
## Inyección SQL en WP_Query
La segunda vulnerabilidad afecta a una ruta de procesamiento SQL de `WP_Query`.
Una vez establecida la primitiva de confusión de ruta, la entrada controlada por el atacante puede alcanzar la ruta de consulta vulnerable.
El PoC demuestra la inyección SQL resultante mediante pruebas diferenciales ciegas.
La funcionalidad de investigación incluye:
* Confirmación booleana ciega
* Corroboración opcional basada en tiempo
* Huella digital de la base de datos
* Extracción de escalares soportada
* Investigación de datos de usuario de WordPress
---
# Cómo funciona la cadena
## 1. Confusión de Ruta en REST Batch
Una solicitud no autenticada llega al endpoint REST Batch de WordPress.
Una sub-solicitud de lote malformada provoca que la coincidencia de solicitudes interna y el estado de validación se desincronicen.
Una solicitud posterior puede, en consecuencia, procesarse utilizando un contexto no previsto.
---
## 2. Inyección SQL
La primitiva de confusión de ruta proporciona la ruta necesaria para la segunda vulnerabilidad.
Un valor controlado por el atacante puede alcanzar la ruta de procesamiento vulnerable de `WP_Query`.
Esto crea una primitiva de inyección SQL ciega.
---
## 3. Extracción SQL ciega
La inyección SQL puede utilizarse como un canal de extracción ciego booleano.
El PoC contiene funcionalidad para investigar información de la base de datos e información de usuario de WordPress soportada.
---
## 4. Manipulación del estado de la aplicación
La cadena utiliza resultados controlados por la base de datos para influir en los objetos de la aplicación WordPress y en el procesamiento posterior.
Esto proporciona las primitivas necesarias para la etapa de escalada de privilegios.
---
## 5. Escalada de Changeset
La cadena utiliza el procesamiento de changesets de WordPress para establecer un contexto de ejecución de administrador.
Un objeto `customize_changeset` fabricado puede participar en la secuencia de escalada de privilegios.
---
## 6. Reentrada de Hook
La cadena reingresa al procesamiento de solicitudes de WordPress a través del ciclo de vida de solicitudes de la aplicación.
```