Nicht php.net · Nicht NVD · Nicht CISA

PHP-Sicherheitslücken-Tracker

Inoffizielles Briefing zu Sicherheitslücken in PHP

English简体中文日本語DeutschFrançaisNederlandsEspañol

Sicherheitswarnung

PHP2Shell: PHP aktualisieren. Nur das behebt die Lücke vollständig.

CVE-2026-109618 und CVE-2026-109619 sind kritische Schwachstellen in PHP selbst, die Remote-Code-Ausführung ohne Authentifizierung erlauben. Das PHP-Projekt hat am 21. Oktober 2026 Updates für die unterstützten Zweige 8.2 bis 8.5 veröffentlicht. Starten Sie PHP nach dem Update neu. Eine Firewall ersetzt das Update nicht.

Schritte zur Behebung

KI-Agent-Leitfaden

PHP2Shell mit einem KI-Coding-Agenten beheben

Ein KI-Coding-Agent kann die mühsamen Teile übernehmen: herausfinden, welches PHP Ihre Sites wirklich ausliefert, Distro-Backports prüfen, Pakete, Images oder Panel-Builds aktualisieren, Worker neu starten und Logs prüfen. Mit diesen Prompts schlägt der Agent vor, Sie geben frei.

Zuletzt aktualisiert

Was die Prompts den Agenten tun lassen

  1. Das ausliefernde PHP ermitteln (CLI vs. PHP-FPM vs. mod_php, jeder Pool und vhost).
  2. Mit 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12 vergleichen, Distro-Backports eingeschlossen.
  3. Änderung vorschlagen und auf Freigabe warten.
  4. Anwenden, PHP-FPM und Worker neu starten, Container neu bauen.
  5. Live-Version prüfen und JPCERT/CC-Indikatoren suchen: auffällige PHPSESSID, Multipart-Anfragen gefolgt von OOM oder HTTP 500, unerwartete PHP-Neustarts.
  6. Mit Vorher-/Nachher-Tabelle berichten.

Agenten sicher einsetzen

Prompts zum Kopieren

Die Prompts sind auf Englisch, damit jeder Agent sie zuverlässig befolgt; die letzte Zeile verlangt einen Bericht auf Deutsch. Die Fakten stammen von den Seiten dieser Website.

Linux-/Windows-Server oder VPS (apt, dnf/yum, apk, Windows)
You are helping me patch the PHP2Shell vulnerability on this server.

Context: PHP2Shell is CVE-2026-109618 and CVE-2026-109619, two critical unauthenticated remote-code-execution bugs in the PHP runtime (advisory published 21 October 2026). Fixed upstream releases: PHP 8.2.35, 8.3.36, 8.4.27, 8.5.12 (or later on the same branch). PHP 8.1 and earlier get no upstream fix. Linux distributions may ship backported fixes under an older version string, so check the distro's security tracker / package changelog for CVE-2026-109618 and CVE-2026-109619, not only "php -v".

Rules for you (the agent):
- Do NOT write, download, run or search for exploit code or proof-of-concept payloads. This is defensive patching only.
- Never ask me for passwords, API keys or tokens, and do not print secrets you come across (.env, wp-config.php, config files). Redact them.
- Show every command before running it. Run read-only commands first. Ask for my explicit approval before any command that changes the system, uses sudo, restarts services or rebuilds images.
- Prefer a staging copy first. Before changing anything, confirm a backup or snapshot exists (or tell me how to make one).

Steps:
0. Identify the OS and package manager (cat /etc/os-release; on Windows, how PHP was installed: windows.php.net zip, IIS, XAMPP, Chocolatey, Scoop).
1. Detect the PHP that actually serves traffic, not just the CLI: compare "php -v" with the PHP-FPM binaries (php-fpm -v, php-fpm8.x -v), Apache mod_php (apachectl -M | grep php, phpinfo via a temporary local-only page that you delete afterwards), web-server config (which socket/handler each vhost uses) and running processes (ps aux | grep -i php). List every version found and which site/vhost uses it.
2. Compare each runtime against the fixed versions. If it is a distro package, check the package version against the distro's security advisory/tracker for both CVEs (backports count as fixed).
3. Propose the minimal change and WAIT for my approval: e.g. apt update && apt install --only-upgrade the php packages (Debian/Ubuntu, including ondrej/php PPA), dnf/yum update php* (RHEL/Alma/Rocky/Amazon Linux, including Remi), apk upgrade php8x* (Alpine), or replacing the PHP folder with the patched windows.php.net build (keep php.ini). Say which repositories provide the fix and the expected version.

