PHP2Shell: So testen Sie selbst, ob Ihr Hoster PHP gepatcht hat

Illustration: Lupe prüft einen PHP-Server, Checkliste mit grünen Haken und einem offenen orangefarbenen PunktKI-generiert · Google C2PA Core Generator Library

TL;DR. Ob Ihr Hoster PHP2Shell gepatcht hat, prüfen Sie in zwei Minuten selbst, mit dem kostenlosen Plugin Security Check Report.

Was geprüft wird Ob die PHP-Version, mit der Ihre Website tatsächlich läuft, den Fix für CVE-2026-109618 und CVE-2026-109619 enthält.
Werkzeug Security Check Report ab Version 2.4.1, kostenlos im WordPress-Verzeichnis, sendet beim Check nichts nach außen.
Ergebnis Grün: Fix nachgewiesen. Orange: an der Versionsnummer nicht ablesbar, Update einspielen oder Backport vom Hoster bestätigen lassen.
Hilfe von CMS ADMINS Ihr Hoster reagiert nicht? Wir übernehmen Updates und Betreuung, auf Wunsch mit Hosting, auf dem wir PHP-Updates selbst einspielen.

Veröffentlicht: 22.10.2026 · Letzte Aktualisierung: 22.10.2026

Seit unserem Beitrag zu PHP2Shell, den kritischen PHP-Lücken CVE-2026-109618 und CVE-2026-109619, kam eine Frage besonders oft, vor allem von Website-Betreibern, deren Server nicht bei uns liegt: Wie finde ich selbst heraus, ob mein Hoster das Update schon eingespielt hat? Diese Anleitung beantwortet genau das. Sie brauchen dafür keinen Server-Zugang, nur einen Administrator-Login in WordPress.

Was ist der PHP2Shell-Check?

Der PHP2Shell-Check ist eine Prüfung im kostenlosen WordPress-Plugin Security Check Report, die seit Version 2.4.1 vom 21.10.2026 enthalten ist. Er liest die PHP-Version, mit der Ihre Website tatsächlich ausgeführt wird, und meldet, ob diese Version den Fix für CVE-2026-109618 und CVE-2026-109619 nachweislich enthält. Der Check sendet dabei nichts an Dritte und betrachtet nur das laufende PHP.

PHP2Shell selbst ist der Name für zwei kritische Speicherfehler im PHP-Kern (CVSS v4.0 9.2). Eine einzige Anfrage ohne Anmeldung kann darüber Code auf dem Server ausführen, unter PHP-FPM, mod_php, php-cgi, FrankenPHP und LiteSpeed. Das PHP-Team hat die Fixes am 21. Oktober 2026 veröffentlicht, laut Cloudflare laufen bereits Angriffe. Geschlossen wird die Lücke nur durch ein PHP-Update auf dem Server, kein WordPress-Plugin kann PHP selbst patchen. Genau deshalb hängt bei Shared Hosting alles an Ihrem Hoster.

Welche PHP-Versionen enthalten den Fix?

Laut Security-Advisory des PHP-Teams sind die Lücken in diesen Versionen behoben:

PHP-Zweig Version mit Fix
PHP 8.5 8.5.12 oder neuer
PHP 8.4 8.4.27 oder neuer
PHP 8.3 8.3.36 oder neuer
PHP 8.2 8.2.35 oder neuer
PHP 8.1 und älter kein offizielles Release, nur Backports einzelner Distributionen oder LTS-Anbieter

Den Stand bei Debian, Ubuntu, Red Hat, Plesk, cPanel und weiteren Anbietern pflegen wir im Ursprungsbeitrag unter Status der Distributionen.

Anleitung: Ihren Hoster in fünf Schritten selbst testen

Schritt 1: Plugin installieren

