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

Herstel

PHP2Shell oplossen: PHP bijwerken en workers herstarten

Het PHP-project, AWS en de CISA zijn het over het operationele punt eens: alleen een upgrade lost CVE-2026-109618 en CVE-2026-109619 volledig op. De commando’s hieronder tonen de gebruikelijke vorm van dit werk. Pakketversies hangen af van het advies van uw distributie. Een CLI die een gepatchte versie toont, bewijst niet dat de pool achter uw website met dat binaire bestand is herstart.

Laatst bijgewerkt

Doelversies

Brontarballs en Windows-builds vindt u op de downloadpagina van PHP. Volgens php.net kregen Linux-distributies en LTS-leveranciers de patches vóór de openbare release, dus het distributiepakket is vaak de juiste weg. Hetzelfde advies zegt dat de vrijwillige Remi-repository (rpms.remirepo.net) de updates op 21 oktober niet had, en raadt gebruikers ervan aan over te stappen op distributiepakketten of zelf te bouwen.

Debian, Ubuntu en andere apt-systemen

Debian heeft fixes gepubliceerd: DLA-4848-1 (Debian LTS) voor Debian 12 bookworm, php8.2 8.2.35-1~deb12u1, en DSA-6574-1 voor Debian 13 trixie, php8.4 8.4.27-1~deb13u1. De security-tracker vermeldt de builds van de basissuite (bookworm php8.2 8.2.32-1~deb12u1, trixie php8.4 8.4.24-1~deb13u1) als kwetsbaar; de fix komt dus alleen aan als de security-suite in uw pakketbronnen staat. Op 22 oktober vermeldde de tracker testing (forky) php8.4 8.4.26-1 nog steeds als kwetsbaar.

Werk de metadata bij en installeer de PHP-pakketten die daadwerkelijk zijn gepubliceerd. De namen volgen de minor-tak (php8.3-fpm, php8.3-cli, php8.3-common en het Apache-modulepakket bij mod_php). Ligt de kandidaatversie nog onder de fix, wacht dan op de distributie: er ontbreekt geen optie.

Voorbeeld van een apt-procedure voor de 8.3-pakketten. Controleer of de kandidaatversie 8.3.36 of nieuwer is voordat u klaar bent.
sudo apt-get update
apt-cache policy php8.3-cli php8.3-fpm php8.3-common
sudo apt-get install --only-upgrade php8.3-cli php8.3-fpm php8.3-common
php8.3 -v
# Web SAPI, not just the CLI:
php-fpm8.3 -v
sudo systemctl restart php8.3-fpm
# If Apache loads mod_php, restart Apache as well:
sudo systemctl restart apache2

RHEL, Alma, Rocky, Fedora: dnf of yum

Voorbeeld van een dnf-procedure. Op oudere derivaten volgt yum update php php-fpm php-cli hetzelfde idee. Voor de versie-aanduiding geldt het errata van de leverancier.
sudo dnf clean expire-cache
sudo dnf update php php-cli php-fpm php-common
php -v
php-fpm -v
sudo systemctl restart php-fpm
# mod_php under httpd:
sudo systemctl restart httpd

Docker en andere images

Opnieuw bouwen en opnieuw uitrollen. Een nieuwe basisimage ophalen doet niets zolang de workload die verkeer afhandelt niet is vervangen. Officiële image-tags volgen meestal de PHP-versie; controleer op Docker Hub of de tag bestaat voordat u hem vastzet. Het advies van Google Cloud voor Cloud Run en GKE is hetzelfde: de uitgerolde image opnieuw bouwen, behalve bij een serverless basisimage die Google naar eigen zeggen zelf vervangt.

Gepatchte tag vastzetten, opnieuw bouwen en de dienst vervangen. De apache-tag is de officiële image in mod_php-stijl; gebruik de variant die u al gebruikt.
FROM php:8.3.36-fpm
# or: php:8.3.36-apache, php:8.4.27-fpm, php:8.2.35-fpm, php:8.5.12-cli

# then, on the host:
# docker pull php:8.3.36-fpm
# docker build -t your-app:php2shell-fix .
# redeploy and confirm the running container's PHP version

cPanel

  1. Werk cPanel zelf bij, zodat EasyApache een gepatchte PHP-build aanbiedt. Menu’s veranderen; leidend is de cPanel-documentatie.
  2. Open in WHM EasyApache 4 en stel een PHP-versie beschikbaar op of boven de fix van de tak. In MultiPHP Manager wijst u domeinen een PHP-versie toe.
  3. Haal publiek bereikbare domeinen weg van handlers met PHP 8.1 of ouder, tenzij uw leverancier heeft bevestigd dat de build de backport bevat.
  4. Herstart Apache en PHP-FPM via WHM, controleer de PHP-versie van een domein en verwijder tijdelijke testpagina’s.

Plesk

  1. Installeer updates van Plesk en de systeempakketten. Het actuele klikpad staat in de Plesk-documentatie.
  2. Controleer onder Tools & Settings de updates en de lijst met PHP-handlers. De PHP-instellingen van het domein tonen welke versie een abonnement werkelijk gebruikt.
  3. Kies een gepatchte handler (8.2.35, 8.3.36, 8.4.27 of 8.5.12, of een geverifieerde leveranciersbuild). Pas hem eerst toe op publieke websites.
  4. Herstart de door Plesk gebruikte PHP-dienst en controleer de versie op het domein, niet alleen op de paneelhost.

宝塔面板 (BT Panel)

