
Temporäres WordPress-Plugin, das Authentifizierung für den Core REST Batch API-Endpunkt erfordert, um die wp2shell-Schwachstellenkette (CVE-2026-63030) zu entschärfen. Enthält optionales Audit-Log und eine Einstellungsseite.
Eine gezielte, temporäre Absicherung gegen unautorisierten Zugriff auf den REST-Batch-API-Endpunkt von WordPress Core.
SkelerSecurity Core Security Plugin erfordert eine Authentifizierung, bevor WordPress Anfragen an die REST-Batch-API-Route des Cores verarbeitet:
/wp-json/batch/v1/?rest_route=/batch/v1Es ist als eng gefasste Defense-in-Depth-Kontrolle für die als wp2shell bekannte Schwachstellenkette der WordPress REST Batch API konzipiert. Das Plugin verwendet den rest_pre_dispatch-Filter von WordPress, um anonyme Batch-Anfragen mit HTTP 401 Unauthorized abzulehnen, während der Zugriff für authentifizierte WordPress- und REST-API-Benutzer erhalten bleibt.
[!IMPORTANT] Dieses Plugin ist eine temporäre Absicherung, kein Ersatz für WordPress-Core-Updates. Wenden Sie das neueste WordPress-Sicherheitsupdate sofort an und überprüfen Sie, ob das Update erfolgreich abgeschlossen wurde.
Öffentliche Berichte beschreiben eine kritische Schwachstellenkette in WordPress Core, die eine REST-Batch-API-Routenverwechslung (CVE-2026-63030) und ein damit verbundenes SQL-Injection-Problem (CVE-2026-60137) umfasst. Der betroffene Endpunkt kann sowohl über die hübsche Permalink- als auch über die Query-String-REST-Routing-Formen erreicht werden.
Gemeldete betroffene Core-Versionen:
| Zweig | Betroffene Versionen | Behobene Version |
|---|---|---|
| WordPress 6.9 | 6.9.0–6.9.4 | 6.9.5 |
| WordPress 7.0 | 7.0.0–7.0.1 | 7.0.2 |
Auch der WordPress 6.8-Zweig erhielt eine entsprechende Härtung in 6.8.6. Verwenden Sie die neueste verfügbare unterstützte WordPress-Version für Ihre Umgebung, anstatt Versionsbereiche als Grund für eine verzögerte Aktualisierung zu betrachten.
/batch/v1./wp-json/batch/v1 als auch ?rest_route=/batch/v1 ab, da WordPress beide auf dieselbe REST-Route auflöst.401 zurück.rest_pre_dispatch-Priorität -1000).Für eine möglichst starke temporäre Absicherung kombinieren Sie dieses Plugin mit einer WAF- oder Reverse-Proxy-Regel, die anonyme Anfragen an beide oben genannten Endpunktformen blockiert.
Kopieren Sie das Verzeichnis skelersecurity-core-security in:
wp-content/plugins/
Aktivieren Sie das Plugin unter Plugins → Installierte Plugins.
Überprüfen Sie den Plugin-Status unter Tools → SkelerSecurity Core.
wp plugin activate skelersecurity-core-security
Das Plugin ist sofort nach der Aktivierung aktiviert. Besuchen Sie Tools → SkelerSecurity Core, um es zu verwalten:
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Batch-API-Schutz | Aktiviert | Erfordert Authentifizierung für die REST-Batch-API-Route des Cores. |
| Minimales Audit-Log | Aktiviert | Zeichnet auf, wann eine anonyme Batch-API-Anfrage blockiert wird. |
| Aufzubewahrende Einträge | 50 | Aufbewahrungslimit für lokale Audit-Einträge; konfigurierbar von 10 bis 200. |
Das optionale Audit-Log speichert nur:
/batch/v1)Es zeichnet bewusst keine IP-Adressen, Cookies, Autorisierungsheader, Anforderungstexte, Benutzernamen oder andere sensible Anforderungsdaten auf.
| Anfragetyp | Erwartetes Ergebnis bei aktiviertem Schutz |
|---|---|
Anonyme Anfrage an /wp-json/batch/v1 | Mit HTTP 401 blockiert |
Anonyme Anfrage an /?rest_route=/batch/v1 | Mit HTTP 401 blockiert |
Authentifizierte WordPress/REST-Anfrage an /batch/v1 | Erlaubt für normale WordPress-Autorisierungsverarbeitung |
| Anfrage an eine andere REST-Route | Von diesem Plugin nicht geändert |
Eine blockierte anonyme Antwort verwendet den Fehlercode:
rest_batch_authentication_required
/wp-json/batch/v1rest_route=/batch/v1Die Batch-API kann von WordPress-Administrationsworkflows, Plugins, Themes, mobilen Clients oder externen Integrationen verwendet werden. Authentifizierte Anfragen bleiben erlaubt, aber testen Sie geschäftskritische Funktionen nach der Aktivierung des Plugins.
Mögliche Auswirkungen können Integrationen umfassen, die absichtlich unauthentifizierte Anfragen an die Core-Batch-API senden. Wenn dieses Verhalten erforderlich ist, bewerten Sie das Risiko sorgfältig und implementieren Sie eine ordnungsgemäß authentifizierte Integration, anstatt den Endpunkt breit freizugeben.
Eine Absicherung auf Netzwerkebene sollte beide Routing-Stile abdecken. Nur /wp-json/batch/v1 zu blockieren ist unzureichend, da WordPress die Anfrage auch über den Query-Parameter rest_route routen kann.
Empfohlene Regellogik: