PHP2Shell: zwei kritische PHP-Lücken schließen und auf Missbrauch prüfen

Am 21. Oktober 2026 hat das PHP-Projekt zwei Lücken geschlossen, über die Angreifer ohne Anmeldung eigenen Code auf Webservern ausführen können. Beide sitzen in PHP selbst, nicht in WordPress, Nextcloud oder dem Shop darüber; erste Angriffe laufen bereits. Dieser Beitrag erklärt, wer betroffen ist, welche Paketstände sicher sind, was bis zum Patch hilft und wie Sie mit unserem freien Prüfskript nach Spuren eines Einbruchs suchen.

Das Wichtigste vorab

  • Was: zwei Lücken im PHP-Kern, CVE-2026-109618 und CVE-2026-109619, genannt „PHP2Shell“; CVSS 4.0 je 9,2.
  • Folge: Codeausführung ohne Anmeldung unter dem Benutzer des Webservers, bei mod_php noch bevor Ihr Anwendungscode läuft.
  • Lage: massenhafte Angriffsversuche seit dem 21.10., ein erster schon am 17.10.; das BSI warnt mit Stufe 3 (Orange), Sicherheitsanbieter melden erste erfolgreiche Einbrüche.
  • Fix: PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35 oder das Paket Ihrer Distribution, danach PHP-FPM bzw. Apache neu starten.
  • Prüfen: unser read-only Skript php2shell-check.sh sucht nach Spuren und zeigt im Terminal nur Zählwerte.

Prüfskript herunterladen: php2shell-check.sh, Version 1.0.0, Bash, BSD-2-Clause, ändert nichts am System.
SHA-256: 095b35d4fa5826c00a4ac667fd7d94505c677771c8e5a6e764d27f603fb19f0b
php2shell-check.sh herunterladen Prüfsumme (.sha256)

Was ist passiert?

Die Lücke hat eine lange Vorgeschichte und eine sehr kurze Schlussphase. Erste Hinweise auf das Speicherproblem fand ein von OSTIF organisiertes Audit schon 2024, ohne dass ein Angriffsweg erkennbar war. Im August 2026 meldeten die Sicherheitsfirma Calif und kurz darauf Wiz unabhängig voneinander einen Weg zur Codeausführung; im September folgten weitere Angriffswege von OpenAI. Geplant war das Release für den 22. Oktober.

Zeitleiste: 2024 erste Hinweise durch ein Audit; August und September 2026 Meldungen von Calif, Wiz und OpenAI; 17. Oktober erster Angriffsversuch; 20. Oktober Leak der CVE-Nummern und vorgezogenes Release; 21. Oktober Patches, Distributionen und Behördenwarnungen, massenhafte Angriffsversuche; 22. Oktober bestätigt das BSI die Patches, erste erfolgreiche Ausnutzung gemeldet.
Abbildung 1: Von der ersten Spur bis zur Ausnutzung.

Einordnung: Massenhafte Angriffsversuche sind belegt, einzelne erfolgreiche Einbrüche melden Sicherheitsanbieter. In den Katalog aktiv ausgenutzter Lücken der CISA (KEV) sind beide CVEs zum Stand dieses Beitrags nicht aufgenommen. Offiziell gilt CVSS 4.0 mit 9,2 für beide Lücken; die NVD kommt nach CVSS 3.1 auf 9,8 und 8,1. Wer PHP im Internet betreibt, sollte nicht auf eine Bestätigung warten.

Die beiden Lücken verständlich erklärt

Ein PHP-Worker arbeitet Anfragen in einer festen Reihenfolge ab: Er nimmt die Anfrage an, liest die Eingaben ein (Formularfelder, Cookies, den Fortschritt laufender Uploads), führt das Skript aus, räumt den Speicher der Anfrage auf und nimmt die nächste. Beide Fehler sitzen in diesem Rahmen, nicht im Anwendungscode darüber.

Fünf Stufen einer Anfrage im PHP-Worker: annehmen, einlesen, Skript, aufräumen, nächste Anfrage. CVE-2026-109618 sitzt beim Einlesen, CVE-2026-109619 beim Aufräumen und dem Übergang zur nächsten Anfrage. Der Worker wird wiederverwendet.
Abbildung 2: Wo die beiden Lücken im Ablauf einer Anfrage sitzen.

CVE-2026-109618: Speicher läuft beim Einlesen voll

