Niet php.net · Niet NVD · Niet CISA

PHP-kwetsbaarhedentracker

Onofficiële briefing over beveiligingslekken in PHP

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

Beveiligingswaarschuwing

PHP2Shell: werk PHP bij. Dat is de enige volledige oplossing.

CVE-2026-109618 en CVE-2026-109619 zijn kritieke kwetsbaarheden in PHP zelf die uitvoering van code op afstand zonder authenticatie mogelijk maken. Het PHP-project bracht op 21 oktober 2026 fixes uit voor de ondersteunde takken 8.2 tot en met 8.5. Herstart PHP na de update. Een firewall is geen vervanging.

Stappen om te patchen

AI-agentgids

PHP2Shell oplossen met een AI-codeeragent

Een AI-codeeragent kan het saaie werk doen: uitzoeken welke PHP uw sites echt serveert, distro-backports controleren, pakketten, images of paneel-PHP bijwerken, workers herstarten en logs nakijken. Met deze prompts stelt de agent voor en keurt u goed.

Laatst bijgewerkt

Wat de prompts de agent laten doen

  1. De PHP vinden die echt verkeer serveert (CLI, PHP-FPM, mod_php, elke pool en vhost).
  2. Vergelijken met 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12, inclusief distro-backports.
  3. De wijziging voorstellen en op goedkeuring wachten.
  4. Toepassen, PHP-FPM en workers herstarten, containers opnieuw bouwen.
  5. De live versie controleren en de JPCERT/CC-indicatoren nakijken: afwijkende PHPSESSID, multipart-verzoeken gevolgd door OOM of HTTP 500, onverwachte PHP-herstarts.
  6. Rapporteren met een voor/na-tabel.

Een agent veilig gebruiken

Prompts om te kopiëren

De prompts zijn in het Engels zodat elke agent ze betrouwbaar volgt; de laatste regel vraagt om een verslag in het Nederlands. De feiten komen van de pagina’s van deze site.

Linux-/Windows-server of 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 Dutch.
Docker-images en 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 Dutch.
Hostingpaneel (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 Dutch.
Oude PHP 8.1 of ouder (upgradepad en tijdelijke maatregelen)
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 Dutch.

Veelgebruikte AI-codeeragents

Zonder rangorde. Deze site is met geen van hen verbonden.

OpenAI Codex CLIStart codex in het project of op de server en plak de prompt; laat de goedkeuringsmodus aan die vraagt vóór commando’s.
Claude CodeStart claude in een terminal en plak de prompt; standaard vraagt het toestemming vóór commando’s.
Cursor (Agent)Open de repo of een Remote-SSH-sessie, plak in de Agent-chat en controleer elk terminalcommando.
Cursor Cloud AgentsGeschikt voor Docker-/repositoryprompts: werkt op een branch, u beoordeelt de diff; geen toegang tot uw servers.
Grok Build (xAI CLI)Terminal-codeeragent van xAI; start in het project of op de server. Zonder shell: plak in de Grok-chat op grok.com en voer de commando’s zelf uit.
GitHub Copilot coding agentWijs een issue met de Docker-/repositoryprompt toe aan Copilot; het opent een pull request.
Gemini CLIStart gemini in een terminal, plak de prompt en bevestig elk commando.
Windsurf (Cascade)Plak in Cascade in de editor; windsurf.com verwijst momenteel door naar Devin Desktop.
ClineVS Code-extensie; plak in het Cline-paneel en keur elk commando goed.
AiderVoor Docker-/repositoryprompts: start aider in de repo en controleer de commits.

FAQ

Kan een AI-agent PHP2Shell voor mij patchen?

In routinegevallen wel: distropakketten bijwerken, Docker-basisimages ophogen of de PHP van een paneel bijwerken. Houd de goedkeuringsmodus aan, test op staging en controleer dat live 8.2.35, 8.3.36, 8.4.27, 8.5.12 of een backport draait.

Mag een agent sudo hebben in productie?

Niet onbewaakt. Laat eerst alleen-lezen-controles doen en keur na een back-up elk bevoorrecht commando afzonderlijk goed.

En als ik PHP 8.1 of ouder gebruik?

Er is geen upstream-fix. Gebruik de legacy-prompt voor een upgradeplan en tijdelijke maatregelen, zoals internettoegang wegnemen; de tijdelijke php.ini-instellingen zijn onvolledig.