Melden Sie sich als Administrator in WordPress an. Öffnen Sie Plugins, Installieren und suchen Sie nach „Security Check Report“. Installieren und aktivieren Sie das Plugin von CMS ADMINS. Alternativ laden Sie es direkt unter wordpress.org/plugins/security-check-report. Voraussetzung sind WordPress ab 7.0 und PHP ab 7.4. Achten Sie darauf, dass mindestens Version 2.4.1 installiert ist, ältere Versionen enthalten den PHP2Shell-Check nicht.

Schritt 2: Prüfung starten

Im Admin-Menü erscheint der Eintrag „Security Check“. Starten Sie dort einen Lauf. Das Plugin prüft dabei insgesamt 62 Punkte Ihrer Installation, der PHP2Shell-Check ist einer davon. Der Lauf ändert keine Einstellung, keine Datei und kein Konto. Die einzige Ausnahme kündigt das Plugin selbst an: Es legt kurz eine Testdatei mit zufälligem Namen im Uploads-Ordner an, um zu prüfen, ob der Server dort PHP ausführen würde, und löscht sie im selben Request wieder.

Schritt 3: Ergebnis ablesen

Der PHP2Shell-Check steht im Bereich „Core, Plugins und Themes“. Er kennt zwei Ergebnisse:

  • Grün: Der Fix ist nachgewiesen. Das gilt für PHP 8.5.12, 8.4.27, 8.3.36 und 8.2.35 oder neuer im jeweiligen Zweig, für PHP 8.6 und neuer sowie für die Ubuntu-Paketstände, die den Backport enthalten. Für diese Lücke müssen Sie nichts weiter tun.
  • Orange: Der Fix lässt sich an der Versionsnummer nicht ablesen. Das heißt nicht, dass Ihre Website gehackt wurde, und auch nicht sicher, dass sie verwundbar ist. Red Hat, Plesk, cPanel und selbst gebaute Pakete behalten nach einem Backport oft die alte Versionsnummer. Orange ist deshalb eine Frage an Ihren Hoster.

Rot zeigt der Check bewusst nie, denn eine Versionsnummer allein beweist nicht, dass ein Server verwundbar ist.

Schritt 4: Bei Orange den Hoster fragen

Bei Managed Hosting oder Shared Hosting können Sie PHP meist nicht selbst aktualisieren. Prüfen Sie zuerst im Kundenmenü Ihres Hosters, ob Sie auf eine neuere PHP-Version wechseln können, etwa von 8.1 auf einen unterstützten Zweig. Lässt sich das Problem so nicht lösen, schreiben Sie dem Support. Diese Vorlage können Sie übernehmen:

Betreff: PHP2Shell (CVE-2026-109618, CVE-2026-109619): Patch-Stand für meine Website

Guten Tag,

meine Website (Ihre Domain) läuft laut WordPress mit PHP (Version aus dem Report). Bitte bestätigen Sie mir, ob auf diesem Server die Fixes für CVE-2026-109618 und CVE-2026-109619 eingespielt sind, entweder als PHP 8.5.12, 8.4.27, 8.3.36 oder 8.2.35 oder als Backport Ihrer Distribution. Falls ein Backport genutzt wird, nennen Sie mir bitte das Paket bzw. den Sicherheitshinweis, und ob PHP-FPM bzw. der Webserver danach neu gestartet wurde.

Falls die Fixes noch fehlen: Bis wann ist das Update geplant?

Mit freundlichen Grüßen
(Name, Kundennummer)

Die Frage nach dem Neustart ist kein Detail: Laufende PHP-Prozesse nutzen nach einem Paket-Update weiter die alte Version, bis PHP-FPM oder der Webserver neu gestartet wird.

Schritt 5: Nach dem Update erneut prüfen

Meldet Ihr Hoster das Update, prüfen Sie nach. Steht der PHP2Shell-Befund unter den Aufgaben oben im Report, genügt der Button an dieser Aufgabe: Er führt nur diese eine Prüfung erneut aus und antwortet innerhalb von Sekunden. Andernfalls starten Sie einen neuen vollständigen Lauf. Springt das Ergebnis auf Grün, ist der Fix nachgewiesen. Bleibt es Orange, obwohl der Hoster das Update bestätigt, ist das bei Backports mit alter Versionsnummer erwartbar. Heben Sie die Bestätigung des Hosters dann schriftlich auf.

