Ga naar hoofdinhoud
Terug naar Maatwerk Software
21 min lezen22 oktober 2026Gecontroleerd op 22 oktober 2026

PHP2Shell (CVE-2026-109618): welke PHP-versie is nog veilig, en wanneer moet je upgraden?

Zonder de PHP-update van 21 oktober 2026 is je site kwetsbaar, hoe goed je code ook is. Per versie: wat je nu doet, wie het oplost en wanneer je upgradet.

Redactieteam CleverTech AIRedactieteam AI & Procesautomatisering

Het redactieteam van CleverTech AI combineert expertise in AI, procesautomatisering en digitale transformatie. Alle content wordt opgesteld met behulp van AI-tools en zorgvuldig gecontroleerd op juistheid, actualiteit en praktische toepasbaarheid door tech-leads met ervaring in AI, procesautomatisering en IT-consulting.

Deze pagina is gecontroleerd op

Twee ontwikkelaars kijken samen naar een laptop met een terminal vol afgeronde updates met groene vinkjes, op de achtergrond een scherm met een overzicht van back-ups.
Maatwerk Software

Kort antwoord

PHP2Shell (CVE-2026-109618 en CVE-2026-109619) zijn twee kritieke lekken in PHP zelf, niet in je eigen code: elke PHP-installatie die webverzoeken verwerkt, is kwetsbaar tot je bijwerkt naar 8.5.12, 8.4.27, 8.3.36 of 8.2.35 (of een gepatcht pakket van je leverancier) en daarna alle PHP-processen herstart. Op PHP 8.1 en ouder brengt het PHP-project geen nieuwe release meer uit; een backport van je hoster of Linux-distributie koopt tijd, upgraden naar 8.4 of 8.5 is het plan. Ook 8.2 is gepatcht, maar krijgt na 31 december 2026 geen beveiligingsupdates meer. Je hoster patcht hooguit de PHP op zijn paneel; PHP in containers, je Composer-pakketten en de upgrade van je code zijn het werk van wie je software beheert.

Uit de praktijk · volgende stap

Van lezen naar doen.

Ook een kale "Hello World"-pagina is kwetsbaar voor PHP2Shell, zolang de PHP eronder niet is bijgewerkt (php2shell.com, 2026). En een update van WordPress, je plug-ins of je eigen applicatie helpt niet: "Dit is geen probleem dat je oplost door alleen WordPress of plugins bij te werken" (Eye Security via Dutch IT Channel, 2026).

De vraag is dus niet hoe goed je code is, maar welke PHP eronder draait. Wie vandaag PHP 8.2 bijwerkt, staat bovendien op 31 december opnieuw zonder beveiligingsupdates (PHP.net Supported Versions, 2026).

Deze pagina hoort bij alles over maatwerk software laten bouwen en beheren. Hier draait het om de PHP onder je bedrijfsapplicatie: wat je deze week doet, en wat vóór de jaarwisseling.

Stand: 22 oktober 2026, 00:45 uur. We werken deze pagina bij zodra het PHP-team, het NCSC of CISA iets wijzigt.

Wat is PHP2Shell (CVE-2026-109618 en CVE-2026-109619)?

PHP2Shell is de naam voor twee kritieke beveiligingslekken in de PHP-runtime, de software die je PHP-code uitvoert. Het PHP-project dichtte ze op 21 oktober 2026 in PHP 8.5.12, 8.4.27, 8.3.36 en 8.2.35 (PHP.net security advisory, 2026).

In gewone taal: PHP reserveert voor elk webverzoek een stuk geheugen en ruimt dat aan het eind op. Een aanvaller stuurt een verzoek dat PHP bewust over zijn geheugenlimiet duwt, bijvoorbeeld een formulier met heel veel lege bestandsvelden of diep geneste veldnamen, terwijl het binnen de toegestane verzoekgrootte blijft.

PHP breekt dan midden in een handeling af en laat het geheugen in een verwarde staat achter. Met die verwarde staat kan een aanvaller gegevens uitlezen of eigen code laten draaien (remote code execution, RCE; Cloudflare, 2026; Calif, 2026).

De twee CVE's zijn twee kanten van hetzelfde probleem. Dit is de omschrijving van het PHP-team zelf:

CVE Officiële titel Wat er misgaat
CVE-2026-109618 RCE via OOM corruption Bij een geheugentekort springt PHP uit een half afgemaakte handeling; de opruimroutine behandelt half geïnitialiseerde data daarna als geldig
CVE-2026-109619 RCE via stale global state Interne status (fouten, sessie, objecten) wijst na het vrijgeven nog naar dat geheugen; een volgend verzoek op dezelfde worker gebruikt het (use-after-free)

Sommige analyses koppelen de aanvalspaden anders aan de twee nummers. Wij volgen de officiële advisories van het PHP-team.

Geraakt zijn volgens PHP "all PHP installations serving web requests": PHP-FPM, Apache met mod_php, php-cgi, FrankenPHP en LiteSpeed (PHP.net, 2026). Volgens Sansec is ook de standaardconfiguratie kwetsbaar (Sansec, 2026); het PHP-team bevestigde een volledige aanval op mod_php met standaardinstellingen (GHSA-w8hw, 2026).

Wat een aanvaller ermee kan: zonder in te loggen code uitvoeren met de rechten van de webgebruiker. Ook zonder die stap kan hij procesgeheugen lezen, met daarin wachtwoorden, sessietokens, API-sleutels en certificaten (php2shell.com, 2026; Wiz, 2026).

Het NCSC gaf advies NCSC-2026-0443 uit met classificatie H/H (kans hoog, schade hoog) en adviseert "de beveiligingsupdates met spoed toe te passen". Het PHP-team zelf scoort beide lekken met CVSS v4.0 9.2, kritiek (GHSA, 2026).

Tijdlijn van lek tot patch

Nederlandse tijd, met UTC tussen haakjes waar het uitmaakt (PHP Foundation, 2026):

  • 20 oktober, rond 17:00 (15:00 UTC): de CVE-nummers lekken uit, met een verkeerde releasetijd en score.
  • 20 oktober, 21:30 (19:30 UTC): PHP vervroegt de release van 22 naar 21 oktober.
  • 21 oktober, 05:02 (03:02 UTC): Cloudflare zet WAF-regels aan voor alle klanten, ook op het gratis plan.
  • 21 oktober, vóór de release: de Rijksoverheid haalt Overheid.nl, MijnOverheid.nl en DigiD uit voorzorg offline (Rijksoverheid, 2026).
  • 21 oktober, rond 16:00 (14:00 UTC): de vier gepatchte releases verschijnen; om 16:01 volgt het NCSC-advies.

Je eigen code doet er hier niet toe

PHP verwerkt een multipart-formulier al tijdens het opstarten van het verzoek, voordat je applicatie één regel draait (Wiz, 2026). Een firewall of beveiligingsplug-in binnen je applicatie ziet de aanval dus niet aankomen; Sansec schrijft dat deze paden draaien vóórdat zelfs zijn eigen beveiligingsproduct aan bod komt (Sansec, 2026).

Daarmee is ook de vraag "maar onze software is toch veilig gebouwd?" beantwoord. Dat kan kloppen, en toch dicht alleen een bijgewerkte PHP-runtime dit lek.

Welke PHP draait je echt? Zo check je je PHP-versie

Vier manieren, van eenvoudig naar technisch:

Waar Hoe Let op
Hostingpaneel Per domein de PHP-instelling bekijken Plesk, cPanel en DirectAdmin kunnen per domein een andere versie draaien
De site zelf Tijdelijk een bestand met phpinfo() of echo PHP_VERSION; in de webroot Lees de versie af en verwijder het bestand direct (PHP.net)
WordPress Hulpmiddelen > Sitediagnose > Info > Server Sitediagnose markeert een verouderde PHP ook als beveiligingspunt (WordPress.org, 2026)
De server php -v op de commandoregel Toont de command-line-PHP, en die kan een andere zijn dan wat je website gebruikt

Kijk daarna niet alleen naar het getal. Ubuntu dicht lekken met backports en houdt het oude nummer: op Ubuntu 24.04 is 8.3.6-0ubuntu0.24.04.13 gepatcht, terwijl een zelfgebouwde 8.3.30 dat niet is (Ubuntu, 2026).

Vergelijk dus de volledige pakketversie met de tracker van je distributie. Debian levert wél de nieuwe puntrelease, zoals 8.2.35-1~deb12u1 op bookworm (Debian, 2026).

Draait je applicatie in een container, dan zit PHP in het image. Een update via het hostingpaneel of apt upgrade op de host raakt dat image niet; het moet opnieuw gebouwd worden.

Het NCSC houdt daarom in zijn operationele repository aan dat je images, appliances en ingebouwde runtimes apart inventariseert (NCSC, 2026). Dat is werk dat buiten elk paneel valt.

Wat we zagen op onze eigen hostingomgeving

Gemeten na de release van 21 oktober 2026 op onze eigen hostingomgeving, alleen-lezend, afgeronde aantallen.

Van ruim 150 domeinen en subdomeinen had ongeveer 1 op de 12 echt PHP-bestanden in de webroot, grotendeels WordPress-sites.

Ruim twee derde draait als container achter een reverse proxy. De rest is statisch, wordt doorgestuurd naar een andere dienst of draait PHP rechtstreeks, zoals die WordPress-sites.

Wat we eruit leren:

  • PHP aan is niet hetzelfde als PHP in gebruik. Zet PHP uit waar een domein statisch is of naar een container doorstuurt: onnodig aan is aanvalsoppervlak zonder functie.
  • Bij PHP2Shell zit de fout vóór je code. Ook een site zonder eigen PHP-logica telt mee, zolang verzoeken bij PHP aankomen. Wordt een domein volledig naar een container doorgestuurd, dan telt de PHP in die container.
  • PHP in een container valt buiten een update van de server-PHP. Neem containers apart mee in de inventaris.
  • Inventariseren gaat vóór patchen. Wat je niet in beeld hebt, patch je niet.

Die inventaris is daarom de eerste stap bij elke applicatie die we in beheer nemen.

Weet je niet welke PHP je applicatie draait? Neem contact op of bel 085 016 0118; we zoeken het met je uit.

Welke PHP-versie is veilig? Per tak wat PHP2Shell betekent

Volgens de statistieken van WordPress.org draait 36,4% van de WordPress-sites op PHP 8.1 of ouder, en ongeveer 60% op een tak die vanaf 1 januari 2027 geen beveiligingsupdates van php.net meer krijgt (WordPress.org, 2026). Backports van hosters en distributies zijn in die cijfers onzichtbaar.

Onze tabel per PHP-tak (stand 22 oktober 2026, samengesteld door CleverTech AI uit php.net en leveranciersdocumentatie):

Tak Fix van php.net Gepatcht pakket bij leveranciers (21-10) Beveiligingsupdates tot (end of life) Wat dit nu betekent Route (ons advies)
5.x en 7.0-7.3 Nee Ubuntu Pro/Legacy voor sommige (14.04 php5, 16.04 php7.0, 18.04 php7.2); Plesk verwijst voor 5.6, 7.2 en 7.3 naar betaalde TuxCare ELS Lang voorbij Kwetsbaar; onderzoekers vonden paden tot PHP 5.4 Afschermen of offline, dan upgraden of herbouwen
7.4 Nee, wel een bronpatch cPanel, Plesk op Linux (nieuwe build, zelfde versienummer), volgens het DirectAdmin-forum ook DirectAdmin; Ubuntu 20.04 alleen met Pro 28-11-2022 Kwetsbaar tenzij je leverancier een backport bevestigt Upgrade naar 8.4 of 8.5 als project
8.0 Nee, wel een bronpatch cPanel, Plesk op Linux (nieuwe build), volgens het DirectAdmin-forum ook DirectAdmin 26-11-2023 Kwetsbaar tenzij je leverancier een backport bevestigt Upgrade naar 8.4 of 8.5 als project
8.1 Nee, wel een bronpatch cPanel, Plesk op Linux (nieuwe build), volgens het DirectAdmin-forum ook DirectAdmin; Ubuntu 22.04 31-12-2025 Kwetsbaar tenzij je leverancier een backport bevestigt Upgrade naar 8.4 of 8.5 als project
8.2 8.2.35 Ook Debian bookworm 31-12-2026 Gepatcht, maar de tweede deadline ligt tien weken verder Nu patchen, vóór de jaarwisseling upgraden
8.3 8.3.36 Ook Ubuntu 24.04 (8.3.6-0ubuntu0.24.04.13) 31-12-2027 Patchen Patchen, upgrade in 2027 inplannen
8.4 8.4.27 Ook Debian trixie 31-12-2028 Patchen Doelversie
8.5 8.5.12 Ook Ubuntu 26.04 (8.5.4-0ubuntu1.5) 31-12-2029 Patchen; ken fatal_error_backtraces Doelversie
8.6 RC4 bevat de fixes n.v.t. Release gepland op 19-11-2026 Nog geen productieversie Nog niet op inzetten

