WordPress KI im Core: Abilities API & AI Client erklärt
Das Wichtigste in Kürze
Das Wichtigste in Kürze:
- Beide Bausteine sind ausgeliefert: Die Abilities API ist seit WordPress 6.9 (Dezember 2025) im Core, der AI Client seit WordPress 7.0 „Armstrong" – erschienen am 20. Mai 2026, rund einen Monat später als ursprünglich geplant.
- Zuerst updaten, dann experimentieren: WordPress 7.0.2 (17. Juli 2026) schließt die aktiv ausgenutzte Lücken-Kette wp2shell – eine Serverübernahme ohne Login. Direkt zum Sicherheits-Abschnitt ↓
- Kein LLM auf deinem Server: WordPress baut keine KI ein – es baut die standardisierten Schnittstellen dazu. Die Rechenarbeit bleibt bei OpenAI, Google und Co.
- Der AI Client: Entwickler greifen über die Funktion
wp_ai_client_prompt()einheitlich auf Modelle wie Gemini, GPT oder Claude zu – ohne anbieterspezifischen Code. Die frühere SchreibweiseAI_Client::prompt()aus der Composer-Vorabversion ist überholt. - Abilities API: Macht WordPress maschinenlesbar für externe Tools (n8n, Make) und KI-Agenten via MCP. Bereits heute in WordPress 6.9 verfügbar.
Einleitung
WordPress – das Fundament von über 40 % aller Websites weltweit – integriert KI nun direkt in das Kernsystem. Damit wird ein Großteil des bisher florierenden KI-Plugin-Marktes auf einen Schlag überflüssig. Bisher glich die KI-Nutzung in WordPress einem Flickenteppich: SEO-Texte von Plugin A, Bilder von Plugin B, Chat-Assistenz von Plugin C. Die Folge waren überladene Backends, Sicherheitsrisiken und unübersichtliche Abo-Kosten.
Das ändert sich in zwei Stufen. WordPress 6.9 (Dezember 2025) hat mit der Abilities API bereits das Agenten-Interface in den Core gebracht – das Vorgänger-Repository (Automattic/wp-feature-api) wurde archiviert, weil die Abilities API als offizielle Nachfolge-Implementierung in den WordPress Core übernommen wurde. Mit WordPress 7.0 „Armstrong" – veröffentlicht am 20. Mai 2026 – ist der AI Client gefolgt: die standardisierte PHP-Abstraktionsschicht zu Sprachmodellen. Zusammen bilden sie das Fundament für native KI-Automatisierung direkt in WordPress.
Der Weg dorthin war holpriger als geplant. Das eigentlich als Herzstück angekündigte Echtzeit-Kollaborationsfeature wurde nach den Release-Candidate-Tests aus 7.0 gestrichen; die KI-Infrastruktur rückte an seine Stelle. Gleichzeitig hebt 7.0 die Systemanforderungen an: mindestens PHP 7.4 sowie MySQL 8.0 bzw. MariaDB 10.6. Wer auf älteren PHP-Versionen sitzt, bleibt auf dem 6.9-Zweig hängen – und muss dort trotzdem sofort auf 6.9.5 aktualisieren.
Dieser Artikel erschien im Februar 2026, als der AI Client noch ein Vorschlag war. Er wurde am 30. Juli 2026 vollständig überarbeitet: WordPress 7.0 ist seit dem 20. Mai 2026 draußen, der AI Client ist im Core, und die Funktionsnamen haben sich gegenüber der Composer-Vorabversion geändert. Grundlage sind die offiziellen Dev Notes zum AI Client, die Dokumentation des WordPress AI Teams und das Abilities-API-Repository. Alle Code-Beispiele wurden auf die finale Core-API umgestellt.
Für Anwender: Was WP 6.9 und 7.0 out-of-the-box können
Das Dashboard bleibt vertraut, wird aber deutlich mächtiger. Anstatt zwischen ChatGPT, Midjourney und WordPress hin- und herzuspringen, soll die gesamte Content-Erstellung direkt in deinem Editor stattfinden. Voraussetzung: Ein API-Key bei einem KI-Anbieter deiner Wahl.
Die neuen Core-Funktionen machen Content-Marketing deutlich effizienter:
- Native Textgenerierung & Überarbeitung
- Im Gutenberg-Editor soll ein KI-Assistent als Standard-Werkzeug verfügbar werden. Du markierst einen Textabschnitt und gibst einen Befehl: „Mache diesen Absatz kürzer und prägnanter" oder lässt dir aus Stichpunkten einen fertigen Artikel entwerfen. Das System nutzt den Anbieter, den du zentral unter Einstellungen › Connectors eingerichtet hast. Eine erste funktionierende Umsetzung – die Titelgenerierung für Beiträge – ist bereits im offiziellen AI Experiments Plugin verfügbar.
- Bildgenerierung direkt in der Mediathek
- Bildgenerierung ist als geplante Ability für das AI Experiments Plugin v0.2.0 gelistet. Das Prinzip: Du öffnest die Mediathek, wählst „Generieren" und tippst einen Prompt. WordPress ruft den konfigurierten Bildanbieter (z.B. DALL-E oder Imagen) ab, speichert das Ergebnis physisch auf deinem Server und soll automatisch Alt-Texte für SEO hinzufügen.
- Automatisierte Mehrsprachigkeit
- Die KI-Integration im Core öffnet den Weg für Übersetzungs-Workflows direkt im Editor. Ein Plugin, das die Abilities API nutzt, kann Beiträge kontextbewusst übersetzen – wobei Layout und Blöcke erhalten bleiben. Im Gegensatz zu klassischen Übersetzungs-Plugins versteht ein LLM den inhaltlichen Kontext der Seite.
Unter der Haube für Entwickler: Abilities API (6.9) & AI Client (7.0)
WordPress hat in zwei Releases zwei fundamentale Schnittstellen eingeführt. Die Abilities API ist seit WordPress 6.9 im Core und macht WordPress maschinenlesbar für autonome Agenten. Der AI Client – seit WordPress 7.0 im Core – standardisiert den Zugriff auf externe Sprachmodelle als PHP-Abstraktionsschicht. Dazu kommt als dritter Baustein die Connectors API, die Zugangsdaten zentral verwaltet.
Wie steuert man diese Features programmatisch an? Hier sind die technischen Säulen:
1. Der AI Client (wp_ai_client_prompt()) – seit WP 7.0 im Core
Bisher musstest du für OpenAI, Google Gemini oder Anthropic eigene HTTP-Requests schreiben oder dich auf anbieterspezifische Plugin-Abstraktionen verlassen. Seit WordPress 7.0 gibt es dafür einen einheitlichen Weg im Core.
Wer die Vorabversion aus Composer genutzt hat, muss umbauen. Der Einstiegspunkt ist nicht mehr die statische Methode AI_Client::prompt(), sondern die Funktion wp_ai_client_prompt(). Sie liefert ein WP_AI_Client_Prompt_Builder-Objekt zurück, das Ausnahmen des zugrunde liegenden SDK abfängt und in WP_Error-Objekte übersetzt – WordPress-Konvention statt Exceptions.
- Keine Installation nötig: Ab WordPress 7.0 ist alles an Bord. Die frühere Composer-Abhängigkeit
wordpress/php-ai-clientsolltest du entfernen – der Core lädt die Bibliothek selbst, ein zweiter Autoloader führt zu doppelten Klassendefinitionen und damit zu Fatal Errors. Wer noch WordPress unter 7.0 unterstützen muss, lädt seinen Composer-Autoloader nur bedingt:if ( ! function_exists( 'wp_get_wp_version' ) || version_compare( wp_get_wp_version(), '7.0', '<' ) ) { require_once __DIR__ . '/vendor/autoload.php'; } - Zwei Schichten: Unten arbeitet der plattformunabhängige PHP AI Client (camelCase, Exceptions), darüber der WordPress-Wrapper
WP_AI_Client_Prompt_Builder(snake_case,WP_Error, WordPress-HTTP-Transport und Hooks). - Vendor-Lock-in beendet: Du schreibst deinen Code einmal. Der Seitenbetreiber entscheidet unter Einstellungen › Connectors, welcher Anbieter und welches Modell genutzt werden. Um Zugangsdaten muss sich dein Plugin-Code gar nicht kümmern – das übernimmt die Connectors API.
- Der Core bringt keine Anbieter mit: Das ist der Punkt, der in der Praxis am häufigsten übersehen wird. WordPress liefert nur die Abstraktionsschicht; die Anbieter kommen als separate Plugins. Das WordPress-Projekt pflegt dafür drei offizielle Implementierungen: AI Provider for Anthropic, AI Provider for Google und AI Provider for OpenAI. Ohne Provider-Plugin und ohne API-Key passiert nichts.
-
Einfaches Beispiel:
// Einfacher Text-Prompt – Modell wird automatisch gewählt $text = wp_ai_client_prompt( 'Schreibe eine kurze Einleitung über WordPress.' ) ->generate_text(); if ( is_wp_error( $text ) ) { return; // Fehler behandeln – immer prüfen! } echo wp_kses_post( $text ); -
Erweitertes Beispiel mit Optionen:
$text = wp_ai_client_prompt( 'Optimiere diesen SEO-Titel.' ) ->using_system_instruction( 'Du bist ein erfahrener SEO-Redakteur.' ) ->using_temperature( 0.5 ) ->using_max_tokens( 200 ) ->generate_text(); -
Vor dem Aufrufen prüfen, ob ein passendes Modell verfügbar ist:
$prompt = wp_ai_client_prompt( 'Analysiere diesen Text auf Lesbarkeit.' ); if ( $prompt->is_supported_for_text_generation() ) { $result = $prompt->generate_text(); } else { // Fallback: Feature ausblenden oder Hinweis anzeigen }Diese Prüfung kostet nichts: Sie löst keinen API-Aufruf aus, sondern vergleicht die Builder-Konfiguration deterministisch mit den Fähigkeiten der konfigurierten Modelle. Verlasse dich niemals darauf, dass KI-Funktionen verfügbar sind, nur weil WordPress 7.0 installiert ist – auf den meisten Installationen ist gar kein Anbieter eingerichtet.
Der AI Client nutzt intern die WordPress HTTP API (wp_remote_request()) – kein anbieterspezifischer cURL-Code nötig. Neben generate_text() gibt es generate_image(), Sprachausgabe und Video, dazu strukturierte JSON-Antworten über as_json_response() und Modellwünsche über using_model_preference().
Der Filter wp_ai_client_prevent_prompt kann einzelne Prompts blockieren, bevor sie rausgehen. Das ist der sauberste Weg, KI-Aufrufe auf bestimmte Rollen zu begrenzen oder im Notfall komplett abzuschalten – etwa bei Verdacht auf gestohlene Zugangsdaten:
add_filter( 'wp_ai_client_prevent_prompt', function ( $prevent, $builder ) {
// Nur Administratoren dürfen Prompts auslösen
if ( ! current_user_can( 'manage_options' ) ) {
return true;
}
return $prevent;
}, 10, 2 );
Blockierte Prompts lösen keinen API-Aufruf aus, die is_supported_*()-Prüfungen liefern false, und Plugins können ihre Oberfläche sauber ausblenden. Einen eingebauten Token- oder Kosten-Deckel hat der AI Client dagegen nicht – den musst du beim Anbieter selbst setzen.
2. Die Abilities API – bereits in WordPress 6.9
Das ist der wahre Gamechanger für Automatisierung – und er ist bereits verfügbar. Die Abilities API (seit WordPress 6.9 im Core) definiert, was dein WordPress tun kann, und teilt dies der Außenwelt maschinenlesbar mit. Sie bringt ein neues funktionales Primitiv in WordPress: eine standardisierte und entdeckbare Art, wie Plugins ihre Funktionen anbieten. Wichtig: In WordPress 6.9 wurde nur die serverseitige (PHP) Implementierung ausgeliefert. Mit WordPress 7.0 kommt zusätzlich die Client-Side Abilities API, die Abilities auch im Browser standardisiert registrieren und ausführen kann – für noch reichere Workflows direkt im Editor.
-
Ability registrieren:
wp_register_ability( 'mein-plugin/erstelle-entwurf', array( 'label' => 'Beitragsentwurf erstellen', 'category' => 'content', 'permission_callback' => function() { return current_user_can( 'edit_posts' ); }, 'execute_callback' => 'mein_plugin_erstelle_entwurf_callback', 'input_schema' => array( 'type' => 'object', 'properties' => array( 'titel' => array( 'type' => 'string' ), 'inhalt' => array( 'type' => 'string' ), ), ), ) ); - Function Calling ready: Abilities haben ein definiertes Input- und Output-Schema im JSON-Format. Ein KI-Modell kann diese Abilities als Werkzeuge (Function Calls) nutzen – die KI weiß dadurch, was sie in WordPress tun kann.
- MCP-Integration: Über den MCP Adapter werden registrierte Abilities direkt für externe KI-Assistenten (wie Claude oder ChatGPT) als Tools verfügbar – mit einem einzigen Meta-Parameter:
wp_register_ability( 'mein-plugin/meine-ability', array( // ... 'meta' => array( 'mcp' => array( 'public' => true, // Pflicht für MCP-Zugriff ), ), ) ); - Headless & Automatisierung: Externe Tools wie n8n, Make oder autonome KI-Agenten können die REST API abfragen, sehen die verfügbaren Abilities und können selbstständig Beiträge erstellen, übersetzen oder veröffentlichen.
3. Bildgenerierung als geplante Ability
Auch Bildgenerierung soll als registrierte Ability verfügbar werden. Die Roadmap des AI Experiments Plugins listet Bildgenerierung für Version 0.2.0. Das Prinzip folgt dem generellen Abilities-Muster: Eine registrierte Ability nimmt einen Prompt und eine gewünschte Bildgröße als Input entgegen, ruft den konfigurierten Bildanbieter auf und gibt die attachment_id des gespeicherten Bildes zurück.
- Das Bild wird physisch auf deinem Server gespeichert – kein externer Hosting-Dienst nötig.
- Der exakte Endpunkt und die finale API-Signatur werden mit dem offiziellen Release dokumentiert. Verlasse dich für produktiven Code nicht auf inoffizielle Vorschaupfade.
- Perfekt für automatisierte Workflows: Ein n8n-Agent kann Beitragstext generieren und ein passendes Titelbild erstellen lassen – alles über standardisierte Abilities-Endpunkte.
wp2shell: Warum 7.0.2 keinen Aufschub duldet
Dieser Artikel handelt davon, wie WordPress seine REST-Schnittstelle für Maschinen öffnet. Im Juli 2026 hat sich gezeigt, dass genau diese Schicht auch die Angriffsfläche ist. Am 17. Juli 2026 veröffentlichte das WordPress-Security-Team drei Sicherheitsreleases, die eine Schwachstellen-Kette schließen, die unter dem Namen wp2shell bekannt geworden ist. Sie erlaubt einem anonymen Angreifer, aus dem Internet Code auf dem Server auszuführen – auf einer frisch installierten WordPress-Seite, ohne Plugins, ohne Theme-Besonderheiten, ohne Account.
Das ist ungewöhnlich. Der weit überwiegende Teil aller WordPress-Schwachstellen steckt traditionell in Plugins, nicht im Core; im aktuellen Patchstack-Sicherheitsbericht entfielen rund 91 Prozent der neu gemeldeten Lücken auf Plugins. Eine ausnutzbare Pre-Auth-RCE im Kern selbst ist ein Ereignis, das es alle paar Jahre gibt.
| Zweig | Betroffen | Behoben in |
|---|---|---|
| WordPress 7.0 | 7.0.0 – 7.0.1 (beide Lücken) | 7.0.2 |
| WordPress 6.9 | 6.9.0 – 6.9.4 (beide Lücken) | 6.9.5 |
| WordPress 6.8 | 6.8.0 – 6.8.5 (nur SQL-Injection) | 6.8.6 |
| WordPress 7.1 | Beta 1 (beide Lücken) | 7.1 Beta 2 |
| Älter als 6.8 | nicht betroffen | – |
Die vollständige RCE-Kette funktioniert nur ab 6.9, weil der zweite Baustein erst dort eingeführt wurde. Der 6.8-Zweig ist trotzdem verwundbar – dort greift die SQL-Injection allein.
Die zwei Lücken im Detail
wp2shell ist keine einzelne Schwachstelle, sondern eine Verkettung. Erst zusammen ergeben die beiden Fehler eine Serverübernahme – und genau das macht sie so lehrreich für jeden, der eigene REST-Endpunkte oder Abilities schreibt.
1. Die SQL-Injection: CVE-2026-60137
Der Parameter author__not_in von WP_Query – über die REST API als author_exclude erreichbar – wurde nicht korrekt typisiert. Wurde er statt als Array als einfacher String übergeben, landete sein Inhalt direkt in der zusammengesetzten SQL-Abfrage. Der Fehler kam mit WordPress 6.8 in den Core.
Das war für sich genommen bereits ernst, aber begrenzt: Eine Sperrliste verhinderte, dass unangemeldete Nutzer den Parameter überhaupt erreichen. GitHub bewertet die Lücke isoliert als moderat, die NVD-Einordnung liegt mit rund 9,1 deutlich höher – der Unterschied erklärt sich daraus, dass die NVD-Bewertung die Verkettung mitdenkt.
Die Lehre für eigenen Code: Niemals einen Query-Parameter ungeprüft in SQL geben. Für Listen von IDs gibt es wp_parse_id_list(), für einzelne Werte absint(). Und wenn du eine eigene Abfrage baust, gehört jeder Wert durch $wpdb->prepare().
// Falsch: Parameter wandert ungeprüft weiter
$ids = $request->get_param( 'exclude' );
// Richtig: erzwungene Typisierung auf eine Liste von Integern
$ids = wp_parse_id_list( $request->get_param( 'exclude' ) );
2. Die Routen-Verwirrung: CVE-2026-63030
Das ist der kritische Teil – und der eigentlich interessante. WordPress 6.9 hat einen Batch-Endpunkt eingeführt (/wp-json/batch/v1, alternativ ?rest_route=/batch/v1), mit dem ein Client mehrere API-Operationen in einem einzigen Request bündeln kann. Das ist genau die Art von Effizienz, die Automatisierung und Agenten-Workflows brauchen.
Der Batch-Prozessor in WP_REST_Server::serve_batch_request_v1() arbeitet in zwei getrennten Durchläufen: erst validieren, dann ausführen. Dabei pflegt er zwei parallele Arrays. Schlug die Pfad-Zerlegung eines Teil-Requests fehl, wurde der Fehler in das Validierungs-Array geschrieben – aber nicht in das Array der Routen-Treffer. Damit lief die Indizierung der beiden Arrays auseinander.
Die Folge: Jeder nachfolgende Teil-Request wurde dem falschen Handler zugeordnet. Ein Angreifer konnte damit einen Request unter dem Kontext einer anderen Route ausführen lassen – und so die Sperrliste umgehen, die die SQL-Injection auf angemeldete Nutzer beschränkte. Aus einer eingehegten Lücke wurde eine, die jeder aus dem offenen Internet erreicht.
Der Patch stellt sicher, dass Validierungs- und Request-Array zu jedem Zeitpunkt synchron bleiben. Bemerkenswert ist die Angriffsmechanik: Die eigentliche Schadlogik steckt in verschachtelten Teil-Requests im Body und ist im äußeren Request überhaupt nicht sichtbar – klassische Filterregeln greifen daher oft nicht.
Die Lehre für eigenen Code: Wer parallele Arrays führt, muss deren Ausrichtung nach jedem Fehlerfall prüfen. Ein Fehlerpfad, der in ein Array schreibt und in ein zweites nicht, ist ein Sicherheitsproblem, kein Schönheitsfehler.
Zum Zeitpunkt der Veröffentlichung war noch keine Ausnutzung bekannt. Patchstack registrierte die ersten Angriffe noch am Abend des 17. Juli, also innerhalb von Stunden. Bis zum 19. Juli zählte VulnCheck über zwei Dutzend öffentlich verfügbare Exploits; am 21. Juli nahm die CISA beide CVEs in den KEV-Katalog auf. Bestätigt wurde die Ausnutzung unabhängig von Patchstack, Wordfence, Wiz Research, watchTowr, Hexastrike und VulnCheck. Beobachtet wurden dabei persistente Webshells, untergeschobene Plugins und neu angelegte Administrator-Konten. Der Patchstack-Bericht 2026 nennt als Mittelwert bis zur Massenausnutzung hochwirksamer WordPress-Lücken fünf Stunden – dieser Fall lag darunter.
Warum das gerade diesen Artikel betrifft
Man kann wp2shell als reinen Betriebsunfall lesen, der mit KI nichts zu tun hat. Das wäre zu kurz gedacht, aus zwei Gründen.
Erstens ist die REST API die Schicht, auf der die ganze KI-Architektur aufsetzt. Abilities werden über REST entdeckbar, der MCP Adapter spricht über REST, n8n und Make sprechen über REST. Der Batch-Endpunkt kam in derselben Version wie die Abilities API – nicht als Teil davon, aber aus demselben Motiv: Maschinen sollen effizient mit WordPress reden können. Jede Verbreiterung dieser Oberfläche vergrößert die Fläche, auf der Fehler wirksam werden. Das ist kein Argument gegen die Entwicklung, sondern eines für Sorgfalt: Der permission_callback jeder Ability ist kein Formalismus.
Zweitens – und das ist der unangenehme Teil – hat sich der Wert einer kompromittierten WordPress-Installation mit Version 7.0 verändert. Wer per RCE Datenbankzugriff erlangt, findet dort jetzt möglicherweise die unter Einstellungen › Connectors hinterlegten KI-Zugangsdaten. Patchstack-Gründer Oliver Sild hatte bereits zwei Tage nach dem 7.0-Release gewarnt, es werde „an absolute rush by hackers to steal API keys" geben. Seine Begründung: Bisher war eine kleine Firmenseite für Angreifer wenig wert – Serverressourcen, SEO-Spam, Weiterleitungen. Ein KI-API-Key ist dagegen ein Abrechnungsinstrument. Er lässt sich unmittelbar in Rechenleistung auf fremde Kosten verwandeln, und der Schaden zeigt sich erst auf der Abrechnung.
- Ausgabelimit beim Anbieter setzen. Das ist die wirksamste Einzelmaßnahme. Ein gestohlener Key mit 50-Euro-Deckel ist ein Ärgernis, ein unbegrenzter Key finanziert fremde Rechenzeit, bis es jemand merkt.
- Pro Anbieter ein eigener Key, nicht ein Sammelkey für alles. Dann lässt sich einzeln sperren.
- Zwei-Faktor-Authentifizierung für jeden Admin-Zugang. Ein kompromittiertes Admin-Konto ist auf einer 7.0-Installation teurer als früher.
- Keys rotieren – planmäßig und zusätzlich immer dann, wenn Mitarbeitende oder Dienstleister ausscheiden.
- Keine Kosten-Bremse im Core: Der AI Client hat keinen eingebauten Durchsatz- oder Token-Deckel. Teilen sich mehrere Plugins einen Key, kann ein Kontingent binnen Minuten aufgebraucht sein. Der Filter
wp_ai_client_prevent_promptist der Notausschalter. - Vom Host installierte KI-Plugins prüfen. Einige Hoster haben eigene KI-Agenten-Plugins netzwerkweit vorinstalliert. Was du nicht nutzt, gehört deaktiviert und gelöscht.
Auch der Connectors-Screen selbst war nicht fehlerfrei: Kurz nach dem 7.0-Release wurde gemeldet, dass das API-Key-Feld im Provider-Formular sich nicht durchgängig wie ein Passwortfeld verhielt und der Browser den Wert im Autofill-Vorschlag im Klartext anzeigen konnte.
Sofortmaßnahmen
Schritt 1: Version prüfen und aktualisieren
Im Backend unter Dashboard › Aktualisierungen. Alles außer 7.0.2, 6.9.5, 6.8.6 oder neuer ist verwundbar. Per WP-CLI geht es schneller und lässt sich über viele Installationen skripten:
# Aktuelle Version anzeigen
wp core version
# Innerhalb des eigenen Zweigs auf die neueste Fassung aktualisieren
wp core update --minor
# Danach verifizieren
wp core version
wp core verify-checksums
wp core update --minor bleibt bewusst im aktuellen Zweig: Eine 6.9.4 wird zu 6.9.5, nicht zu 7.0.2. Das ist bei einem Notfall-Update meist das gewünschte Verhalten, weil es keine Breaking Changes mitbringt. Für den Sprung auf 7.0 brauchst du mindestens PHP 7.4 – und einen ruhigen Moment, nicht diesen.
Auto-Updates aktiviert lassen. Genau für solche Fälle existiert der Hintergrund-Updater. Wer ihn abschaltet, tauscht Kontrolle gegen ein Zeitfenster, in dem die Seite offen steht.
Schritt 2: Wenn sofortiges Aktualisieren nicht geht
Nur als Überbrückung, nicht als Lösung: Der Batch-Endpunkt lässt sich auf Server- oder WAF-Ebene sperren. Beide Zugriffswege müssen abgedeckt sein – der Pfad und der Query-Parameter.
# Nginx
location ~* ^/wp-json/batch/v1 { return 403; }
if ( $arg_rest_route ~* "^/batch/v1" ) { return 403; }
# Apache (.htaccess)
RewriteEngine On
RewriteRule ^wp-json/batch/v1 - [F,L]
RewriteCond %{QUERY_STRING} rest_route=/batch/v1 [NC]
RewriteRule .* - [F,L]
Vorsicht: Der Block-Editor nutzt den Batch-Endpunkt für einige Speichervorgänge. Eine Sperre kann Redaktionsabläufe beschädigen. Sie ersetzt das Update nicht, sie kauft dir Stunden.
Am Rand notiert, weil es kursiert: Nach Analysen von Rapid7 und Cloudflare wird der Code-Execution-Pfad nur erreicht, wenn kein persistenter Object Cache aktiv ist. Ein Redis- oder Memcached-Setup war also weniger exponiert. Das ist eine interessante Beobachtung und kein Schutzkonzept – die SQL-Injection bleibt in jedem Fall erreichbar.
Schritt 3: Prüfen, ob es zu spät war
Weil die Ausnutzung Stunden nach der Veröffentlichung begann, empfiehlt Rapid7 ausdrücklich, auch nach dem Update nach Spuren zu suchen. Das Update entfernt keine Hintertür, die vorher gelegt wurde. Worauf zu schauen ist:
- Zugriffslogs nach Anfragen an
/wp-json/batch/v1oderrest_route=/batch/v1durchsuchen, insbesondere zwischen dem 17. Juli und dem Zeitpunkt deines Updates. - Auf SQL-Muster im Parameter
author_excludeachten. Laut Patchstack trug rund drei Viertel der blockierten Anfragen dort einen Injection-Versuch. Typische Verschleierungen: wechselnde Groß-/Kleinschreibung, eingebettete Kommentare, MySQL-Conditional-Comments und URL-Kodierung –AnD,AND/**/,/*!AND*/. - Dateiintegrität prüfen:
wp core verify-checksumsundwp plugin verify-checksums --all. - Unbekannte PHP-Dateien suchen, vor allem im Upload-Verzeichnis, in dem eigentlich kein PHP liegen darf:
find wp-content/uploads -name "*.php". - Benutzerliste kontrollieren:
wp user list --role=administrator– neu angelegte Admin-Konten sind ein klassisches Persistenz-Merkmal. - Plugin-Liste kontrollieren auf Einträge, die niemand installiert hat.
Bei einem bestätigten Einbruch gilt Datenbankzugriff als gegeben: Passwörter aller Nutzer zurücksetzen, die Sicherheitsschlüssel und Salts in der wp-config.php erneuern (das wirft alle Sessions raus), das Datenbank-Passwort wechseln – und, falls die Seite bereits auf 7.0 mit eingerichteten Connectors lief, jeden KI-API-Key beim Anbieter widerrufen und neu ausstellen. Ein Key, der einmal in einer ausgelesenen Datenbank stand, ist verbrannt.
Quellen
Für die Weiterrecherche, primäre Quellen zuerst:
- Offizielle Release-Ankündigung zu WordPress 7.0.2 (WordPress.org, 17. Juli 2026)
- Security Advisory
CVE-2026-63030– Batch-Routen-Verwirrung, Einstufung „Critical" - Security Advisory
CVE-2026-60137– SQL-Injection inauthor__not_in - Patchstack: Beobachtung der ersten Angriffswellen – inklusive der real gesehenen Payload-Muster
- Rapid7: technische Analyse und Empfehlungen zur Kompromittierungsprüfung
- Tenable: FAQ zur Angriffskette
- VulnCheck: Exploit-Verbreitung und Beobachtungen aus dem Sensornetz
- SecurityWeek: Einordnung der Ausnutzung in der Praxis
Wird WordPress zur Insellösung?
Wenn WordPress KI „in den Core baut", klingt das für manche nach dem nächsten aufgeblähten Monolithen. Tatsächlich ist das Gegenteil der Fall.
WordPress baut keine KI in den Core ein – es läuft kein Sprachmodell auf deinem Server. WordPress baut lediglich die Schnittstellen (APIs) in den Core ein. WordPress wird dadurch weniger zur Insel, sondern vielmehr zu einem standardisierten Router.
- Bisher – Das Insel-Problem
- Wenn du 5 verschiedene KI-Plugins nutzt, bringt jedes seinen eigenen Code, seinen eigenen API-Client und seine eigene Datenbankstruktur mit. Jedes Plugin kocht sein eigenes Süppchen – ohne gemeinsamen Standard. Das Ergebnis: inkonsistente Fehlerbehandlung, mehrfache API-Keys, aufgeblähte Datenbank.
- Neu – Der Hub-Ansatz
- WordPress standardisiert nur den „Postboten" (den AI Client). Es sagt: „Egal, wer von außen mit mir reden will (n8n, KI-Agenten via MCP) oder mit wem ich nach außen reden soll (OpenAI, Gemini, Anthropic) – wir nutzen alle dieselbe genormte Tür." Die eigentliche Rechenarbeit – das Durchrechnen neuronaler Netze, das Generieren von Bildern – passiert vollständig auf den Servern der KI-Anbieter.
Belastet das PHP und den Server?
Hier muss man zwischen zwei grundlegend verschiedenen Problemen unterscheiden, denn die Antworten fallen gegensätzlich aus.
- CPU/RAM-Auslastung – Entwarnung
- PHP wird durch KI-Aufrufe nicht stark belastet. PHP rechnet keine neuronalen Netze durch und rendert keine Bilder. Es sendet lediglich einen HTTP-Request: Ein paar Kilobyte Prompt-Text gehen raus, eine Textantwort oder eine Bild-URL kommen zurück. Für PHP ist das kaum anstrengender als das Abrufen eines RSS-Feeds. Der AI Client nutzt intern
wp_remote_request()– die gleiche WordPress-HTTP-API, die auch für externe REST-Aufrufe genutzt wird. - PHP-Timeouts – Die echte Herausforderung
- Hier liegt die eigentliche technische Herausforderung. PHP arbeitet synchron: Wenn du auf „Bild generieren" klickst und der Anbieter 15 Sekunden braucht, bleibt der PHP-Worker in dieser Zeit offen und wartet. Machen das 50 Redakteure gleichzeitig, sind alle PHP-Worker blockiert – die Website bricht zusammen (Error 504 Gateway Timeout).
Vergleich: Content-Erstellung im Wandel
Der Unterschied zwischen dem bisherigen Plugin-Chaos und der nativen Core-Integration zeigt, warum dieses Update so bedeutend ist. Beide Bausteine sind inzwischen ausgeliefert: die Abilities API mit WordPress 6.9, der AI Client mit 7.0.
| Bisher (WP 6.8 und älter) | WordPress 6.9 / 7.0 |
|---|---|
| Teure Drittanbieter-Plugins für KI nötig | Nativer AI Client (7.0) plus ein kostenloses Provider-Plugin – du zahlst nur die reinen API-Kosten direkt beim Anbieter |
| Jedes Plugin verwaltet eigene API-Keys separat | Die Connectors API unter Einstellungen › Connectors versorgt das gesamte System – ein Speicherort, der entsprechend abgesichert gehört |
| Bilder müssen extern generiert und manuell hochgeladen werden | Bildgenerierung über generate_image() im Core; die Ablage in der Mediathek übernimmt das jeweilige Plugin |
| Automatisierung erfordert individuelle REST-Hacks pro Plugin | Abilities API (6.9, bereits im Core) bietet standardisierte Schnittstellen für KI-Agenten, n8n und MCP |
| Kein gemeinsamer Standard: Jedes Plugin definiert seine eigene Public API anders | Abilities sind selbst-dokumentierende, entdeckbare Einheiten mit einheitlichem Input/Output-Schema |
Häufig gestellte Fragen
Brauche ich mit WordPress 6.9 / 7.0 noch externe KI-Plugins?
Die Infrastruktur zieht in den Core ein, aber du benötigst weiterhin einen Zugang zu den KI-Modellen selbst – also einen API-Key von OpenAI, Anthropic, Google oder einem anderen Anbieter. Du zahlst direkt für das, was du verbrauchst (Pay-per-Use), sparst dir aber Plugin-Abonnements und profitierst von einer einheitlichen Konfiguration für alle KI-Features auf deiner Website.
Läuft mit WordPress 7.0 ein KI-Modell auf meinem Server?
Nein. Das ist ein häufiges Missverständnis. WordPress baut keine KI in den Core ein – es baut die standardisierten Schnittstellen dazu. Dein Server sendet lediglich HTTP-Requests an externe KI-Anbieter (OpenAI, Google, Anthropic). Die eigentliche KI-Rechenarbeit findet auf deren Servern statt. Für deinen Server ist ein KI-Aufruf technisch kaum belastender als das Abrufen eines RSS-Feeds.
Kann WordPress jetzt von ganz alleine bloggen?
Ja, in Kombination mit Automatisierungstools. Die Abilities API (seit WP 6.9 im Core) macht WordPress maschinenlesbar. Du kannst Workflows einrichten, bei denen ein externes Skript (z.B. n8n) aktuelle Daten abruft und WordPress über registrierte Abilities den Befehl gibt, einen Beitragsentwurf zu erstellen. Über den MCP Adapter können KI-Assistenten wie Claude oder ChatGPT direkt mit WordPress interagieren. Wichtig: Der permission_callback deiner Abilities muss sicherstellen, dass solche Automatisierungen nur mit korrekter Authentifizierung möglich sind.
Was passiert mit meinen alten KI-Plugins?
Gute Plugin-Entwickler passen ihre Architektur an: Statt eigener HTTP-Clients nutzen sie wp_ai_client_prompt(), statt proprietärer APIs registrieren sie Abilities, und um Zugangsdaten kümmert sich die Connectors API. Das macht ihre Plugins schlanker und interoperabler. Reine „Wrapper"-Plugins, die nur eine ChatGPT-Schnittstelle in den Editor brachten, werden durch die nativen Funktionen strukturell überflüssig. Schlanke, modulare Plugins wie die WordPress-SEO-Plugin ohne Ballast zeigen, wie das Prinzip „nur laden, was du brauchst" schon heute funktioniert.
Werden die KI-Bilder in der Mediathek gespeichert?
Ja. Bildgenerierung ist als Ability geplant. Generierte Bilder sollen direkt in der WordPress-Mediathek gespeichert werden, inklusive automatisch generierter Alt-Texte. Das Bild wird physisch auf deinem Server gehostet – kein externer Hosting-Dienst nötig.
Wem gehören die generierten Bilder und Texte?
Generierte Bilder sollen physisch in deiner Mediathek (/wp-content/uploads/) gespeichert werden – du hostest sie selbst. Die Nutzungsrechte hängen vom jeweiligen Anbieter ab, dessen API-Key du konfiguriert hast. Prüfe die Nutzungsbedingungen des gewählten Anbieters (z.B. OpenAI, Google, Anthropic), da diese sich unterscheiden und für kommerzielle Nutzung relevant sind.
Muss ich wegen der Sicherheitslücke sofort auf WordPress 7.0.2 aktualisieren?
Ja. Die Releases 7.0.2, 6.9.5 und 6.8.6 vom 17. Juli 2026 schließen die Kette wp2shell (CVE-2026-63030 und CVE-2026-60137), über die ein anonymer Angreifer ohne Login und ohne installierte Plugins Code auf deinem Server ausführen kann. Betroffen sind 6.9.0 bis 6.9.4 und 7.0.0 bis 7.0.1, die SQL-Injection zusätzlich ab 6.8.0. Die Lücke wird aktiv ausgenutzt. Prüfe unter Dashboard › Aktualisierungen deine Version – alles unterhalb von 7.0.2, 6.9.5 bzw. 6.8.6 muss sofort aktualisiert werden. Alle Details und Sofortmaßnahmen findest du weiter oben.
Ist das DSGVO-konform für europäische Websites?
Das ist ein kritischer Punkt für EU-Betreiber. Da alle Prompts und Inhalte an externe US-amerikanische Anbieter (OpenAI, Google, Anthropic) gesendet werden, müssen die üblichen Anforderungen für Drittlandübermittlungen erfüllt sein: Verarbeitungsverträge (DPA) mit den Anbietern, Prüfung der Standardvertragsklauseln sowie transparente Information der Nutzer, falls deren Inhalte in Prompts einfließen. WordPress stellt die Infrastruktur bereit – die datenschutzrechtliche Verantwortung liegt beim Seitenbetreiber.
Fazit: Infrastruktur für die nächste Generation
WordPress hat das Versprechen eingelöst, KI nicht als Spielerei, sondern als echte Infrastruktur zu integrieren. Die Abilities API (6.9), der AI Client und die Connectors API (7.0) sind keine Features – sie sind ein neues architektonisches Fundament. WordPress wird vom Werkzeug zum Router: Wer sendet was an wen, und wer darf was tun?
Der Juli 2026 hat der Sache allerdings eine zweite Lesart hinzugefügt. Dieselbe Frage – wer darf was tun – entscheidet auch darüber, wie teuer ein Fehler wird. wp2shell hat gezeigt, wie schnell eine Schwachstelle in der Maschinen-Schnittstelle ausgenutzt wird, und die zentralen KI-Zugangsdaten haben den Wert einer kompromittierten Installation spürbar erhöht. Beides spricht nicht gegen die Entwicklung. Es spricht dafür, sie mit derselben Ernsthaftigkeit zu betreiben, mit der man Zahlungsdaten behandeln würde.
Zusammenfassung:
- Abilities API (WP 6.9): Serverseitig bereits im Core. Macht WordPress-Funktionen maschinenlesbar und entdeckbar für KI-Agenten, MCP-Clients und Automatisierungstools. WordPress 7.0 ergänzt die Client-Side Abilities API für Browser-basierte Workflows.
- AI Client (seit WP 7.0, 20. Mai 2026): Standardisierter PHP-Zugang zu allen großen KI-Anbietern über
wp_ai_client_prompt()– ohne Vendor-Lock-in. Anbieter kommen als separate Provider-Plugins, Zugangsdaten verwaltet die Connectors API. - Sicherheit zuerst: WordPress 7.0.2 (bzw. 6.9.5 / 6.8.6) schließt die aktiv ausgenutzte Kette wp2shell. Ohne dieses Update ist jede weitere Optimierung sinnlos.
- Kein LLM auf dem Server: WordPress ist der Router, die KI-Rechenarbeit bleibt bei den Anbietern. Wie eine Serverless-Architektur im Vergleich abschneidet, zeigt der Tech-Vergleich.
- Sicherheit & DSGVO nicht vergessen:
permission_callbackist Pflicht. Drittlandübermittlungen müssen rechtlich abgesichert sein. - Praxis-Beispiel: Wie ein KI-Assistent mit RAG, Memory und Function Calling heute schon funktioniert, zeigt Evita. Konkrete Anwendungsfälle für Unternehmen gibt es im KI-Webseiten-Guide.
Nutzt du aktuell schon Automatisierungs-Tools wie n8n oder Make in Kombination mit WordPress? Die Abilities API ist heute verfügbar – der richtige Zeitpunkt, um erste Workflows damit aufzubauen und auf den nativen Standard umzustellen, bevor WP 7.0 erscheint.
Brauchst du Hilfe bei der KI-Automatisierung?
Die neuen APIs bieten enormes Potential – aber die richtige Implementierung für dein spezifisches Projekt braucht Erfahrung. Du möchtest erste Workflows mit der Abilities API aufbauen, deinen Content-Prozess automatisieren oder dein eigenes Plugin fit für den nativen AI Client machen? Lass uns konkret besprechen, was für dein Setup sinnvoll ist.