Ohne WordPress: PHP-Version per Skript prüfen

Security Check Report gibt es nur für WordPress. Betreiben Sie Drupal, Joomla, Shopware oder eine eigene PHP-Anwendung, prüfen Sie die laufende PHP-Version mit einem kleinen Skript. Es gibt nur drei Werte aus: die PHP-Version, die Betriebsart (SAPI, etwa fpm-fcgi oder apache2handler) und einen Abgleich mit den Versionen aus der Tabelle oben. Server-Namen, Pfade oder Konfiguration gibt es bewusst nicht aus. Einen vollständigen phpinfo()-Auszug empfehlen wir nicht: Er verrät Angreifern deutlich mehr über Ihren Server, als für diese Frage nötig ist.

So gehen Sie vor:

  1. Speichern Sie den folgenden Code als Datei mit zufälligem Namen, zum Beispiel php-check-7f3k9q2x.php. Ein schwer zu erratender Name verhindert, dass Fremde die Datei zufällig finden.
  2. Laden Sie die Datei per SFTP oder über den Dateimanager Ihres Hosters in das Hauptverzeichnis Ihrer Website, also dorthin, wo auch die index.php Ihres Shops oder CMS liegt.
  3. Rufen Sie die Datei im Browser auf, etwa https://www.ihre-domain.de/php-check-7f3k9q2x.php, und notieren Sie die drei Werte.
  4. Löschen Sie die Datei danach sofort wieder vom Server. Lassen Sie sie nicht „für später“ liegen.
<?php
// PHP2Shell-Versionscheck (CMS ADMINS). Nach dem Aufruf SOFORT vom Server löschen.
header('Content-Type: text/html; charset=utf-8');
header('X-Robots-Tag: noindex, nofollow');

// Optionaler Zugriffsschutz: eigenen Schlüssel eintragen, dann mit ?key=IhrSchlüssel aufrufen
$schluessel = '';
if ($schluessel !== '' && (!isset($_GET['key']) || !hash_equals($schluessel, (string) $_GET['key']))) {
    http_response_code(404);
    exit;
}

// Versionen mit Fix laut PHP-Security-Advisory vom 21.10.2026
$fix = array('8.5' => '8.5.12', '8.4' => '8.4.27', '8.3' => '8.3.36', '8.2' => '8.2.35');

$zweig = PHP_MAJOR_VERSION . '.' . PHP_MINOR_VERSION;
if (isset($fix[$zweig]) && version_compare(PHP_VERSION, $fix[$zweig], '>=')) {
    $ergebnis = 'gepatcht (Version mit Fix: ' . $fix[$zweig] . ' oder neuer)';
} else {
    $ergebnis = 'bitte Hoster fragen (Fix an der Versionsnummer nicht ablesbar)';
}

echo '<p>PHP-Version: ' . htmlspecialchars(PHP_VERSION, ENT_QUOTES, 'UTF-8') . '</p>';
echo '<p>PHP-SAPI: ' . htmlspecialchars(PHP_SAPI, ENT_QUOTES, 'UTF-8') . '</p>';
echo '<p>Ergebnis: ' . htmlspecialchars($ergebnis, ENT_QUOTES, 'UTF-8') . '</p>';

Optional schützen Sie die Datei zusätzlich: Tragen Sie in der Zeile $schluessel = ''; zwischen den Hochkommas einen eigenen Schlüssel ein und rufen Sie die Datei dann mit ?key=IhrSchlüssel am Ende der Adresse auf. Ohne passenden Schlüssel antwortet das Skript mit „nicht gefunden“. Die Datei trotzdem sofort löschen.