Bronnen: PHP.net Supported Versions, PHP.net end of life, PHP.net advisory, cPanel EasyApache 4, Plesk, DirectAdmin-forum, Ubuntu, Debian en de PHP 8.6-planning, alle 2026.

PHP 8.2 is de tweede deadline: op 31 december 2026 is 8.2 end of life, dus na de patch van deze week heb je nog tien weken beveiligingsupdates. Vanaf 1 januari 2027 krijgen alleen 8.3, 8.4, 8.5 en straks 8.6 nog fixes van php.net.

Je framework bepaalt de ondergrens

Je kunt PHP pas omhoog zetten als je framework of platform meegaat. Dit zijn de minimumversies van de gangbare PHP-stacks:

Framework of platform Vraagt minimaal Goed om te weten
Laravel 13 PHP 8.3 Beveiligingsupdates tot 17 maart 2028
Laravel 12 PHP 8.2 Bugfixes stopten op 13 augustus 2026; beveiliging tot 24 februari 2027
Symfony 8.1 PHP 8.4 Nieuwste tak
Symfony 7.4 LTS PHP 8.2 De LTS-tak voor wie op 8.2 of hoger zit
Symfony 6.4 LTS PHP 8.1 Draait nog op 8.1, een tak zonder release met de fix
Drupal 11 PHP 8.3 Drupal 10 vraagt minimaal 8.1
Adobe Commerce / Magento 2.4.6: PHP 8.1 of 8.2 2.4.9 draait op PHP 8.5; 2.4.6 heeft extended support tot 30 augustus 2027
WordPress 7.1 Draait op PHP 7.4 tot 8.5 Aanbevolen: 8.3 of hoger
WooCommerce Volgt WordPress Aanbevolen: 8.3 of hoger, getest tot 8.4
Joomla 6 PHP 8.3 Aanbevolen: 8.4
Shopware 6.7 PHP 8.2 Aanbevolen: 8.4
Nextcloud (nieuwste) PHP 8.3 Aanbevolen: 8.5

Bronnen: Laravel, Symfony, Drupal, Adobe Commerce, WordPress en het WordPress Core Handbook, WooCommerce, Joomla, Shopware en Nextcloud, alle 2026.

Daarom is een PHP-upgrade bijna altijd ook een framework-upgrade. Wie op 8.1 zit, zit meestal ook op een frameworkversie die zelf geen updates meer krijgt.

Wie lost wat op: jij, je hoster of je softwarepartij?

Het NCSC publiceerde op 21 oktober een beslisboom voor organisaties met PHP (NCSC, 2026). Wij vertalen de vier takken naar situaties die je in het MKB tegenkomt.

Situatie (NCSC) Zo herken je het Wat je doet Wie je belt
1. PHP in eigen beheer, 8.2 of nieuwer Jij of je IT-partij beheert de server; PHP draait 8.2 tot 8.5 Nu bijwerken en herstarten, daarna nagaan of er misbruik was Je beheerder of hostingpartij
2. PHP in eigen beheer, ouder dan 8.2 Een eigen server of VPS met PHP 7.4, 8.0 of 8.1 Offline halen en upgraden voordat je weer online gaat Je softwarepartij, want dit is codewerk
3. Product met PHP, code niet van jou Een pakket of portaal van een leverancier, op jouw server Bereikbaarheid van buitenaf beperken, mitigeren, wachten op de patch van de leverancier De leverancier van het product
4. Alles extern SaaS of cloud; je komt niet bij de server Vragen wat er gedaan is, en wanneer Je leverancier

Volgens het NCSC krijgen organisaties in tak 2 de meeste downtime, met kans op conflicten met gekoppelde software. CISA geeft hetzelfde advies: systemen die niet meteen bij te werken zijn of nog op 8.1 of ouder draaien, offline halen (CISA, 2026).

Wie patcht wat, per hostingvorm

Dit is onze indeling. Het punt: de PHP-runtime en je applicatie hebben vaak een andere eigenaar.

Hostingvorm PHP-runtime bijwerken Herstarten Containers en images Composer-pakketten en versie-upgrade
Gedeelde of managed hosting Hoster Hoster n.v.t. Jij of je softwarepartij
Eigen VPS of server Jij of je beheerpartij Jij of je beheerpartij Jij of je beheerpartij Jij of je softwarepartij
Containers Niemand automatisch: het image moet opnieuw gebouwd Bij uitrol van het nieuwe image Wie de build-pipeline beheert Je softwarepartij
SaaS met PHP eronder Leverancier Leverancier Leverancier Leverancier
Maatwerk PHP-applicatie Hoster of beheerpartij Hoster of beheerpartij Beheerpartij Je softwarepartij: code, framework en taksprong

Een hoster doet de runtime. Applicatiebeheer, dus de code, de pakketten en de sprong naar een nieuwe PHP-tak, ligt bij wie je software beheert.

De grote leveranciers waren er op 21 oktober vroeg bij. cPanel leverde in EasyApache 4 release 25.91 de vier nieuwe versies plus backports voor 7.4, 8.0 en 8.1 (cPanel, 2026).