PHP begrenzt den Speicher je Anfrage über memory_limit. Ist die Grenze erreicht, springt PHP abrupt aus dem laufenden Code heraus. Passiert das, während die Anfragedaten erst halb aufgebaut sind, hält das spätere Aufräumen den halben Zustand für gültig; daraus lässt sich Codeausführung machen. Den Speicher treibt ein Angreifer gezielt hoch, ohne die üblichen Grenzen zu reißen: Multipart-Anfragen ohne Längenangabe umgehen die Prüfung von post_max_size, ein Multipart-Teil darf beliebig viele Header tragen und verschachtelte Feldnamen vervielfachen die Arbeit.

Das PHP-Projekt hat die volle Codeausführung mit mod_php und Standardgrenzen nachgewiesen. Im Labor von Datadog genügte ein einzelner Feldname von rund 3,5 MB, allerdings bei einem bewusst auf 16 MB gesenkten memory_limit. Der Fix ersetzt den abrupten Sprung durch einen geordneten Abbruch an sicherer Stelle.

CVE-2026-109619: Zustand überlebt seinen Speicher

Ein PHP-Worker bedient viele Anfragen nacheinander und hält dafür globalen Zustand. Unterbricht ein fataler Fehler, ein Timeout oder ein Speicherfehler das Aufräumen, zeigt ein Teil dieses Zustands weiter auf Speicher der alten Anfrage, obwohl der schon freigegeben ist (use-after-free). Die nächste Anfrage im selben Worker kann ihn dann benutzen. Bestätigt sind drei Wege:

Warum das so gefährlich ist: Bei mod_php gelingt der Angriff, bevor Ihr eigener Code überhaupt läuft. Ein Update von WordPress, Nextcloud oder Shopware schließt die Lücken nicht, eine Web Application Firewall in der Anwendung sieht sie nicht. Nur ein gepatchtes PHP hilft.

Wer ist betroffen?

Betroffen ist jede PHP-Laufzeit, die HTTP-Anfragen bedient, nach Angaben von BSI und CERT-EU über alle Versionen seit PHP 5. Das Risiko hängt von der Betriebsart ab:

BetriebsartRisikoAnmerkung
Apache mit mod_phpsehr hochBeide Lücken mit voller Codeausführung nachgewiesen, vor jedem Anwendungscode.
PHP-FPM (nginx, Apache mit proxy_fcgi)hochCVE-2026-109619 über den Session-Weg auf einem normalen Pool nachgewiesen; für CVE-2026-109618 gibt es laut Advisory noch keinen vollständigen Exploit.
php-cgi, FrankenPHP, LiteSpeedgefährdetVom PHP-Projekt als gefährdet eingestuft; die Ausnutzbarkeit hängt von der Konfiguration ab.
PHP auf der Kommandozeile (CLI)nicht genanntKeine Quelle nennt die CLI als betroffen; das Update ersetzt sie trotzdem mit.
PHP in Containernwie obenDas Image bringt sein eigenes PHP mit; apt upgrade auf dem Host hilft nicht.

Falle php -v: Der Befehl zeigt nur die Version der Kommandozeile. Apache oder PHP-FPM können eine andere Version oder einen anderen Build laden. Prüfen Sie deshalb die installierten Pakete und die laufenden Prozesse, nicht die CLI. Distributionen spielen Korrekturen außerdem zurück, ohne die Versionsnummer von PHP zu ändern: maßgeblich ist die Paketversion.

Sichere Versionen

Die wichtigsten Fixstände, Stand 22. Oktober 2026. Vergleichen Sie mit der Paketversion Ihrer Quelle:

QuellePaketFixstandHinweis
PHP (upstream)8.5 · 8.4 · 8.3 · 8.28.5.12 · 8.4.27 · 8.3.36 · 8.2.358.1 und älter: kein offizielles Release, nur Quell-Backports
Ubuntu 26.04 LTSphp8.58.5.4-0ubuntu1.5USN-8948-1
Ubuntu 24.04 LTSphp8.38.3.6-0ubuntu0.24.04.13USN-8948-1
Ubuntu 22.04 LTSphp8.18.1.2-1ubuntu2.28USN-8948-1
Ubuntu 20.04 · 18.04php7.4 · php7.27.4.3-4ubuntu2.29+esm5 · 7.2.24-0ubuntu0.18.04.17+esm14USN-8948-2, nur mit Ubuntu Pro
Debian 13 trixiephp8.48.4.27-1~deb13u1DSA-6574-1
Debian 12 bookwormphp8.28.2.35-1~deb12u1DLA-4848-1 (Debian LTS)
RHEL 10php · php8.48.3.36-1.el10_2 · 8.4.27-1.el10_2RHSA-2026:87070 und :87071
RHEL 9php 8.0, Module 8.2 und 8.38.0.30-8.el9_8.1, Module laut ErratumRHSA-2026:87151, :87072, :87079; Modul 8.4 noch offen
RHEL 8Module 7.4 und 8.2laut ErratumRHSA-2026:87080 und :87073
AlmaLinux · Rocky Linuxalle Streamseigene BuildsAlmaLinux seit 21.10. abends, Rocky seit 22.10.
PPA ondrej/php · packages.sury.orgphp8.1 · php8.0 · php7.48.1.34-9 · 1:8.0.30-25 · 1:7.4.33-31Backport aus 8.2.35; 8.2 bis 8.5 mit den Upstream-Versionen
Docker Official Image phpTags 8.5.12, 8.4.27, 8.3.36, 8.2.35seit 21.10.keine 8.1-Tags mehr; Images neu ziehen, Container neu bauen