So lesen Sie das Ergebnis: „gepatcht“ heißt, die laufende Version ist mindestens die Version mit Fix aus der Tabelle. „bitte Hoster fragen“ erscheint bei älteren Versionsnummern (auch mit Distributions-Zusatz wie 8.3.6-0ubuntu…), bei PHP 8.1 und älter sowie bei Zweigen, die nicht in der Tabelle stehen. Das heißt nicht automatisch, dass Ihr Server verwundbar ist: Debian, Ubuntu, Red Hat, Plesk und andere spielen Fixes oft als Backport ein, ohne die PHP-Versionsnummer zu erhöhen. Ob das passiert ist, verrät nur die Paketversion bzw. das Build-Datum. Fragen Sie Ihren Hoster in diesem Fall nach dem installierten PHP-Paket und dem zugehörigen Sicherheitshinweis, die Mailvorlage aus Schritt 4 passt auch hier. Welche Pakete bei welchem Anbieter den Fix enthalten, steht in unserer laufend gepflegten Statustabelle im Ursprungsbeitrag.

Alternative mit SSH-Zugang: Auf der Kommandozeile zeigt php -v die Version an. Beachten Sie aber: Die Kommandozeile nutzt oft ein anderes PHP als der Webserver bzw. PHP-FPM, gerade wenn beim Hoster mehrere Versionen parallel installiert sind. Maßgeblich für Ihre Website ist der Wert aus dem Skript im Browser. Außerdem gilt wie in Schritt 4: Nach einem Paket-Update läuft die alte Version weiter, bis PHP-FPM bzw. der Webserver neu gestartet wurde.

Was der Check nicht kann

Ein ehrliches Werkzeug sagt, wo es aufhört. Der PHP2Shell-Check hat klare Grenzen:

  • Er liest eine Versionsnummer, er testet keinen Angriff. Ob ein Backport ohne neue Versionsnummer eingespielt wurde, kann er nicht feststellen. Deshalb gibt es Orange statt Rot.
  • Er sieht nur das PHP Ihrer Website. Andere PHP-Versionen auf demselben Server, etwa für weitere Websites, Cronjobs oder die Kommandozeile, prüft er nicht. Auch wp security-check run auf der Kommandozeile läuft mit dem PHP der Kommandozeile, das von der Version des Webservers abweichen kann. Für diese Frage ist der Lauf im WordPress-Admin maßgeblich.
  • Grün sagt nichts über die Vergangenheit. Angriffe liefen laut Cloudflare schon vor dem Patch. Ein grünes Ergebnis heißt: Die Lücke ist jetzt geschlossen. Es heißt nicht, dass vorher niemand eingedrungen ist.
  • Kein Malware-Scanner, keine Firewall. Security Check Report blockiert keine Anfragen und bereinigt nichts. Hinweise auf eine Kompromittierung, etwa ausführbare Dateien im Uploads-Ordner oder Core-Dateien, die von den offiziellen Prüfsummen abweichen, meldet es als Ausgangspunkt für eine Untersuchung, nicht als Urteil.

Was tun bei Verdacht auf einen Angriff?

Zeigt der Report neben Orange auch Auffälligkeiten wie unbekannte Must-Use-Plugins, neue Administratorkonten oder ausführbare Dateien zwischen den Medien, reicht das PHP-Update allein nicht. Hinweise zur Einordnung finden Sie im Ursprungsbeitrag im Abschnitt Verdachtsfall. Bei einem akuten Vorfall hilft unsere Soforthilfe für gehackte WordPress-Websites.

Der Rest des Reports

Wenn Sie das Plugin schon installiert haben, lohnt der Blick über PHP2Shell hinaus. Security Check Report bewertet Ihre Installation mit einer Note von A bis F und stellt die fünf Aufgaben nach oben, die Sie zuerst angehen sollten. Dazu gehören zum Beispiel die Frage, ob Ihr Server PHP aus dem Uploads-Ordner ausführt, die Zwei-Faktor-Abdeckung der Administratoren und das Inventar der Application Passwords. Einen Überblick über alle Prüfbereiche finden Sie auf unserer Seite zum Security Check Report. Das Plugin ist kostenlos, steht unter GPLv2 und enthält keine Werbung für unsere Dienstleistungen. Den Quelltext finden Sie auf GitHub.