Plesk meldt dat alle meegeleverde PHP-versies geraakt zijn, met gepatchte builds voor PHP 7.4 tot en met 8.5 op Linux en 8.2 tot en met 8.5 op Windows; voor 5.6, 7.2 en 7.3 verwijst Plesk naar betaalde TuxCare ELS (Plesk, 2026).

De bewering dat een Plesk PHP-update "meestal vier dagen later" komt, kwam van een gebruiker op het Plesk-forum die eerdere releases optelde. Dit keer kregen leveranciers de patches vooraf, en volgens Plesk zelf stonden de builds op 21 oktober klaar.

Op een VPS ben je vaak zelf aan zet. GoDaddy patchte zijn Managed WordPress volledig, maar meldt dat VPS-klanten zelf moeten bijwerken (GoDaddy, 2026).

PHP2Shell staat op elke prioriteitenladder bovenaan: kritiek, vanaf internet bereikbaar en met aanvalsverkeer. Hoe je zo'n ladder voor al je systemen opzet, en wanneer patch management uitbesteden loont, werkt een aparte pagina uit.

Kun je vandaag niet updaten? Tijdelijke maatregelen en hun prijs

Deze maatregelen kopen uren of dagen, geen veiligheid. Elke maatregel heeft een nadeel dat je vooraf wilt kennen.

Maatregel Wat het doet Nadeel
session.upload_progress.enabled=0 in php.ini of de FPM-pool, daarna alle workers herstarten Blokkeert de bevestigde sessiepaden van CVE-2026-109619 Niet tegen andere varianten; uploadvoortgangsbalken werken niet meer; via ini_set() of .user.ini is het te laat
fatal_error_backtraces=0 en herstarten Sluit het bevestigde backtrace-pad Alleen relevant op PHP 8.5
memory_limit=-1 afdwingen met php_admin_value, plus een limiet via cgroup v2 memory.max De geheugenlimietfout van PHP valt weg Alleen mét een harde geheugenlimiet per pool of container (cgroup v2 memory.max). Zonder die limiet kan één verzoek al het geheugen van de server opmaken, en stopt het besturingssysteem willekeurige processen, ook je database en andere sites. Niet doen op een gedeelde server; vraag het je hoster. Een onderliggende allocatiefout kan het lek nog raken. Gebruik geen RLIMIT_AS of RLIMIT_DATA: volgens het PHP-team kunnen die juist de kwetsbare allocatiefout veroorzaken
post_max_size omlaag (8M zonder uploads, 32M met) en upload_max_filesize daaronder; proxylimieten op parts, headers en nesting Maakt de bekende triggers lastiger Ook verzoeken zonder Content-Length moeten begrensd; grote uploads werken niet meer
multipart/form-data blokkeren in nginx of Apache Haalt de bekende trigger weg Uploads en mogelijk afrekenformulieren werken niet meer
Alleen-lezen (alleen GET en HEAD) of offline Haalt de bekende triggers weg; alleen offline sluit alles af Je site toont alleen nog, of is weg

Bronnen: PHP.net, GHSA-w8hw, GHSA-6wmf, php2shell.com en voor multipart blokkeren en alleen-lezen Sansec, alle 2026.

Test elke wijziging aan nginx of Apache eerst (nginx -t of apachectl configtest) en herlaad liever dan dat je herstart. Op een server met meerdere sites raakt een fout ze allemaal tegelijk; werkt je hoster met een paneel, zet de regel dan per domein via dat paneel.

Het PHP-team zegt het zelf: "There are no complete mitigations, updating is the only safe choice" (PHP.net, 2026). Zie elke maatregel als een brug naar de update, niet als vervanging ervan.

Na de PHP-update: vijf controles

Een update die niet geladen is, beschermt niets. Loop daarom na het bijwerken deze vijf punten langs.

Controle Waarom Hoe
1. Draait de site echt de nieuwe versie? Het paneel kan een andere tak tonen dan de site gebruikt Per domein controleren, zoals Eye Security adviseert: "Controleer na de update ook dat de website daadwerkelijk de bijgewerkte versie gebruikt"
2. Zijn Apache, PHP-FPM en alle langlopende workers herstart? Een draaiend proces houdt de oude PHP in het geheugen Herstart expliciet, ook queue-workers en daemons (php2shell.com, 2026)
3. Zijn containers en andere PHP-runtimes herbouwd? Een paneel-update raakt images niet Images opnieuw bouwen en uitrollen
4. Stond de server open en bevat hij geheimen? Het lek kan geheugen met wachtwoorden en sleutels vrijgeven Wachtwoorden, API-sleutels en sessiesleutels vervangen; Patchstack: behandel de server als mogelijk gecompromitteerd (Patchstack, 2026)
5. Ken je het nieuwe gedrag bij geheugentekort? Na de fix stopt het proces bij de harde limiet en draaien shutdown-handlers niet meer Test afhandelingen die op shutdown-handlers leunen (php2shell.com, 2026)

Waar bronnen elkaar tegenspreken (stand 22 oktober 2026)

In de eerste twee dagen spraken bronnen elkaar op zes punten tegen. Dit is onze samenvatting, met wat wij eruit concluderen.