Volgens het 宝塔-advies van 22 oktober 2026 hebben de Linux- en Windows-panelen 8.2.35, 8.3.36, 8.4.27 en 8.5.12 gesynchroniseerd. De alleen voor Linux aangeboden pakketten 7.4.34, 8.0.31 en 8.1.35 zijn 宝塔-builds, geen releases van het PHP-project. Klikpad en de onvolledige Windows-instelling staan op de BT-Panel-pagina.

mod_php vergeleken met PHP-FPM

Beide staan op de risicolijst van het PHP-project. mod_php geldt als hoogste risico, omdat het gedemonstreerde pad zonder authenticatie vóór de applicatiecode ingrijpt. Een Apache-herstart laadt mod_php opnieuw. PHP-FPM is een eigen proces: herstart elke pool (systemctl restart php8.3-fpm of de overeenkomstige unit) en houd er rekening mee dat pools een eigen binair bestand kunnen vastleggen. De php in het PATH van uw shell kan een andere build zijn dan die van de pool. FrankenPHP, php-cgi en LiteSpeed noemt PHP als webverzoeken afhandelend en dus getroffen; volg hun upgradehandleidingen in plaats van aan te nemen dat een apt-pakket php-fpm ze dekt.

Tijdelijke maatregelen, volgens PHP onvolledig

Gebruik deze alleen als overbrugging, overgenomen uit het php.net-advies. Ze verkleinen bepaalde paden en maken een host niet veilig. Stel ze in via php.ini of via een pool- of Apache-instelling op beheerdersniveau (php_admin_value). ini_set() en per-directory .user.ini komen volgens PHP te laat voor het session-upload-pad.

CVE-2026-109618

CVE-2026-109619

Web application firewalls

De CISA zegt dat een web application firewall tot de update enige bescherming kan bieden. Cloudflare zegt dat beheerde regels voor dit probleem vanaf 21 oktober 2026, 03:02 UTC, actief waren voor klanten met gratis en betaalde WAF-abonnementen, nog onder embargo ontwikkeld met de PHP Foundation en anderen, en dat klanten toch moesten patchen. Een regel kan worden omzeild; Cloudflare zag zelf hoe aanvallers payloads aanpasten. Houd de WAF, maar gebruik hem niet als fix.

Het AWS-bulletin 2026-143-AWS noemt compenserende maatregelen voor gebruikers van AWS WAF. Voor CVE-2026-109618: de regel SizeRestrictions_BODY in de AWS WAF Core rule set (CRS), als extra bescherming tegen request-bodies groter dan 8 KB (8.192 bytes). Voor CVE-2026-109619: AWS heeft versie 2.3 van de AWS WAF PHP Managed Rule Group gepubliceerd en wereldwijd tot standaardversie gemaakt. Het bulletin publiceert ook een aangepaste regel in JSON die POST-requests blokkeert met PHP_SESSION_UPLOAD_PROGRESS in de body en PHPSESSID in de body of een cookie. Ook AWS zegt dat alleen upgraden een volledige oplossing is, en dat er voor de end-of-life-versies 5.4 tot en met 8.1 geen fix voor CVE-2026-109618 is.

Na de upgrade

Hardening die je na de update houdt

De volledige PHP-advisory raadt verzoeklimieten aan de rand aan (gedecodeerde grootte, nestdiepte, invoervariabelen, multipart-delen en headers per deel), multipart weigeren op routes zonder uploads, en RLIMIT_AS en RLIMIT_DATA vermijden. Waarom uploadlimieten alleen het geheugen niet begrenzen en hoe mod_php, FPM, FrankenPHP en LiteSpeed verschillen: zie de pagina over CVE-2026-109618.

Bronnen

Externe links verlaten deze site. Wij hosten geen exploitcode.

  1. News archive 2026: security advisory, 21 October 2026 — PHP project (php.net)
  2. PHP downloads — PHP project (php.net)
  3. Today’s PHP security release, and how we’re strengthening PHP security — The PHP Foundation
  4. Critical vulnerabilities in PHP require immediate patching (21 October 2026) — CISA
  5. Amazon Threat Intelligence identifies PHP2Shell exploitation prior to public disclosure in MadPot — AWS Security Blog
  6. Cloudflare deploys protections against php2shell vulnerability — Cloudflare
  7. 2026-143-AWS — PHP web runtimes (CVE-2026-109618 and CVE-2026-109619) — AWS Security Bulletins
  8. Critical security issue affecting PHP — UK NCSC
  9. Notice: php2shell, critical PHP vulnerabilities (status as of 21 October 2026, 20:00 UTC) — Expel
  10. Responding to core PHP vulnerabilities CVE-2026-109618 and CVE-2026-109619 — Google Cloud
  11. php image on Docker Hub — Docker Official Images
  12. DLA-4848-1: php8.2 security update (Debian 12 bookworm) — Debian LTS
  13. DSA-6574-1: php8.4 security update (Debian 13 trixie) — Debian
  14. cPanel documentation — cPanel
  15. Plesk documentation — Plesk
  16. PHP 与 Node.js 紧急安全更新公告(更新于 2026-10-22) — 宝塔面板 (BT Panel)
  17. php2shell product-inventory notes — NCSC-NL
  18. php2shell: Assessing Elastic detection coverage relevant to CVE-2026-109618 and CVE-2026-109619 — Elastic Security Labs
  19. GHSA-w8hw-w9fx-j79w — CVE-2026-109618 — PHP (GitHub Security Advisory)
  20. PHP vulnerability CVE-2026-109618 (reproduces PHP’s advisory) — Inphinit (PHP framework documentation)