After I approve and you apply the change:
- Restart every PHP-FPM pool / Apache / worker process (queue workers, Octane/RoadRunner/Swoole, supervisor jobs) so no old binary stays in memory. Rebuild and redeploy containers instead of patching them in place.
- Verify: re-run the version checks against the live runtime (FPM and CLI), confirm the package changelog lists the CVEs, and check the sites still respond.
- Check the compromise indicators listed by JPCERT/CC (JPCERT-AT-2026-0033) in recent web-server and PHP logs: unusually long or malformed PHPSESSID values; suspicious multipart/upload requests followed by memory exhaustion (OOM) errors or HTTP 500; unexpected PHP process crashes or restarts. Also look for recently modified .php files in web roots. Report what you find; do not delete evidence.
- Report back: a table of runtime → old version → new version → fixed (yes/no/backport), the commands you ran, anything you could not fix, and recommended next steps.

Write your report in German.
Docker-Images und Dockerfiles
You are helping me patch the PHP2Shell vulnerability in my containers.

Context: PHP2Shell is CVE-2026-109618 and CVE-2026-109619, two critical unauthenticated remote-code-execution bugs in the PHP runtime (advisory published 21 October 2026). Fixed upstream releases: PHP 8.2.35, 8.3.36, 8.4.27, 8.5.12 (or later on the same branch). PHP 8.1 and earlier get no upstream fix. Linux distributions may ship backported fixes under an older version string, so check the distro's security tracker / package changelog for CVE-2026-109618 and CVE-2026-109619, not only "php -v".

Rules for you (the agent):
- Do NOT write, download, run or search for exploit code or proof-of-concept payloads. This is defensive patching only.
- Never ask me for passwords, API keys or tokens, and do not print secrets you come across (.env, wp-config.php, config files). Redact them.
- Show every command before running it. Run read-only commands first. Ask for my explicit approval before any command that changes the system, uses sudo, restarts services or rebuilds images.
- Prefer a staging copy first. Before changing anything, confirm a backup or snapshot exists (or tell me how to make one).

Steps:
1. Find every Dockerfile, compose file, Helm chart and CI config in this repository that uses PHP (FROM php:..., bitnami/php-fpm, alpine + php8x packages, serversideup/php, custom base images). List each image and tag.
2. For running containers (docker ps / kubectl get pods), run "php -v" and "php-fpm -v" inside each one to get the real runtime version. Pinned digests or old tags may still be vulnerable even if the Dockerfile looks fine.
3. Compare against the fixed versions (8.2.35 / 8.3.36 / 8.4.27 / 8.5.12; for distro-package images check the distro advisory for backports).
4. Propose the change and WAIT for my approval: bump tags to a patched release, update pinned digests, add --pull to builds so the base image is refreshed, and note images that are on PHP 8.1 or earlier (no upstream fix).

After I approve and you apply the change:
- Restart every PHP-FPM pool / Apache / worker process (queue workers, Octane/RoadRunner/Swoole, supervisor jobs) so no old binary stays in memory. Rebuild and redeploy containers instead of patching them in place.
- Verify: re-run the version checks against the live runtime (FPM and CLI), confirm the package changelog lists the CVEs, and check the sites still respond.
- Check the compromise indicators listed by JPCERT/CC (JPCERT-AT-2026-0033) in recent web-server and PHP logs: unusually long or malformed PHPSESSID values; suspicious multipart/upload requests followed by memory exhaustion (OOM) errors or HTTP 500; unexpected PHP process crashes or restarts. Also look for recently modified .php files in web roots. Report what you find; do not delete evidence.
- Report back: a table of runtime → old version → new version → fixed (yes/no/backport), the commands you ran, anything you could not fix, and recommended next steps.

Write your report in German.
Hosting-Panel (cPanel, Plesk, aaPanel/宝塔, DirectAdmin, CyberPanel, HestiaCP)
You are helping me patch the PHP2Shell vulnerability on a server managed by a hosting control panel.

Context: PHP2Shell is CVE-2026-109618 and CVE-2026-109619, two critical unauthenticated remote-code-execution bugs in the PHP runtime (advisory published 21 October 2026). Fixed upstream releases: PHP 8.2.35, 8.3.36, 8.4.27, 8.5.12 (or later on the same branch). PHP 8.1 and earlier get no upstream fix. Linux distributions may ship backported fixes under an older version string, so check the distro's security tracker / package changelog for CVE-2026-109618 and CVE-2026-109619, not only "php -v".

