← Zurück zur Übersicht

Wegen php2shell war sogar die Charité offline. So könnt ihr die PHP-Version eurer Website prüfen

Am Mittwoch hat das PHP-Projekt außerplanmäßig Updates rausgegeben, für zwei Lücken, die unter dem Namen php2shell laufen. Beide sind mit 9,2 von 10 bewertet, und beide lassen sich ohne Anmeldung ausnutzen, also mit einer einzelnen Anfrage von außen (CERT-EU). Und dann ging es ziemlich schnell. Laut heise haben die Charité ihre gesamte Website, Teile von berlin.de und das Meldeportal der Berliner Polizei vom Netz genommen, in Dänemark, Finnland, Frankreich und den Niederlanden gingen Regierungsseiten offline oder in den Wartungsmodus. Cloudflare spricht von Millionen Angriffsversuchen, die schon etwa zehn Stunden vor der Veröffentlichung angefangen haben (heise). Bestätigte erfolgreiche Einbrüche gab es zu dem Zeitpunkt noch keine, das muss man fairerweise dazusagen.

Warum euch das betrifft, auch wenn ihr nie was von PHP gehört habt

PHP ist die Sprache, in der WordPress geschrieben ist, und ziemlich viele Shops, Kundenportale und Bewerberseiten auch. Läuft eure Firmenwebsite mit WordPress, läuft sie auf PHP. Kennt man meistens gar nicht. Also das ist der Teil, an den man sonst nie denkt, weil man ihn nicht sieht. Man sieht das Theme, die Plugins, vielleicht noch den Hoster.

Und da liegt diesmal halt das Problem. Die Lücke ist im PHP selbst, also in dem Programm auf dem Server, das die Seite überhaupt erst ausführt. Patchstack, die sich um WordPress-Sicherheit kümmern, schreibt es ziemlich deutlich: Jede Seite auf einer verwundbaren Version ist betroffen, egal welche Anwendung darauf läuft (Patchstack). Ihr könnt also in WordPress alle Plugins aktualisieren. Bringt hierfür nur leider gar nichts.

Was mich an den Zahlen am meisten stört, ist der Teil mit den alten Versionen. PHP 8.1 und alles davor bekommt vom PHP-Projekt keine Updates mehr. Das Sicherheitsteam hat dafür nur minimale Korrekturen im Quellcode veröffentlicht, die man selbst einbauen muss (CERT-EU). Eine Auswertung über die Suchmaschine Shodan hat am 20. Oktober rund 884.000 Server gefunden, die PHP 8.1 oder älter melden, das sind 59 Prozent von denen, die überhaupt eine Version angeben (The Hacker News). Heißt nicht, dass die alle angreifbar sind. Aber es zeigt halt, wie viele Seiten seit Jahren keiner mehr angefasst hat.

Ich hab bei mir nachgeguckt und war selbst überrascht

Unsere eigenen Anwendungen sind in Node geschrieben, PHP brauchen wir dafür nicht. Ich hätte also gesagt, das Thema geht an mir vorbei. Dachte ich. Hab heute trotzdem mal auf unserem Server nachsehen lassen, und da liegen drei PHP-Versionen drauf, 8.1, 8.2 und 8.3. Die kommen mit der Verwaltungsoberfläche, mit der der Server eingerichtet ist, auf dem Schirm hatte ich die ehrlich gesagt nicht.

Die gute Nachricht ist, dass alle drei am Mittwochmorgen neu gebaut wurden. 8.2 und 8.3 stehen jetzt auf 8.2.35 und 8.3.36, das sind genau die Versionen mit dem Fix. Bei 8.1 steht aber weiterhin 8.1.34, die gleiche Nummer wie seit Dezember 2025. Ob der Anbieter die Korrektur da reingebaut hat, steht in keiner Meldung, die ich gefunden habe. An der Versionsnummer sieht man es jedenfalls nicht. Muss ich also nachlesen. Und eigentlich braucht die Version da eh keiner.

Ich erzähl das, weil das bei vielen, glaub ich, ganz ähnlich ist. Irgendwo läuft PHP mit, auf dem alten Server, beim Hoster der zweiten Domain, in der Testumgebung der Agentur. Und keiner hat es auf dem Zettel, weil es nie ein Thema war. Rät heise übrigens auch, mal prüfen, ob PHP irgendwo unbemerkt läuft.

So könnt ihr die PHP-Version eurer Website prüfen

  1. Klären, wo die Seite überhaupt liegt und wer dafür zuständig ist. Eigener Server, Hoster mit Paket, oder die Agentur hat das alles gemacht. Bei Hostern mit Paket kümmert sich meistens der Hoster um das PHP selbst, die Version stellt man aber oft im Kundenmenü ein.
  2. Die Version nachsehen. Bei WordPress geht das ohne Technik: im Admin-Bereich unter Werkzeuge, Website-Zustand, Reiter Info, dann Server. Da steht die PHP-Version. Alternativ im Kundenmenü des Hosters.
  3. Mit den Versionen vergleichen, die den Fix haben: 8.5.12, 8.4.27, 8.3.36 und 8.2.35 (CERT-EU). Alles darunter in derselben Reihe ist noch offen.
  4. Steht da 8.1 oder älter, beim Hoster oder der Agentur schriftlich nachfragen, ob die Korrektur eingebaut ist, oder auf eine aktuelle Version wechseln. Aber Vorsicht beim Wechsel. Alte Themes und Plugins laufen auf neuem PHP manchmal nicht mehr, also erst testen, wenn es eine Testumgebung gibt.
  5. Alle anderen Stellen durchgehen, an denen PHP laufen könnte: zweite Domain, alter Shop, Testseite, Kundenportal. Die vergisst man am leichtesten, und die sind dann halt auch die, die keiner mehr aktualisiert.

Auf irgendwelche „Fix“-Plugins oder kopierte Schnipsel aus Foren würde ich mich nicht verlassen, davor warnt auch Patchstack. Das Update ist das Einzige, was die Lücke wirklich zu macht. Ist so.

Die eigentliche Frage ist, wer bei euch entscheidet

An der Charité finde ich eigentlich am spannendsten, dass da jemand innerhalb von Stunden entschieden hat, die ganze Website abzuschalten. Und das geht nur, wenn vorher klar ist, wer das darf und wer überhaupt Bescheid kriegt. Wüsstet ihr das bei euch? Bei der Website ist das oft gar nicht so klar, die Agentur hat sie vor fünf Jahren gebaut, der Hoster schickt Rechnungen, und Updates macht, naja, irgendwer, wenn es mal auffällt.

Das ist am Ende weniger eine Frage der Technik als eine vom Ablauf. Wer so einen Ablauf bei sich mal sortiert angucken will, kann das mit dem Prozess-Check machen.

Falls du mit mir arbeiten willst

Lass uns reden – ich sage dir ehrlich, ob ich helfen kann.

Kontakt aufnehmen