PHP 8.1 und älter: Upstream ist 8.1 seit Ende 2025 ohne Unterstützung. Sicher sind Sie nur mit einem Paket, das den Fix zurückportiert hat (Ubuntu, Ubuntu Pro, Sury, Ihr Panel-Anbieter), oder nach dem Wechsel auf 8.2 oder neuer; auch 8.2 erreicht am 31.12.2026 sein Lebensende. Plesk und cPanel haben nach eigenen Angaben ebenfalls korrigierte Builds ausgeliefert, Plesk für 7.4 bis 8.1 unter unveränderter Versionsnummer.

1.Patchen und neu starten

Auf Ubuntu und Debian genügen die normalen Paketquellen. Wichtig ist der zweite Schritt: Ein laufender PHP-FPM- oder Apache-Prozess behält den alten Code im Speicher, bis er neu startet.

BashUbuntu 22.04 mit PHP 8.1
# install the fixed packages
sudo apt update
sudo apt install --only-upgrade 'php8.1*' libapache2-mod-php8.1

# restart whatever runs PHP for the web (only the services you have)
sudo systemctl restart php8.1-fpm
sudo systemctl restart apache2
BashDebian 12 / 13 und RHEL-Familie
# Debian 12 (php8.2) or Debian 13 (php8.4)
sudo apt update && sudo apt install --only-upgrade 'php8.2*'

# RHEL, AlmaLinux, Rocky: compare with the erratum, not with php -v
sudo dnf upgrade 'php*'
rpm -q php-common php-fpm

Ob der Patch drin ist, zeigt auf Ubuntu 22.04 dieser Einzeiler; er gibt je Paket OK oder VULNERABLE aus:

BashPaketstand prüfen (Ubuntu 22.04)
dpkg-query -W -f='${db:Status-Abbrev} ${Package} ${Version}\n' 'php8.1*' libapache2-mod-php8.1 2>/dev/null \
  | awk '$1=="ii"{r=system("dpkg --compare-versions "$3" ge 8.1.2-1ubuntu2.28"); print $2, $3, (r==0?"OK":"VULNERABLE")}'

Und dieser zählt die Prozesse, die noch alten PHP-Code im Speicher halten. Bei 0 ist alles neu geladen:

BashAlter Code im Speicher?
sudo grep -ls 'php.*(deleted)' /proc/[0-9]*/maps 2>/dev/null | wc -l

2.Notbehelf bis zum Patch

Wer nicht sofort patchen kann, sollte das System vom Internet trennen; das empfehlen BSI, CISA und CERT-EU übereinstimmend. Ist das nicht möglich, senken die offiziellen Notbehelfe des PHP-Projekts das Risiko, schließen die Lücken aber nicht. Das PHP-Projekt sagt dazu unmissverständlich: Einen vollständigen Schutz gibt es nur durch das Update.

INIphp.ini oder FPM-Pool, danach alle Worker neu starten
; CVE-2026-109618: no memory limit inside PHP, use a cgroup/container limit instead
memory_limit = -1
post_max_size = 8M          ; 32M if uploads are needed
upload_max_filesize = 8M    ; always below post_max_size

; CVE-2026-109619: no upload progress tracking
session.upload_progress.enabled = 0

; PHP 8.5 only
fatal_error_backtraces = 0

3.Woran man Angriffe erkennt

Ein Angriff hinterlässt je nach Ausgang unterschiedliche Spuren. Fehlversuche stehen oft im Error-Log, ein erfolgreicher Angriff dagegen meist nicht: Im Labor von Datadog kam nach 3,1 Sekunden ein normales HTTP 200 zurück, der Worker lief weiter. Deshalb zählen Prozesse und Dateien mehr als Logs.