Bei CMS ADMINS gehören PHP-Patches zu Hosting und Wartung

Sie müssen nicht selbst beim Hoster nachfragen: Auf den von uns betreuten Hosting-Systemen spielen wir PHP-Sicherheitsupdates wie die gegen PHP2Shell selbst ein. Mit der WordPress-Wartung kümmern wir uns außerdem um Updates von WordPress, Plugins und Themes und behalten Ihre Website im Blick.

Hosting von CMS ADMINS · WordPress-Wartung ansehen

Häufige Fragen

Wie prüfe ich, ob mein Hoster PHP2Shell gepatcht hat?

Installieren Sie das kostenlose Plugin Security Check Report ab Version 2.4.1, starten Sie im Admin-Menü unter Security Check einen Lauf und lesen Sie das Ergebnis des PHP2Shell-Checks ab. Grün bedeutet, der Fix ist nachgewiesen. Orange bedeutet, Sie sollten PHP aktualisieren oder sich den Backport von Ihrem Hoster bestätigen lassen.

Heißt Orange, dass meine Website verwundbar ist?

Nein, nicht zwingend. Orange heißt, dass sich der Fix an der Versionsnummer nicht ablesen lässt. Red Hat, Plesk, cPanel und selbst gebaute Pakete behalten nach einem Backport oft die alte Nummer. Klären Sie den Stand mit Ihrem Hoster.

Warum zeigt der Check nie Rot?

Weil eine Versionsnummer allein nicht beweist, dass ein Server verwundbar ist. Ein Backport kann den Fix enthalten, ohne die Nummer zu ändern.

Kann das Plugin PHP2Shell beheben?

Nein. Die Lücken stecken im PHP-Kern und lassen sich nur durch ein PHP-Update auf dem Server schließen. Kein WordPress-Plugin kann PHP selbst patchen. Der Check zeigt nur, ob das Update angekommen ist.

Sendet das Plugin Daten an CMS ADMINS?

Nein. Der PHP2Shell-Check sendet nichts nach außen. Das Plugin verbindet sich insgesamt nur mit api.wordpress.org und Ihrer eigenen Website und hat keine Telemetrie.

Mein Ergebnis ist Grün. Bin ich damit sicher?

Grün heißt, dass die laufende PHP-Version den Fix für CVE-2026-109618 und CVE-2026-109619 enthält. Es sagt nichts darüber, ob vor dem Update bereits ein Angriff stattgefunden hat, und nichts über andere Schwachstellen.

Wie prüfe ich die PHP-Version ohne WordPress?

Laden Sie ein kleines PHP-Skript mit zufälligem Dateinamen in das Hauptverzeichnis Ihrer Website, rufen Sie es im Browser auf und löschen Sie es danach sofort wieder. Es zeigt PHP-Version und SAPI und vergleicht die Version mit 8.5.12, 8.4.27, 8.3.36 bzw. 8.2.35. Bei älteren Nummern oder Distributions-Zusätzen fragen Sie Ihren Hoster nach dem installierten Paket, da Fixes oft als Backport ohne neue Versionsnummer kommen. Der Befehl php -v auf der Kommandozeile kann eine andere Version zeigen als der Webserver.

Was kostet Security Check Report?

Nichts. Das Plugin ist kostenlos, steht unter GPLv2 und hat keine Pro-Version.

Quellen: GHSA-w8hw-w9fx-j79w (CVE-2026-109618) · GHSA-6wmf-4rv5-p3rp (CVE-2026-109619) · php.net Release-Ankündigung · Cloudflare · Security Check Report auf wordpress.org

Vorheriger Beitrag
PHP2Shell: Kritische PHP-Lücken CVE-2026-109618/109619, Patches verfügbar und Angriffe beobachtet