Was geschah
Zwei Tage nach Click2Shell — der Kette, die WordPress 7.1.1 am 17. September schloss — kam das nächste Update: Version 7.1.2 (22. September) patched CVE-2026-87902 (CVSS 9.2), eine Local File Inclusion bis hin zu Remote Code Execution. Und diesmal dauerte es keine Tage, bis Angreifer zuschlugen: Previdian registrierte den ersten Ausnutzungsversuch am 22. September um 11:49 UTC — am selben Tag, an dem der Patch erschien. Patchstack bestätigte die Beobachtung: Die Aktivität wandelte sich schnell von Reconnaissance gegen harmlose Core-Dateien zu aktiver Ausnutzung mit pearcmd.php.
Bis zum 23. September hatte Previdian 68 Exploitation-Versuche in seinen Honeypots gezählt, von IP-Adressen in New Jersey (USA) und Indonesien.
Die Lücke: get_page_template() liest überall
WordPress wählt Seitentemplates über die Funktion get_page_template(). CVE-2026-87902 erlaubt einem unauthentifizierten Angreifer, diese Auswahl so zu beeinflussen, dass eine beliebige lesbare lokale .php-Datei außerhalb der Theme-Verzeichnisse eingebunden wird. Wenn die Server-Umgebung und das aktive Theme die richtigen Vorbedingungen erfüllen, wird daraus RCE.
Die beiden Voraussetzungen:
- Das aktive Child- oder Parent-Theme enthält ein Verzeichnis auf oberster Ebene, dessen Name mit
page-beginnt (z.B.page-templates). - Eine lesbare
.php-Datei existiert auf dem Server und ist für den Webserver-Account zugänglich (z.B./usr/local/lib/php/pearcmd.php).
Beide Bedingungen sind nicht exotisch — page-templates ist ein gängiges Theme-Verzeichnis, und pearcmd.php liegt auf vielen PHP-Standardinstallationen genau dort.
Der Angriff in der Wildbahn
Die beobachteten Requests folgen einem klaren Muster:
pearcmd.phpeinbinden — die PEAR-Kommandozeile, die auf vielen Servern installiert und lesbar ist.- Datei nach
/tmp/schreiben — über die PEAR-Kommandozeile eine PHP-Datei auf die Platte legen. - Upload-Script von GitHub ziehen — die geschriebene Datei lädt
raw.githubusercontent.com/MrG3P5/web-shell/refs/heads/main/uploader.phpnach und includiert sie. Danach hat der Angreifer eine Webshell.
Beobachtete Dateinamen auf kompromittierten Systemen:
wp-pear-rce-flag.phppoc87902.phpluci_<random>.phpzeta_<random>.php
IP-Adressen aus den Angriffen:
- 104.194.9.227 (New Jersey, USA — erster beobachteter Versuch)
- 43.250.53.42
- 180.251.159.243
- 195.178.110.247
- 107.189.14.87
- 45.61.184.170
- 92.246.130.76
Update (25. September): Die Angriffswelle läuft an
heise online berichtet auf Basis der Patchstack-Analyse: Der Traffic auf die Schwachstelle ist seit dem ersten Abend auf mehr als das Zehnfache angestiegen. Die Angriffe verlaufen inzwischen mehrstufig und routiniert:
- Recon: Inklusionsversuche auf gewöhnliche Core-Dateien — die Server-Antwort zeigt den Angreifern, ob die Instanz verwundbar ist.
- Zielsuche: Zugriff auf
pearcmd.php, in drei unterschiedlichen Verzeichnissen auf dem Host. - Schreiben: Über den
config-create-Befehl vonpearcmd.phpgeht es vom lesenden zum schreibenden Zugriff — eigene PHP-Inhalte landen in beliebigen Dateien.
Die bislang beobachteten Dateien in /tmp und /var/tmp sind dabei eher Beleg der Codeausführung als eine persistente Backdoor — /tmp ist üblicherweise nicht aus dem Netz erreichbar. Kompromittiert ist der Host trotzdem vollständig: Auf demselben Weg lassen sich Dateien auch an aus dem Netz erreichbaren Orten ablegen.
Ernsthaft verschärft hat sich die Lage durch öffentlich kursierenden Proof-of-Concept-Code und eine Vorlage für den Schwachstellenscanner Nuclei — entsprechende User-Agents sind in den Angriffen zu sehen. Die Einbruchsschwelle liegt damit bei praktisch null.
Zusammenhang mit Click2Shell
Am 17. September hatte WordPress 7.1.1 veröffentlicht — elf Sicherheitslücken, darunter Click2Shell, eine Kette aus Selektor-Injektion und erzwungener Theme-Installation, die aus einem einzigen Admin-Klick eine vollständige Übernahme macht. Fünf Tage später folgte 7.1.2 für CVE-2026-87902. Beide Lücken sind unauthentifiziert, beide führen zu RCE, beide betreffen Core — aber die Angriffsvektoren sind grundverschieden: Click2Shell braucht einen eingeloggten Administrator, der einen präparierten Link besucht (Social Engineering oder XSS als Einfallstor). CVE-2026-87902 braucht keine Interaktion — es reicht ein Server, auf dem die Vorbedingungen erfüllt sind, und eine lesbare pearcmd.php.
Zusammen bilden sie ein Bild der aktuellen WordPress-Angriffsfläche: Auf der einen Seite das Backend mit seinen Interaktion-Abhängigkeiten (Admin-Klick, Theme-Installation, Customizer), auf der anderen der Template-Resolver, der mit lokalen Dateien operiert, als wäre der Dateisystem-Pfad vertrauenswürdiger Input. Zwei unterschiedliche Codestellen, zwei unterschiedliche Vorbedingungen, ein gemeinsames Ergebnis: PHP-Code unter dem Server-Account.
Wie ernst ist es?
Ryan Dewhurst (Previdian) ordnet es ein: Die Vorbedingungen machen Massen-Kompromittierung weniger wahrscheinlich als bei einer Lücke ohne Einschränkungen. WordPress hat Auto-Updates standardmäßig aktiviert — viele Instanzen sind also bereits gepatched. Aber: Honeypots zeigen, dass die Ausnutzung sofort nach Disclosure beginnt. Wer nicht auto-updated oder die Vorbedingungen erfüllt, ist sofort Ziel.
Patchen auf 7.1.2 (oder 7.0.6, 6.9.9, 6.8.10 — betroffen sind alle Versionen von 4.7.0 bis einschließlich 7.1.1; für alle älteren Zweige gibt es Backports bis hinunter zu 4.7.37). Danach auf die typischen Spuren prüfen: unbekannte .php-Dateien in /tmp/, /var/tmp/ und Webroot; Einträge in Access-Logs gegen die obigen IPs; pearcmd.php-Aufrufe, die nicht von legitimen PEAR-Operationen stammen.
Quellen
- The Hacker News: Attackers Exploit WordPress CVE-2026-87902 Within Hours of Disclosure
- heise online: WordPress-Lücke nur Stunden nach Patch attackiert
- Previdian: CVE-2026-87902 Telemetry
- Patchstack: CVE-2026-87902 — Attackers Started Probing WordPress Sites Hours After the Patch
- GitHub Advisory GHSA-7hp8-65ch-5whp
- Vorheriger Beitrag: Click2Shell — Wie ein präparierter Link WordPress-Sites komplett übernimmt