Rules for you (the agent):
- Do NOT write, download, run or search for exploit code or proof-of-concept payloads. This is defensive patching only.
- Never ask me for passwords, API keys or tokens, and do not print secrets you come across (.env, wp-config.php, config files). Redact them.
- Show every command before running it. Run read-only commands first. Ask for my explicit approval before any command that changes the system, uses sudo, restarts services or rebuilds images.
- Prefer a staging copy first. Before changing anything, confirm a backup or snapshot exists (or tell me how to make one).
- Use the panel's own update mechanism for its PHP builds; do not install a second PHP from another repository on top of it unless I approve.

Steps:
0. Detect which panel is installed (cPanel/WHM with EasyApache 4 ea-php, Plesk with plesk-php, aaPanel/BT Panel 宝塔 under /www/server/php, DirectAdmin CustomBuild, CyberPanel/LiteSpeed lsphp, HestiaCP) and its version.
1. Detect the PHP that actually serves traffic, not just the CLI: compare "php -v" with the PHP-FPM binaries (php-fpm -v, php-fpm8.x -v), Apache mod_php (apachectl -M | grep php, phpinfo via a temporary local-only page that you delete afterwards), web-server config (which socket/handler each vhost uses) and running processes (ps aux | grep -i php). List every version found and which site/vhost uses it.
2. Compare each runtime against the fixed versions. If it is a distro package, check the package version against the distro's security advisory/tracker for both CVEs (backports count as fixed).
   Panels usually install several PHP versions side by side (e.g. /opt/cpanel/ea-php*/, /opt/plesk/php/*/, /www/server/php/*/, /usr/local/lsws/lsphp*/). Check every one and which domains use it.
3. Look up the panel vendor's own PHP2Shell notice/changelog and tell me which panel PHP builds include the fix. Propose the update (e.g. WHM/EasyApache update, Plesk updater, 宝塔 software store / reinstall of the PHP version, DirectAdmin CustomBuild "./build update && ./build php", CyberPanel lsphp package upgrade) and WAIT for my approval. Flag versions the vendor has not patched yet and sites that must be moved to a patched version.

After I approve and you apply the change:
- Restart every PHP-FPM pool / Apache / worker process (queue workers, Octane/RoadRunner/Swoole, supervisor jobs) so no old binary stays in memory. Rebuild and redeploy containers instead of patching them in place.
- Verify: re-run the version checks against the live runtime (FPM and CLI), confirm the package changelog lists the CVEs, and check the sites still respond.
- Check the compromise indicators listed by JPCERT/CC (JPCERT-AT-2026-0033) in recent web-server and PHP logs: unusually long or malformed PHPSESSID values; suspicious multipart/upload requests followed by memory exhaustion (OOM) errors or HTTP 500; unexpected PHP process crashes or restarts. Also look for recently modified .php files in web roots. Report what you find; do not delete evidence.
- Report back: a table of runtime → old version → new version → fixed (yes/no/backport), the commands you ran, anything you could not fix, and recommended next steps.

Write your report in German.
Altes PHP 8.1 oder älter (Upgrade-Pfad und Übergangsmaßnahmen)
You are helping me deal with PHP2Shell on an application that runs PHP 8.1 or older (no upstream fix exists for these branches).

Context: PHP2Shell is CVE-2026-109618 and CVE-2026-109619, two critical unauthenticated remote-code-execution bugs in the PHP runtime (advisory published 21 October 2026). Fixed upstream releases: PHP 8.2.35, 8.3.36, 8.4.27, 8.5.12 (or later on the same branch). PHP 8.1 and earlier get no upstream fix. Linux distributions may ship backported fixes under an older version string, so check the distro's security tracker / package changelog for CVE-2026-109618 and CVE-2026-109619, not only "php -v".

Rules for you (the agent):
- Do NOT write, download, run or search for exploit code or proof-of-concept payloads. This is defensive patching only.
- Never ask me for passwords, API keys or tokens, and do not print secrets you come across (.env, wp-config.php, config files). Redact them.
- Show every command before running it. Run read-only commands first. Ask for my explicit approval before any command that changes the system, uses sudo, restarts services or rebuilds images.
- Prefer a staging copy first. Before changing anything, confirm a backup or snapshot exists (or tell me how to make one).