Punt Wie zegt wat Wat wij concluderen
Ernstscore PHP-team: CVSS v4.0 9.2; NVD: 9.8 (CVSS v3.1); Red Hat: 8.1, "Important"; de 10.0 uit het lek was volgens de PHP Foundation fout 9.2 is de score van de maker; NVD rekent met de oudere v3.1-methode hoger
Actief misbruik Misbruik gezien: watchTowr, "Exploitation has been observed in the wild" (via honeypots). Aanvalsverkeer: Cloudflare en Patchstack (later "only probing attacks, with no hard evidence of breaches yet"). Niet gezien: CISA "has not observed exploitation ... as of the time of publication"; Talos "has not seen them being exploited in the wild yet" (21-10, 14:00 UTC); geen vermelding in de KEV-catalogus van CISA Aanvalsverkeer: ja. Bevestigde inbraken: op 22 oktober nog niet publiek gemeld. Handel alsof het wel zo is
Hoe ver terug Onderzoekers vonden paden tot PHP 5.4 (php2shell.com, Sansec); Red Hat: RHEL 7 en ouder leveren PHP-versies die niet geraakt zijn; PHP.net: 8.1 en ouder krijgen geen updates meer van het PHP-project Behandel alles onder 8.2 als kwetsbaar, tenzij je leverancier een backport bevestigt
"Geen fix voor 8.1" Talos: "There is no patch for PHP 8.1 or older"; tegelijk bronbackports van php.net en gepatchte pakketten van cPanel, Plesk en Ubuntu Geen nieuwe release, wel backports: die kopen tijd, het plan blijft upgraden
Publieke exploit Een demovideo lekte (PHP Foundation); Sansec: "The writeups and an exploit tool are public" Of er een kant-en-klare exploit rondgaat, verschilt per bron; reken erop
Welk pad bij welke CVE Sansec koppelt de paden anders dan de officiële advisories Wij volgen de GHSA's van het PHP-team

Draai je PHP 8.1 of ouder: tijd kopen of upgraden?

Volgens een eerste schatting van Talos krijgt ongeveer de helft van de PHP-systemen geen patch (Talos, 2026). Voor die systemen zijn er drie routes.

Optie Wat het je koopt Waar het ophoudt
Backport van je leverancier (cPanel, Plesk, Ubuntu Pro; voor 5.6, 7.2 en 7.3 verwijst Plesk naar TuxCare) Deze twee lekken dicht, zonder codewijziging Elk volgend lek vraagt een nieuwe backport; framework en pakketten blijven oud
Betaalde extended support, zoals bij one.com voor 8.0 en 8.1 (tunity.be, 2026) Uitstel tegen een maandbedrag Hetzelfde, plus een terugkerende rekening
Upgrade naar PHP 8.4 of 8.5 Beveiligingsupdates tot eind 2028 of eind 2029 Kost een project: code, framework en tests

Een backport is een pleister met een houdbaarheidsdatum, geen route. Het NCSC verwacht dat aanvallers deze lekken lang blijven misbruiken, zoals eerder bij log4shell (NCSC, 2026).

Ons advies voor de doelversie: PHP 8.4 of 8.5. Met 8.3 koop je tijd tot eind 2027, en dan sta je opnieuw voor dezelfde vraag.

Wat er breekt van PHP 7.4 naar 8.x