Eine präparierte POST-Anfrage trifft Webserver und PHP. Ein Fehlversuch hinterlässt Speicherfehler und Worker-Abstürze im Error-Log, ein Erfolg eine Shell unter dem Web-Benutzer mit Prozessen, Dateien und Persistenz. Das Prüfskript sucht an all diesen Stellen.
Abbildung 3: Wo ein Angriff Spuren hinterlässt und wo das Prüfskript sucht.
SpurWoran Sie sie erkennenAussagekraft
Speicherfehler beim AnfragestartPHP Fatal error: Allowed memory size … exhausted … in Unknown on line 0; „Unknown on line 0“ heißt: Fehler vor jedem SkriptVersuch, auch normale Last kann das auslösen
Abgestürzte WorkerApache AH00052: child pid … exit signal Segmentation fault (11), PHP-FPM child … exited on signal 11Versuch, oft beim Erraten von Speicheradressen
Session-FehlerFailed to decode session object, Apache exit signal Aborted (6), Core-Dumps unter /var/crash oder /var/lib/systemd/coredump; Session-Dateien, die mit upload_progress_ beginnenVersuch über CVE-2026-109619
Auffällige Anfragenviele große POST- oder Multipart-Anfragen einer Quelle, Multipart ohne Content-Length, ungewöhnlich lange PHPSESSIDnur sichtbar, wo Anfragegrößen geloggt werden (Proxy, WAF)
Bekannte Scanner und QuellenUser-Agents php2shell-scan, php2shell-verify, php2shell-test; Quelladressen aus den Berichten von Amazon, Sophos und ELLIOVersuch; Adressen untersuchen, nicht blind sperren
Nachgeladene SchadsoftwareDatei /tmp/nfs, gestartet als ./nfs php (Mirai-Variante laut Sophos)starkes Zeichen für einen Einbruch
Shell unter dem Web-Benutzersh, bash, curl, python3 mit Elternprozess apache2 oder php-fpmstarkes Zeichen für einen Einbruch
Webshell und Nachladerneue .php-, .phtml- oder .php.jpg-Dateien des Web-Benutzers, Programme aus /tmp oder /dev/shmstarkes Zeichen
Persistenzneue Cron-Einträge, systemd-Units, SSH-Schlüssel, Kontenstarkes Zeichen

4.Das Prüfskript php2shell-check.sh

Wir haben die Prüfungen aus diesem Beitrag in ein Skript gegossen, das wir auf eigenen und betreuten Servern einsetzen. Es läuft als root, ändert nichts am System und schreibt nur einen Bericht. Im Terminal erscheinen ausschließlich feste Texte, Zählwerte und Zeilennummern; Pfade, Adressen und Logzeilen stehen nur im Bericht, den nur root lesen kann. So lässt sich die Ausgabe gefahrlos weitergeben.

BashLaden, Prüfsumme prüfen, ausführen
curl -fsSLO https://nokkela.blog/downloads/php2shell-check.sh
curl -fsSLO https://nokkela.blog/downloads/php2shell-check.sh.sha256
sha256sum -c php2shell-check.sh.sha256      # must print: php2shell-check.sh: OK

sudo bash php2shell-check.sh                   # lookback from 2026-10-17
sudo SINCE=2026-08-01 bash php2shell-check.sh  # longer lookback

Lesen Sie das Skript vor dem ersten Lauf: Es sind gut 500 Zeilen Bash ohne Abhängigkeiten außer den Bordmitteln von Debian und Ubuntu. Die Ausgabe auf einem Testsystem mit absichtlich gelegten Spuren sieht so aus:

Ausgabephp2shell-check.sh (Testsystem mit gelegten Spuren)
### php2shell-check 1.0.0 (CVE-2026-109618, CVE-2026-109619), since 2026-10-17
[ INFO ] Platform Ubuntu 22.04.5 LTS
[ INFO ] Web users: 1, web roots: 2, error logs: 2, access logs: 1

### PHP packages
[  OK  ] 'All 5 PHP packages at a fixed version'
[  OK  ] 'Running processes use the current PHP code'

### Attack attempts in the logs
[FAILED] 'Errors while setting up requests (Unknown on line 0): 2 (report lines 17-18)'
[FAILED] 'Crashed Apache or PHP workers, core dumps: 3 (report lines 21-23)'
[FAILED] 'Session errors and upload-progress sessions: 2 (report lines 26-27)'
[FAILED] 'Published PHP2Shell indicators (scanners, source IPs, payload): 3 (report lines 30-32)'

