WordPress hat eine kritische Schwachstelle behoben, über die Angreifer ohne Konto beliebige PHP-Dateien laden und teils eigenen Code ausführen können.
WordPress hat am 22. September mit Version 7.1.2 eine kritische Sicherheitslücke im Kernsystem geschlossen. Über die Schwachstelle kann ein Angreifer ohne eigenes Konto eine Website dazu bringen, eine PHP-Datei außerhalb der eigentlichen Theme-Ordner zu laden. Die Lücke trägt die Kennung CVE-2026-87902 und wird mit einem CVSS-Wert von 9,2 als kritisch eingestuft.
Schwachstelle in der Template-Auswahl
Der Fehler liegt in der Art, wie WordPress die passende Vorlagendatei für eine Seite auswählt. Ein Teil des dabei verwendeten Dateinamens wird aus einem Bestandteil der Webadresse gebildet. In den betroffenen Versionen prüfte WordPress diesen Wert nicht auf sogenannte Path-Traversal-Sequenzen, obwohl eine entsprechende Prüfung an anderer Stelle im Code bereits vorhanden war.
Wann echte Codeausführung möglich ist
Das bloße Laden einer lokalen PHP-Datei führt zunächst nur das aus, was diese Datei ohnehin bereits tut. Damit daraus tatsächlich vom Angreifer wählbarer Code ausgeführt werden kann, muss der Server bereits eine PHP-Datei enthalten, die beim Laden etwas für den Angriff Nützliches bewirkt. Da der gebildete Dateiname stets nach dem Muster page-{Wert}.php aufgebaut ist, benötigt ein erfolgreicher Angriff zusätzlich ein aktives Theme mit einem Ordner, dessen Name mit page- beginnt, sowie eine Zieldatei mit der Endung .php.
Einige Themes, darunter ältere Standard-Themes von WordPress, bringen einen solchen Ordner bereits mit. Der Sicherheitsanbieter Patchstack weist in einer eigenen Analyse darauf hin, dass sich das tatsächliche Risiko einer einzelnen Website vor allem an zwei Faktoren ablesen lässt: ob das aktive Theme einen entsprechenden page–Ordner besitzt und ob die PHP-Einstellung register_argc_argv aktiviert ist, von der eine bekannte Technik zur Codeausführung abhängt. Diese Einstellung ist bei PHP 8.5 standardmäßig deaktiviert, bei älteren PHP-Versionen dagegen häufig aktiv.
Betroffene Versionen und Updates
Betroffen sind alle WordPress-Versionen von 4.7.0 bis einschließlich 7.1.1, darunter auch die erst am 17. September veröffentlichte Version 7.1.1, die eine andere, separate Schwachstelle behoben hatte. Je nach genutztem Versionszweig sollten Website-Betreiber auf folgende Version aktualisieren: 7.1.x auf 7.1.2, 7.0.x auf 7.0.6, 6.9.x auf 6.9.9, 6.8.x auf 6.8.10, 6.7.x auf 6.7.9 sowie 6.6.x auf 6.6.9. WordPress hat den Fix darüber hinaus als Kulanzmaßnahme bis zur Version 4.7.37 in ältere, eigentlich nicht mehr unterstützte Versionszweige zurückportiert.
Websites mit aktivierten automatischen Hintergrund-Updates erhalten die Aktualisierung selbstständig, alle anderen können sie über das Dashboard unter „Aktualisierungen“ oder direkt über WordPress.org einspielen. Einen alternativen Workaround bietet WordPress nicht an, sodass ausschließlich das Update vor der Schwachstelle schützt.
Nach Angaben von WordPress lagen zum 22. September weder Berichte über eine aktive Ausnutzung der Schwachstelle noch ein öffentlich verfügbarer Proof-of-Concept-Exploit vor, auch ein Eintrag im Known-Exploited-Vulnerabilities-Katalog der US-Behörde CISA fehlte bislang. Die Entdeckung der Schwachstelle schreibt WordPress dem Sicherheitsforscher Robert Ressl zu.
(red)