Steps:
1. Detect the PHP that actually serves traffic, not just the CLI: compare "php -v" with the PHP-FPM binaries (php-fpm -v, php-fpm8.x -v), Apache mod_php (apachectl -M | grep php, phpinfo via a temporary local-only page that you delete afterwards), web-server config (which socket/handler each vhost uses) and running processes (ps aux | grep -i php). List every version found and which site/vhost uses it.
2. Compare each runtime against the fixed versions. If it is a distro package, check the package version against the distro's security advisory/tracker for both CVEs (backports count as fixed).
3. Check whether my OS vendor or an extended-support provider ships a backported fix for this old branch (e.g. distro LTS/ELS security trackers). If yes, propose installing it.
4. Otherwise produce an upgrade plan to a fixed branch (8.2.35+ / 8.3.36+ / 8.4.27+ / 8.5.12+): scan the code and composer.json for incompatibilities (deprecated functions, removed extensions, framework/CMS minimum versions), suggest tools such as PHPCompatibility for PHP_CodeSniffer or Rector, estimate effort, and propose doing it on a staging copy first.
5. Propose interim risk reduction while the upgrade happens and say clearly that it is incomplete: restrict or remove internet exposure (VPN/IP allow-list, maintenance page), put a WAF in front, and apply the interim php.ini settings from the PHP advisory only as a stopgap. WAIT for my approval before changing anything.

After I approve and you apply the change:
- Restart every PHP-FPM pool / Apache / worker process (queue workers, Octane/RoadRunner/Swoole, supervisor jobs) so no old binary stays in memory. Rebuild and redeploy containers instead of patching them in place.
- Verify: re-run the version checks against the live runtime (FPM and CLI), confirm the package changelog lists the CVEs, and check the sites still respond.
- Check the compromise indicators listed by JPCERT/CC (JPCERT-AT-2026-0033) in recent web-server and PHP logs: unusually long or malformed PHPSESSID values; suspicious multipart/upload requests followed by memory exhaustion (OOM) errors or HTTP 500; unexpected PHP process crashes or restarts. Also look for recently modified .php files in web roots. Report what you find; do not delete evidence.
- Report back: a table of runtime → old version → new version → fixed (yes/no/backport), the commands you ran, anything you could not fix, and recommended next steps.

Write your report in German.

Verbreitete KI-Coding-Agenten

Ohne Rangfolge. Diese Website ist mit keinem Anbieter verbunden.

OpenAI Codex CLIcodex im Projekt oder auf dem Server starten, Prompt einfügen; im Freigabemodus lassen, der vor Befehlen fragt.
Claude Codeclaude im Terminal starten, Prompt einfügen; standardmäßig fragt es vor Befehlen nach Erlaubnis.
Cursor (Agent)Repo oder Remote-SSH-Sitzung öffnen, in den Agent-Chat einfügen, jeden Terminalbefehl vorher prüfen.
Cursor Cloud AgentsFür Docker-/Repository-Prompts: arbeitet auf einem Branch, Sie prüfen den Diff; kein Zugriff auf Ihre Server.
Grok Build (xAI CLI)Terminal-Coding-Agent von xAI; im Projekt oder auf dem Server starten. Ohne Shell in den Grok-Chat auf grok.com einfügen und die Befehle selbst ausführen.
GitHub Copilot coding agentEin Issue mit dem Docker-/Repository-Prompt Copilot zuweisen; es öffnet einen Pull Request.
Gemini CLIgemini im Terminal starten, Prompt einfügen, jeden Befehl bestätigen.
Windsurf (Cascade)In Cascade im Editor einfügen; windsurf.com leitet derzeit auf Devin Desktop weiter.
ClineVS-Code-Erweiterung; in das Cline-Panel einfügen und jeden Befehl freigeben.
AiderFür Docker-/Repository-Prompts: aider im Repo starten und die Commits prüfen.

FAQ

Kann ein KI-Agent PHP2Shell für mich patchen?

In Routinefällen ja: Distro-Pakete aktualisieren, Docker-Basis-Images anheben, PHP-Builds eines Panels aktualisieren. Freigabemodus beibehalten, auf Staging testen und prüfen, dass live 8.2.35, 8.3.36, 8.4.27, 8.5.12 oder ein Backport läuft.

Darf ein Agent sudo in Produktion haben?

Nicht unbeaufsichtigt. Erst Nur-Lese-Prüfungen, dann nach Backup jeden privilegierten Befehl einzeln freigeben.

Was, wenn ich PHP 8.1 oder älter nutze?

Es gibt keinen Upstream-Fix. Mit dem Legacy-Prompt einen Upgrade-Plan und Übergangsmaßnahmen erstellen, etwa die Internet-Erreichbarkeit entfernen; die php.ini-Übergangseinstellungen sind unvollständig.