### Traces of a compromise
[FAILED] 'Foreign processes under the web user: 2 (report lines 35-36)'
[FAILED] 'Programs running from /tmp, /dev/shm, memory or a web root: 1 (report line 39)'
[FAILED] 'Script files written by the web user: 1 (report line 42)'
[ INFO ] Other changed script files (deployment?): 1 (report line 45)
[FAILED] 'Files of the web user in /tmp, /var/tmp, /dev/shm: 1 (report line 48)'
[FAILED] 'Signs of persistence (cron, SSH, systemd, accounts): 2 (report lines 51-52)'
[FAILED] 'Package files differing from their package: 1 (report line 55)'
[ INFO ] No SSH logins in the journal

### Result
[FAILED] 'Yellow: 10, review and assess'
[ INFO ] Report: /opt/php2shell-check/reports/report-20261022-212135.txt
[ INFO ] View all findings: tail -n +16 /opt/php2shell-check/reports/report-20261022-212135.txt

Rote Zeilen bedeuten: Patch fehlt oder alter Code läuft noch. Gelbe Zeilen sind Funde, die Sie ansehen und bewerten. Der Rückgabewert ist 2 bei Rot, 1 bei Gelb und 0 ohne Funde, damit lässt sich das Skript auch in Ansible oder ein Monitoring einbinden.

PrüfungWas genauBei Fund
PaketstandPHP-Pakete gegen den Fixstand von Ubuntu, Debian oder den Sury-Builds; Versionen ohne bekannten Fixrot
Alter Code im SpeicherProzesse, die ersetzte PHP-Dateien noch eingeblendet habenrot
Fehler beim Anfragestart„in Unknown on line 0“ in den Error-Logs von Apache, nginx und PHP (auch rotiert und gepackt)gelb
Worker-AbstürzeAH00052, „exited on signal“ von PHP-FPM, Segfaults im Kernel-Log, Core-Dumpsgelb
Session-Fehler„Failed to decode session object“ und Session-Dateien, die nur aus Upload-Fortschritt bestehengelb
Veröffentlichte IndikatorenScanner-User-Agents und Quelladressen in den Access-Logs, bekannter Dateiname der Schadsoftwaregelb
Fremde ProzesseProzesse des Web-Benutzers, die kein Webserver sind, mit Zahl ihrer Socketsgelb
Programme aus ungewöhnlichen Ortenaus /tmp, /var/tmp, /dev/shm, dem Speicher (memfd) oder dem Webverzeichnisgelb
Neue Skriptdateienvom Web-Benutzer geschrieben, auch .php.jpg, .htaccess, .user.ini; andere Änderungen nur als Infogelb
Dateien in Temp-VerzeichnissenDateien des Web-Benutzers in /tmp, /var/tmp, /dev/shmgelb
PersistenzCron, SSH-Schlüssel, Login-Shell des Web-Benutzers, weitere uid 0, ld.so.preload, geänderte Dateien in /etc und den Home-Verzeichnissen; unveränderte Paketdateien werden ausgefiltertgelb
Paketdateiendpkg --verify: Programmdateien mit abweichender Prüfsummegelb
SSH-Anmeldungenerfolgreiche Anmeldungen laut Journal zum Abgleich mit Ihren eigenenInfo

Grenzen: Ein grünes Ergebnis ist kein Beweis. Das Skript sucht nach den bekannten Mustern, ein geschickter Angreifer mit Root-Rechten kann Spuren verwischen. Gelb ist nicht gleich Angriff: eigene Deployments, eine Passwortänderung oder PHP-Cronjobs lösen ebenfalls aus. PHP in Docker-Containern prüft das Skript nicht; es weist darauf hin, wenn Docker installiert ist. Es läuft auf Debian und Ubuntu (dpkg); für die RHEL-Familie gelten die Prüfungen sinngemäß mit rpm -q und rpm -Va.

5.Was tun bei einem Fund?

Die Reihenfolge ist wichtiger als jeder einzelne Schritt: erst schließen, dann prüfen, dann aufräumen.

Entscheidungsweg: PHP auf dem Fixstand, sonst aktualisieren; Dienste neu gestartet, sonst neu starten; dann das Prüfskript ausführen. Grün heißt beobachten, Gelb heißt Funde bewerten, Rot heißt Patch oder Neustart fehlt. Bei bestätigtem Einbruch isolieren, Geheimnisse wechseln, neu aufsetzen.
Abbildung 4: Was in welcher Reihenfolge zu tun ist.

