
wp2shell — PoC für die Pre-Auth-RCE-Chain im WordPress Core (CVE-2026-63030 und CVE-2026-60137)
Wenn Sie meine Arbeit schätzen, erwägen Sie bitte, das Projekt über USDT (TRC20): TQBA72kakjCZLnJt8fJYcD7dyQCEpzNtVN zu unterstützen
wp2shell ist ein Proof-of-Concept für Sicherheitsforschung, das eine Pre-Authentication-Schwachstellenkette im WordPress Core demonstriert, die Folgendes kombiniert:
WP_Query SQL-InjectionDie Kette demonstriert, wie diese Schwachstellen kombiniert werden können, um von einer nicht authentifizierten REST-API-Anfrage zu SQL-Injection, Privilegieneskalation, Erstellung eines Administratorkontos und letztendlich zu authentifizierter Remote-Codeausführung zu gelangen.
[!WARNING]
Nur autorisierte Sicherheitsforschung
Dieses Projekt ist vorgesehen für:
- Schwachstellenforschung
- Defensive Validierung
- Autorisierte Penetrationstests
- Sicherheitslabore
- CTFs und Bildungsumgebungen
Testen Sie nur Systeme, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Genehmigung zur Bewertung haben.
Verwenden Sie dieses Projekt nicht gegen die Infrastruktur Dritter ohne Autorisierung.
wp2shell ist ein einheitliches Sicherheitsforschungstool für WordPress Core
zur Untersuchung der Interaktion zwischen zwei Schwachstellen:```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
Der PoC ist als Python-Forschungswerkzeug implementiert und nutzt die Python
Standardbibliothek, ohne dass Python-Pakete von Drittanbietern erforderlich sind.
---
# Schwachstellenkette
Das Projekt kombiniert zwei Sicherheitslücken im WordPress-Core.```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
## REST-API-Batch-Routenverwirrung
Die erste Schwachstelle betrifft die Verarbeitung von Anfragen über den
WordPress-REST-API-Batch-Endpunkt.
Die Batch-Implementierung hält Anfrageabgleich- und Validierungsinformationen
in parallelen Strukturen vor, die nach der Anfrageposition indiziert sind.
Eine fehlerhafte Unteranfrage kann dazu führen, dass diese Strukturen
desynchronisiert werden.
Dies erzeugt eine Off-by-one-Dispatch-Bedingung, bei der eine spätere Anfrage
mit einem Handler oder Validierungskontext verarbeitet werden kann, der einer
anderen Anfrage zugeordnet ist.
Konzeptionell:```text
Request A
|
+-- validation entry
+-- matching entry
|
v
Malformed request
|
+-- internal state becomes desynchronized
|
v
Request B
|
+-- unexpected handler / validation context
```
Der PoC führt Verhaltensprüfungen durch, um festzustellen, ob die
Route-Confusion tatsächlich erreichbar ist.
---
# CVE-2026-60137
## WP_Query SQL-Injection
Die zweite Schwachstelle betrifft einen `WP_Query`-SQL-Verarbeitungspfad.
Sobald das Route-Confusion-Primitive etabliert ist, kann
angreiferkontrollierte Eingabe den anfälligen Abfragepfad erreichen.
Der PoC demonstriert die resultierende SQL-Injection durch blinde
Differentialtests.
Die Forschungsfunktionen umfassen:
* Boolesch-blinde Bestätigung
* Optionale zeitbasierte Bestätigung
* Datenbank-Fingerprinting
* Unterstützte Skalar-Extraktion
* WordPress-Benutzerdaten-Analyse
---
# So funktioniert die Angriffskette
## 1. REST-Batch-Route-Confusion
Eine nicht authentifizierte Anfrage erreicht den WordPress-REST-Batch-Endpunkt.
Eine fehlerhaft formatierte Batch-Teilanfrage führt dazu, dass der interne
Request-Matching- und Validierungszustand desynchronisiert wird.
Eine spätere Anfrage kann folglich in einem unbeabsichtigten Kontext
verarbeitet werden.
---
## 2. SQL-Injection
Das Route-Confusion-Primitive stellt den Pfad bereit, der für die zweite
Schwachstelle benötigt wird.
Ein angreiferkontrollierter Wert kann den anfälligen `WP_Query`-
Verarbeitungspfad erreichen.
Dadurch entsteht ein Blind-SQL-Injection-Primitive.
---
## 3. Blinde SQL-Extraktion
Die SQL-Injection kann als boolesch-blinder Extraktionskanal genutzt werden.
Der PoC enthält Funktionen zur Untersuchung von Datenbankinformationen und
unterstützten WordPress-Benutzerinformationen.
---
## 4. Manipulation des Anwendungszustands
Die Kette nutzt datenbankgesteuerte Ergebnisse, um WordPress-Anwendungsobjekte
und die nachfolgende Verarbeitung zu beeinflussen.
Dies stellt die Primitive bereit, die für die Privilege-Escalation-Stufe
benötigt werden.
---
## 5. Changeset-Eskalation
Die Kette nutzt die WordPress-Changeset-Verarbeitung, um einen
Administrator-Ausführungskontext herzustellen.
Ein fabriziertes `customize_changeset`-Objekt kann an der
Privilege-Escalation-Sequenz teilnehmen.
---
## 6. Hook-Wiedereintritt
Die Kette tritt über den Anwendungs-Request-Lebenszyklus erneut in die
WordPress-Request-Verarbeitung ein.
```