Versie Wat verandert Wat je merkt
8.0 0 == "foo" is nu false; each() en create_function() zijn weg; veel waarschuwingen worden TypeError of Error Stille logicawijzigingen en harde fouten op plekken die jaren werkten
8.1 null doorgeven aan niet-nullable parameters van ingebouwde functies is deprecated Een stroom deprecation-meldingen in je logs
8.2 Dynamische properties zijn deprecated (tenzij #[\AllowDynamicProperties]), net als utf8_encode() en utf8_decode() Oudere modellen en bibliotheken die zomaar properties toevoegen
8.4 Impliciet nullable parameters zijn deprecated Veel kleine aanpassingen in functiehandtekeningen

Bron: de migratiegidsen van de PHP-handleiding voor 8.0, 8.1, 8.2 en 8.4.

Zo upgrade je je PHP-versie: de volgorde die werkt

Stap Gereedschap Wat het oplevert
1. Tests eerst Je testsuite, aangevuld waar hij gaten heeft Na de upgrade weet je wat er stuk is
2. Blokkades vinden composer why-not php 8.4 en composer audit (Composer) Welke pakketten de sprong tegenhouden, en welke bekende lekken hebben
3. Statisch controleren PHPCompatibility met testVersion 8.4, PHPStan met phpVersion Wat breekt, voordat het draait
4. Automatisch herschrijven Rector met withPhpSets(), eerst --dry-run; bij oude code withPhpLevel(), één stap per run Het voorspelbare deel van de diff
5. Framework mee omhoog De ondergrens uit de tabel hierboven Een stack die weer updates krijgt
6. Staging, dan overstap Een kopie van productie en een terugvalpad Een overstap zonder verrassingen in productie

Wil je bij de upgrade ook containeriseren of naar een nieuwe omgeving verhuizen, plan dat dan als aparte stap. Eerst de nieuwe PHP, dan de nieuwe omgeving: zo weet je bij een fout welke van de twee hem veroorzaakte.

Waar AI helpt bij een PHP-upgrade, en waar niet

Rector doet het voorspelbare deel: regels die code altijd op dezelfde manier herschrijven. Een AI-codeeragent schrijft de rest van de mechanische wijzigingen en de tests die ontbreken.

Een mens beoordeelt elke wijziging, en de testsuite is het vangnet. Ook Anthropic beschrijft modernisering met Claude Code als stapsgewijs refactoren "while keeping humans in the loop" (Anthropic, 2026).

Hoeveel tijd dat bij PHP scheelt, is nog niet openbaar gemeten. Het beste openbare cijfer komt van Google: bij 39 migraties kwam ongeveer driekwart van de codewijzigingen van een taalmodel, en de ontwikkelaars schatten zelf 50% tijdwinst (Ziftci en anderen, arXiv, 2025).

Dat zijn algemene migraties binnen Google en zelfgerapporteerde schattingen, geen PHP-upgrades. Daarom noemen we geen percentage voor jouw upgrade, maar begroten we die na een code-audit.

Soms is herbouwen de enige route. In een multi-tenant zorgplatform waren besturingssysteem, PHP-versie en database alle drie end-of-life, zonder upgradepad dat niet feitelijk op herbouw neerkwam.

Of je dan moderniseert of vervangt, is een andere afweging. Die staat uitgewerkt bij legacy software vervangen.

Wat kost patchen, upgraden of laten beheren?

Onze prijzen zijn exclusief btw; bij marktreferenties vermeldt de bron de btw niet. Stand 22 oktober 2026; elke rij zegt of het onze prijs is of een marktreferentie.

Route Kosten Herkomst
Patch binnen je tak op managed hosting Meestal binnen je hostingabonnement Algemeen; verschilt per hoster
Extended support voor een oude tak (noodoplossing) €6,99 per maand bij one.com Marktreferentie, tunity.be (2026)
PHP 7 naar 8, middelgrote applicatie Vanaf €4.500, 2 tot 6 weken Marktreferentie, php.nl (2026)
PHP-upgrade bij CleverTech AI Begroten we na een code-audit Eigen
Legacy moderniseren in plaats van vervangen Vanaf €15.000 Eigen prijs
Re-platforming per applicatie €5.000-€15.000 Eigen prijs
Containerisatie per applicatie €8.000-€25.000 Eigen prijs
Nieuwe bedrijfsapplicatie €25.000-€75.000 Eigen prijs
Beheer van een draaiende PHP-applicatie €500-€750 per maand, na een code-audit, maandelijks opzegbaar Eigen prijs

In de beheerband zitten monitoring, beveiligingspatches, bugfixes en 8 uur support. Het hogere bedrag hoort bij applicaties met meerdere koppelingen en een responstijd die we vooraf vastleggen.

Hosting en servers rekenen we apart, en kosten van derden rekenen we één-op-één door. Hoe de rest van de rekening na de bouw eruitziet, lees je in wat maatwerk software na de oplevering kost; al onze tarieven staan op de tarievenpagina.

Wat wachten kost, is niet in euro's te zeggen: betrouwbare Nederlandse cijfers bestaan daarvoor niet. Het NCSC verwacht wel dat organisaties op oude versies de meeste downtime krijgen, met neveneffecten op gekoppelde applicaties (NCSC, 2026).

Hoe dat eruitziet, liet de Rijksoverheid zien met DigiD, MijnOverheid en Overheid.nl uit voorzorg offline. Voor een webshop of klantportaal betekent zo'n dag zonder site een dag zonder bestellingen of service.

Zo overvalt het volgende PHP-lek je niet: beheer dat elke dag doorloopt

De les van PHP2Shell is niet "sneller patchen", maar weten waar PHP draait en iemand hebben die het elke dag bijhoudt. Zo ziet dat werk eruit als je software bij ons in beheer is.

Inventaris eerst: waar PHP draait, welke takken, welke containers, en op welke domeinen PHP aan staat zonder dat het nodig is. Dat is het eerste wat we in beheer opbouwen.

Elke dag dependency-updates: we zetten elke dag de updates van je Composer- en npm-pakketten klaar, getoetst tegen de beveiligingsadviezen (composer audit). Ze gaan pas naar productie als de volledige testsuite groen is; major-versies beoordeelt een mens.

Taalversie-upgrades op tijd gepland: de sprong naar een nieuwe PHP-tak plannen we ruim vóór de einddatum, met Rector, AI en tests zoals hierboven; wat die sprong kost, spreken we vooraf af. Zo wordt 31 december geen noodgeval.

Beveiligde servers: cybersecurity voor je applicatie begint bij de server, dus na de inventaris zetten we PHP uit waar het niet nodig is en leggen we vast dat images bij elke PHP-release opnieuw gebouwd en uitgerold worden. Daarbij krijgt de webgebruiker zo weinig mogelijk schrijfrechten, werkt SSH alleen met sleutels en zonder root-login, en staat er een firewall voor alles wat niet open hoeft.

Elke dag een back-up: met één voorwaarde die PHP2Shell scherp maakt. Een aanvaller draait als de webgebruiker, dus een back-up op dezelfde server of op een schijf waar die gebruiker kan schrijven, is geen back-up.

Een back-up helpt pas als minstens één kopie buiten de server staat, niet beschrijfbaar is voor de webgebruiker en het terugzetten getest is. CISA adviseert offline, versleutelde back-ups die je regelmatig test (CISA #StopRansomware Guide, 2023); hoe je dat voor je hele bedrijf regelt, staat in het disaster recovery plan.

Voor dit beheer betaal je €500-€750 per maand per applicatie, na een code-audit en maandelijks opzegbaar. Hosting staat daar los van.

Bouwde een andere partij je software, dan begint het bij de overdracht. Hoe maatwerk software laten onderhouden werkt als de bouwer niet de beheerder wordt, staat op een eigen pagina.

Alles hierboven valt onder onderhoud en beheer van je maatwerksoftware. Het is hetzelfde werk, of je software nu op Laravel, Symfony of een eigen PHP-basis draait.

Stuur ons je repository of geef ons leestoegang tot de server: we zeggen welke PHP-tak je draait, wat de route is en wat beheer daarna kost. Neem contact op, bel 085 016 0118 of plan een gesprek.

Wat is er veranderd sinds 21 oktober?

  • 22 oktober 2026, 00:45: geen van beide CVE's in de KEV-catalogus van CISA; NCSC-2026-0443 staat op versie 1.00, H/H.
  • 21 oktober 2026: PHP 8.5.12, 8.4.27, 8.3.36 en 8.2.35 uitgebracht; advisories van het PHP-team, het NCSC, CISA en NCSC UK.

Opgesteld met AI-ondersteuning, geredigeerd en inhoudelijk verantwoord door het Redactieteam CleverTech AI.

Tags:#cybersecurity#onderhoud#MKB#legacy systemen
Delen:
Veelgestelde vragen

Antwoorden over dit artikel

Is mijn WordPress- of WooCommerce-site geraakt door PHP2Shell?

Ja, als je site op PHP draait zonder de update van 21 oktober 2026: onderzoekers lieten aanvallen zonder inloggen zien op WordPress, Drupal en Joomla. Een update van WordPress, WooCommerce of je plug-ins lost het niet op; alleen PHP 8.5.12, 8.4.27, 8.3.36 of 8.2.35, of een gepatcht pakket van je hoster, sluit het lek. Je PHP-versie zie je in WordPress onder Hulpmiddelen > Sitediagnose > Info > Server. WordPress en WooCommerce raden zelf PHP 8.3 of hoger aan.

Is PHP-FPM net zo kwetsbaar als mod_php?

Beide zijn geraakt door PHP2Shell, maar niet even makkelijk. Het PHP-team noemt het risico het hoogst bij Apache met mod_php: daar bevestigde het een aanval zonder inloggen met de standaardinstellingen, voordat er applicatiecode draait. Bij PHP-FPM bevestigde het PHP-team één route, via een pad tijdens de uitvoering van de applicatie, en ook Calif meldt werkende aanvallen op FPM; Red Hat noemt RCE op FPM daarentegen 'in de praktijk lastig' en zegt dat het meestal niet-standaard gedrag vraagt. Lastig is niet onmogelijk, dus update ook op FPM en herstart daarna alle pools.

Beschermt een WAF zoals die van Cloudflare me tegen PHP2Shell?

Gedeeltelijk. Cloudflare zette op 21 oktober 2026 regels aan voor alle klanten, ook op het gratis plan, en zegt zelf dat je daarnaast moet patchen. Een WAF helpt alleen als je server uitsluitend verkeer via die WAF accepteert; is de server ook direct bereikbaar, dan loopt een aanvaller er omheen. Een beveiligingsplug-in in je site ziet de aanval niet, omdat PHP het verzoek verwerkt voordat je applicatie start.

Helpt het om mijn site in onderhoudsmodus te zetten?

Nee. Volgens Sansec helpt de onderhoudsmodus van WordPress of Magento niet tegen PHP2Shell, omdat PHP het verzoek dan nog steeds verwerkt. Wat tot de update wel helpt: de site alleen-lezen maken, zodat de webserver alleen GET- en HEAD-verzoeken doorlaat, of de site offline halen. Beide kosten iets: formulieren, uploads en een checkout werken dan niet.

Draai ik PHP alleen voor cronjobs of de command line: ben ik dan ook geraakt?

Geen enkele primaire bron noemt de command line als aanvalsroute; PHP2Shell gaat via webverzoeken. Onze lezing is daarom dat PHP die alleen cronjobs of scripts draait niet het doelwit is, en Red Hat schrijft dat systemen die PHP niet aan onvertrouwd webverkeer blootstellen niet geraakt zijn. Draait dezelfde PHP-installatie ook achter je webserver, dan werk je die wel bij.

Hoe weet ik of er al is ingebroken, en wat doe ik dan?

Op 21 oktober 2026 had onder meer Huntress nog geen bevestigde indicatoren, zoals hashes of IP-adressen, gepubliceerd. Signalen zijn ongewoon grote PHPSESSID-cookies, vreemde multipart-verzoeken gevolgd door geheugenfouten of herhaalde 500-fouten, en PHP-processen die shells of downloadtools starten; los bewijzen die niets, en het ontbreken ervan ook niet. Vermoed je een inbraak, isoleer dan de server, bewaar de logs en zoek naar webshells, nieuwe bestanden in de webroot, onbekende cronjobs en accounts. Patchstack raadt aan een server die openstond als mogelijk gecompromitteerd te behandelen en wachtwoorden en sleutels te vervangen.

Moet ik een datalek melden als mijn server kwetsbaar was?

Kwetsbaar zijn is op zichzelf geen datalek; de meldplicht gaat over een inbreuk waarbij persoonsgegevens zijn ingezien, gestolen, gewijzigd of verloren. Stel je een inbreuk vast waarbij persoonsgegevens betrokken zijn, dan meldt de verwerkingsverantwoordelijke die zonder onredelijke vertraging en zo mogelijk binnen 72 uur nadat hij ervan weet bij de Autoriteit Persoonsgegevens, tenzij het onwaarschijnlijk is dat de inbreuk een risico voor de betrokkenen oplevert; een partij die de server voor je beheert, moet jou zonder onredelijke vertraging inlichten. Val je onder de Cyberbeveiligingswet, dan gelden daarnaast eigen termijnen, beginnend met een vroegtijdige waarschuwing binnen 24 uur; die staan uitgewerkt op onze pagina over patch management uitbesteden.

PHP 8.6 komt in november uit. Moet ik daarop wachten?

Nee. PHP 8.6 staat gepland voor 19 november 2026 en release candidate RC4 bevat de PHP2Shell-fixes al, maar wachten laat je huidige installatie wekenlang open. Patch nu binnen je eigen tak en kies als upgradedoel 8.4 of 8.5, die beveiligingsupdates krijgen tot eind 2028 en eind 2029. Ons advies: stap pas over naar 8.6 als je framework en pakketten die versie officieel ondersteunen.

Hoe lang duurt een upgrade van PHP 7.4 of 8.1 naar 8.4?

Dat hangt minder af van PHP zelf dan van wat eromheen zit: hoeveel tests er zijn, of je framework ook een grote versie moet springen, welke Composer-pakketten 8.4 nog niet ondersteunen en hoeveel koppelingen er zijn. Een Nederlandse aanbieder noemt voor een PHP 7 naar 8-migratie van een middelgrote applicatie twee tot zes weken; dat is een marktreferentie, geen toezegging van ons. CleverTech AI geeft een doorlooptijd pas na een code-audit, omdat die laat zien hoeveel van het werk automatisch kan.

Zit het bijwerken van de PHP-versie in een onderhoudscontract?

Bij CleverTech AI horen beveiligingsupdates binnen je PHP-tak bij het beheer, samen met monitoring en bugfixes, voor €500 tot €750 per maand per applicatie (excl. btw, hosting apart). Of een sprong naar een nieuwe tak met codewijzigingen erin past, spreken we vooraf af na de code-audit. Zo weet je ruim vóór een einddatum, zoals die van PHP 8.2 op 31 december 2026, wat die overstap kost.

Is PHP2Shell een reden om van PHP af te stappen naar een andere taal?

Nee, PHP2Shell alleen is daar geen reden voor. Het PHP-team bracht op 21 oktober 2026 fixes uit voor alle ondersteunde takken, en PHP 8.4 en 8.5 krijgen beveiligingsupdates tot eind 2028 en eind 2029. Een andere taal betekent je applicatie herbouwen, terwijl tools als Rector het mechanische upgradewerk binnen PHP grotendeels automatiseren. Overstappen loont pas als je software ook om andere redenen op is; hoe je dat afweegt, lees je op onze pagina over legacy software vervangen.

Mijn applicatie draait op Laravel 10 of 11. Is een PHP-update dan genoeg?

Voor PHP2Shell wel, voor de veiligheid van je applicatie niet. Laravel 11 krijgt sinds 12 maart 2026 geen beveiligingsupdates meer en Laravel 10 al sinds 4 februari 2025, ook al draait de PHP eronder volledig bijgewerkt. Laravel 12 krijgt beveiligingsupdates tot 24 februari 2027 en Laravel 13 tot 17 maart 2028, waarbij 13 minimaal PHP 8.3 vraagt. Patch PHP dus nu en plan de framework-upgrade direct erachteraan.

Mijn server draait Ubuntu 20.04 of 22.04. Krijg ik de fix?

Op Ubuntu 22.04 zit de fix in het standaard php8.1-pakket, versie 8.1.2-1ubuntu2.28; het upstream-nummer blijft 8.1.2, dus vergelijk de volledige pakketversie met de Ubuntu-securitytracker. Op Ubuntu 20.04 met PHP 7.4 krijg je de fix alleen via Ubuntu Pro. PHP die je zelf hebt gebouwd of uit een andere bron haalt, wordt met deze Ubuntu-updates niet bijgewerkt. Beide zijn een tussenstation: plan de overstap naar een nieuwere release met PHP 8.4 of 8.5.

Wie heeft PHP2Shell ontdekt, en speelde AI daarbij een rol?

Volgens de PHP Foundation en de onderzoekers kwamen de meldingen van Calif, OpenAI en Wiz; de advisories op GitHub noemen daarnaast een melder van Areion. Calif begon op 30 juli 2026 aan PHP binnen OpenAI's programma 'Patch the Planet' en meldde op 11 augustus de eerste bug; Wiz vond op 19 augustus een kwetsbaarheid. AI speelde mee: Wiz gebruikte eigen tooling plus commerciële AI-modellen en Calif werkte met een 'LLM companion'. De PHP Foundation controleert meldingen ook met AI, maar zegt dat een mens elke beslissing neemt en aan elke patch werkt.

Hoe vaak brengt PHP beveiligingsupdates uit?

Vaker dan veel bedrijven bijhouden: alleen al tussen eind juli en eind oktober 2026 kwamen er drie beveiligingsreleases, op 30 juli, 24 september en 21 oktober. Het soort fout achter PHP2Shell is ook niet nieuw; volgens Calif vond onderzoeker Stefan Esser al in 2004 een vergelijkbaar lek rond de geheugenlimiet. Reken dus niet op af en toe updaten, maar richt je beheer zo in dat elke PHP-release standaard wordt opgepakt en de processen worden herstart.

Kan ik voor PHP 7.4, 8.0 of 8.1 zelf de bronpatch van het PHP-team bouwen?

Dat kan: het PHP-team publiceerde voor 7.4, 8.0 en 8.1 minimale bronpatches als git-branches, bedoeld voor wie PHP zelf compileert. Er komen geen officiële releases voor die takken, dus bouwen, testen en elke volgende fix liggen bij jou. Gebruik je PHP van cPanel, Plesk of Ubuntu, neem dan hun gepatchte pakket in plaats van zelf te bouwen. Het blijft tijd kopen: 7.4, 8.0 en 8.1 krijgen sinds 2022, 2023 en eind 2025 geen beveiligingsupdates meer.

Wat vraag ik mijn hoster of softwareleverancier over PHP2Shell?

Vraag welke PHP-versie elk van je domeinen draait, of dat een gepatchte release of een backport is, en of Apache, PHP-FPM en alle langlopende workers daarna zijn herstart. Vraag ook wie de PHP in containers en images opnieuw bouwt, want een paneel-update raakt die niet. En vraag wie je Composer-pakketten bijwerkt en de upgrade naar een nieuwere PHP-tak doet: dat is meestal niet je hoster, maar je softwarepartij.

Kan een PHP-update mijn website of applicatie kapot maken?

Een beveiligingsupdate binnen je tak, zoals van 8.3.x naar 8.3.36, is bedoeld om fouten te dichten, niet om je code te veranderen. Test na het bijwerken vooral de functies die formulierdata en bestanden ontvangen, zoals formulieren met bijlagen, uploads en de checkout. Hapert er toch iets, los het dan op in de bijgewerkte versie en ga niet terug naar een kwetsbare build. De PHP2Shell-update uitstellen uit angst voor breuk ruilt een klein risico in voor een groot.

Volgende stap

Wat dit in jouw situatie betekent, weet je snel

Je legt je vraag voor, wij zeggen wat haalbaar is, wat het ongeveer kost en wat de slimste eerste stap is. Ook als dat betekent: nog even niet bouwen.

Liever eerst schriftelijk? Stel je vraag via het formulier.
Liever eerst zelf checken? Download de AI Readiness Checklist.
Of begin met de gratis AI-scan.
5,0op Google
  • “Zeer fijne samenwerking! Professioneel, deskundig en vooral erg oplossingsgericht. Ze denken goed mee, communiceren duidelijk en leveren kwaliteit. Een betrouwbare en innovatieve techpartner die ik zeker kan aanbevelen!”

    Spark O.

  • “Heel goed geholpen duidelijke uitleg en werken heel hard voor je en denken heel goed mee wat belangrijk is. Duidelijk heel veel kennis van zaken. Echt een aanrader.”

    Maarten B.

Verder lezen

Meer in deze serie

Blijf op de hoogte

Ontvang praktische AI-inzichten in je inbox. Geen spam, alleen waardevolle content.

Geen spam · max 2x per maand · altijd opzegbaar

Je gegevens worden alleen gebruikt voor het verzenden van de nieuwsbrief. Uitschrijven kan op elk moment.

Van kennis naar resultaat

Wat betekent dit voor jouw bedrijf?

We denken vrijblijvend mee over wat dit concreet zou opleveren — vaste prijs, vaste deadline.