Häufige Fragen

Was ist PHP2Shell?

PHP2Shell ist der Name für zwei kritische Lücken im PHP-Kern, CVE-2026-109618 und CVE-2026-109619, die das PHP-Projekt am 21. Oktober 2026 geschlossen hat. Sie erlauben Angreifern ohne Anmeldung, Code unter dem Benutzer des Webservers auszuführen, bei Apache mit mod_php sogar bevor der Anwendungscode läuft. Beide sind mit CVSS 4.0 9,2 bewertet; das BSI warnt mit Stufe 3 (Orange).

Bin ich betroffen, wenn ich WordPress oder Nextcloud aktuell halte?

Ja, solange das darunterliegende PHP nicht gepatcht ist. Die Lücken liegen in PHP selbst, nicht in der Anwendung; ein Update von WordPress, Nextcloud oder Shopware schließt sie nicht. Entscheidend sind die Paketversion von PHP und ein Neustart von PHP-FPM bzw. Apache nach dem Update.

Welche PHP-Versionen sind sicher?

Upstream sind PHP 8.5.12, 8.4.27, 8.3.36 und 8.2.35 korrigiert. Für ältere Versionen gibt es zurückportierte Pakete, etwa bei Ubuntu 22.04 php8.1 ab 8.1.2-1ubuntu2.28, bei Debian 12 php8.2 ab 8.2.35-1~deb12u1 und bei Debian 13 php8.4 ab 8.4.27-1~deb13u1. Maßgeblich ist die Paketversion, nicht die Ausgabe von php -v.

Reicht ein Notbehelf wie memory_limit=-1?

Nein. Das PHP-Projekt nennt memory_limit=-1, kleinere Anfragegrenzen und session.upload_progress.enabled=0 als Notbehelfe, betont aber, dass sie nur einzelne Angriffswege schließen. Vollständigen Schutz bietet nur das Update; bis dahin empfehlen BSI, CISA und CERT-EU, betroffene Systeme vom Internet zu trennen.

Wie prüfe ich, ob ein Server über PHP2Shell angegriffen wurde?

Der Nokkela-Blog stellt dafür das freie Prüfskript php2shell-check.sh bereit. Es läuft read-only als root auf Debian- und Ubuntu-Servern und prüft den Paketstand, alten PHP-Code im Speicher, die Logs ab dem 17. Oktober 2026 auf Speicherfehler beim Anfragestart, Worker-Abstürze, Session-Fehler und veröffentlichte Indikatoren sowie fremde Prozesse des Web-Benutzers, neue Skriptdateien, Persistenz und veränderte Paketdateien. Im Terminal erscheinen nur Zählwerte; die Einzelheiten stehen in einem Bericht, den nur root lesen kann. Ein sauberes Ergebnis ist kein Beweis, denn ein erfolgreicher Angriff kann ohne Logeintrag ablaufen.

Was tun, wenn das Prüfskript Funde meldet?

Gelbe Funde zuerst bewerten: Eigene Deployments, Passwortänderungen oder PHP-Cronjobs lösen ebenfalls aus. Bestätigt sich ein Einbruch, den Server isolieren, Beweise sichern, alle Geheimnisse wechseln, die PHP lesen konnte, und das System neu aufsetzen statt es zu bereinigen. Bei personenbezogenen Daten gilt die Meldefrist von 72 Stunden nach Art. 33 DSGVO.

Quellen

Externe Quellen, Stand 22. Oktober 2026 (öffnen in einem neuen Tab):

IT-Security mit Nokkela

Patchen, prüfen, im Ernstfall aufräumen

Sie betreiben PHP-Anwendungen und wollen sicher sein, dass PHP2Shell bei Ihnen keine Spuren hinterlassen hat? Wir prüfen Ihre Server, spielen die Korrekturen ein und begleiten im Ernstfall die Aufarbeitung, herstellerunabhängig und DSGVO-konform, mit Rechenzentren in Deutschland und Finnland.

Anfrage Mehr zu nokkela.network

Dieser Beitrag dient der allgemeinen Information und ersetzt keine Prüfung im Einzelfall. Versionsstände und Befehle beziehen sich auf den genannten Stand und sind an Ihre Umgebung anzupassen. Das Prüfskript wird unter der BSD-2-Clause-Lizenz ohne Gewähr bereitgestellt. Stand: Oktober 2026.