PHP2Shell: loopt uw PHP-infrastructuur risico?

Een praktische SOC-gids om uw PHP-systemen op kwetsbaarheden te controleren, uw blootstelling te beoordelen en de juiste stappen te zetten om uw infrastructuur te beveiligen.

PHP2Shell: loopt uw PHP-infrastructuur risico?
In het kort: wat er is gebeurd en wat u moet doen

Twee kritieke kwetsbaarheden, CVE-2026-109618 en CVE-2026-109619 (CVSS v4.0: 9.2, score van PHP), treffen de PHP-runtime en kunnen uitvoering van code op afstand zonder authenticatie mogelijk maken. PHP heeft op 21 oktober 2026 fixes uitgebracht: 8.2.35, 8.3.36, 8.4.27 en 8.5.12. Een derde kwetsbaarheid, CVE-2026-115560, die op 23 oktober bekend werd gemaakt, is in die releases nog niet gepatcht en is alleen onder specifieke voorwaarden te misbruiken.

De prioriteit is het vaststellen van de PHP-versie die het webverkeer daadwerkelijk afhandelt, het installeren van de gecorrigeerde release en het herstarten of herladen van de PHP-processen. Alleen controleren met php -v is niet voldoende: de CLI, PHP-FPM en de Apache-PHP-module kunnen verschillende versies draaien. Neem containers, testomgevingen en producten die PHP meeleveren op in uw inventarisatie.

Let tegelijkertijd op tekenen van misbruik: webprocessen die shells starten, verdachte multipart-verzoeken, crashende workers en nieuwe PHP-bestanden in uploadmappen.

In het kort: wat er is gebeurd en wat u moet doen

Waarom dit belangrijk is

Volgens W3Techs werd PHP per 21 oktober 2026 gebruikt door 69,2% van de websites waarvan de server-side taal bekend is, een statistiek die Hadrian in zijn PHP2Shell-analyse gebruikte om de mogelijke omvang van de blootstelling te illustreren. Het percentage betekent niet dat 69,2% van de sites kwetsbaar is; de werkelijke blootstelling hangt af van de geïnstalleerde versie, de pakketten van de distributeur en de systeemconfiguratie.

De blootstelling is niet louter theoretisch. Wiz Research heeft uitvoering van code zonder authenticatie aangetoond op de huidige officiële container-images van WordPress, Drupal en Joomla. Standaard-CMS-installaties zijn daarmee directe doelwitten, zonder dat een speciale configuratie nodig is.

Wat we per 27 oktober weten over misbruik

Amazon Threat Intelligence nam in zijn MadPot-honeypots een poging waar op 17 oktober, nog voordat de kwetsbaarheden en patches waren gepubliceerd. Een retroactieve analyse van de logs moet daarom beginnen bij 17 oktober 2026. Daarna werden scan- en misbruikpogingen gemeld en werden PoC's openbaar.

Op 24 oktober verscheen de eerste hoogwaardige openbare bevestiging van geslaagd misbruik: Adel Karimi, detection & response lead bij Perplexity, registreerde in zijn honeypots 35 shells die vanaf twee IP-adressen werden gestart, op Apache mod_php met PHP 8.4.26, via een HTTP-keten in vier fasen die overeenkwam met een openbare PoC. Het bewijs omvatte een geheugendump van 800 KiB, die Karimi tot de conclusie bracht: “bevestigde RCE met bruikbare openbaarmaking van geheugeninhoud”. De bevinding werd onafhankelijk gevalideerd door Marcus Hutchins (Expel), als “verreweg de hoogwaardigste bevestiging van misbruik in het wild tot nu toe”. Karimi benadrukte echter dat de test draaide op een bewust gunstig mod_php-profiel met één worker en niets zegt over de betrouwbaarheid bij andere aantallen workers, builds of applicaties.

Op 26 oktober voegde CISA beide CVE's toe aan zijn catalogus Known Exploited Vulnerabilities (KEV), met een hersteltermijn tot 29 oktober voor Amerikaanse federale instanties. Los daarvan meldde CYFIRMA, met gemiddelde zekerheid, een scan- en verkenningscampagne die werd toegeschreven aan het Lazarus-ecosysteem en gericht was op 216 ongepatchte of gedeeltelijk gemitigeerde PHP-hosts, verkenningsactiviteit, geen bevestigd misbruik.

Het technische deel: kwetsbare systemen identificeren en herstellen
1. Inventariseer elke plek waar PHP draait
  • Controleer de CMDB, kwetsbaarheidsscanners, serverconfiguraties, repository's en container-images.

  • Neem VM's, App Service, Kubernetes, containers, staging-/testomgevingen, on-premises applicaties en producten/appliances van derden die PHP meeleveren mee.

  • Geef voorrang aan systemen die vanaf internet bereikbaar zijn, vooral systemen met Apache mod_php, en aan applicaties die uploads accepteren.

  • Gebruik de header X-Powered-By of externe fingerprinting alleen als aanwijzing, ze bevestigen niet de werkelijke runtimeversie.

2. Controleer de versie die het webverkeer afhandelt

Vertrouw niet alleen op de CLI-versie. De versie die php -v toont, kan afwijken van die van PHP-FPM of de Apache-module. Controleer ze afzonderlijk:

Controleer bij pakketten van Linux-distributies of er een backport van de patch bestaat. Een schijnbaar ouder versienummer betekent niet automatisch dat het pakket kwetsbaar is; raadpleeg de changelog van de distributie.

3. Bepaal de uitvoeringsmodus (SAPI) - het risico verschilt

Het risico is niet voor elke installatie hetzelfde. De tabel vat samen wat onderzoekers hebben bevestigd en wat uit codeanalyse volgt. Als mod_php is geladen en openbare applicaties bedient, valt het systeem in de categorie zeer hoog risico.

4. Installeer de patch en controleer of de bijgewerkte code draait

Werk bij naar de gecorrigeerde release voor uw versietak. Daarna herstart of herlaadt u de PHP-FPM/Apache-services en de betreffende workers, volgens uw operationele procedures. Controleer de versie opnieuw via het pad dat de webapplicatie gebruikt. Als u het pakket bijwerkt zonder de processen te herstarten, kunnen bestaande workers de kwetsbare code blijven uitvoeren.

Controleer voor PHP 8.1 en ouder of uw distributeur gedocumenteerde gebackporte patches levert. Als er geen ondersteunde fix bestaat, plan dan een migratie. Bouw container-images opnieuw op basis van bijgewerkte base images en rol ze opnieuw uit; het bijwerken van de host werkt PHP in de container niet bij.

5. Controleer INI-overrides per verzoek (consumer voor CVE-2026-109619)

Waarschuwingen die ontstaan bij het toepassen van INI-instellingen per directory kunnen fungeren als “consumer” in de keten van CVE-2026-109619. Zoek naar de directives php_value / php_flag / php_admin_* in .htaccess en de Apache-configuratie, en naar PHP_VALUE / PHP_ADMIN_VALUE die nginx naar FPM stuurt. Het verbergen van fouten beschermt u niet, omdat de globale status wordt benaderd voordat PHP beslist of de melding wordt weergegeven. Verplaats de configuratie naar php.ini of de FPM-pool.

6. Mitigeer CVE-2026-115560 tijdelijk

CVE-2026-115560 is een afzonderlijke vector, die op 23 oktober bekend werd gemaakt en per 27 oktober nog steeds niet gepatcht is — PHP zal het volledige advisory, met de getroffen versies en de CVSS-score, naar verwachting publiceren bij de volgende release, waarvoor nog geen datum is aangekondigd. Volgens de melding van PHP ontstaat het risico alleen wanneer aan drie voorwaarden tegelijk is voldaan:

1.  session.serialize_handler is php_binary of php_serialize;

2.  de applicatie zet de handler via ini_set() om naar php vóór session_start(); en

3.  session.upload_progress.enabled blijft ingeschakeld.

Applicaties die de sessiehandler niet tijdens runtime omzetten, zijn via deze specifieke vector niet blootgesteld. Tijdelijke maatregel: stel session.upload_progress.enabled=0 in via php.ini of .user.ini, of via de configuratie van de PHP-FPM-pool. Test het effect op de uploadfunctionaliteit, herlaad daarna de services en controleer de effectieve instelling. Deze maatregel vervangt de patches voor CVE-2026-109618 en CVE-2026-109619 niet.

7. Compenserende maatregelen en hun beperkingen

Als u niet direct kunt patchen, overweeg dan om het blootgestelde systeem tijdelijk te isoleren en maatregelen die multipart-verkeer beperken. Elke wijziging moet worden goedgekeurd, getest en gemonitord. WAF-regels kunnen sommige pogingen tegenhouden, maar ze herstellen de runtime niet en zijn beperkt effectief tegen formeel geldige verzoeken.

Beschouw het volgende niet als oplossing:

  • fouten verbergen (display_errors=Off, error_reporting, log_errors=Off of de @-operator)- de aanval vindt plaats voordat de applicatiecode wordt uitgevoerd;

  • een onderhoudsmodus van het CMS;

  • WAF-regels op basis van payloadsignaturen (de kwaadaardige verzoeken zijn formeel geldig).

Het ontbreken van fouten in de logs bewijst niet dat het systeem niet is aangevallen. Test productiesystemen niet met openbare PoC's: veel zijn onbetrouwbaar, sommige kunnen onveilige code bevatten en een negatief resultaat bewijst niet dat de server niet kwetsbaar is.

Detectie en respons

Naast het patchen beveelt het SOC een retroactieve analyse van blootgestelde systemen aan, ten minste vanaf 17 oktober 2026, waar telemetrie beschikbaar is. Correleer verdachte toegang met procesuitvoering, bestandswijzigingen, uitgaande verbindingen en authenticatiegebeurtenissen. Het ontbreken van telemetrie of alerts bewijst niet dat er geen misbruik heeft plaatsgevonden.

1. Procestelemetrie / EDR

Genereer een alert bij elk proces dat door php-fpm, php-cgi, httpd of apache2 wordt gestart en een shell of downloadtools opstart (sh, bash, dash, curl, wget, nc, python, perl). Bij normaal gebruik is dit gedrag zeldzaam en moet het worden behandeld als mogelijke compromittering.

2. Web- en PHP-logs

•   Pieken van POST multipart/form-data-verzoeken vanaf dezelfde bron, vooral met een ongebruikelijk aantal parts of headers.

•   Diep geneste veldnamen of verzoeken die PHP_SESSION_UPLOAD_PROGRESS bevatten, ook naar endpoints die geen uploads zouden moeten accepteren.

•   Herhaalde HTTP 500-responses, crashes of onverwachte herstarts van PHP-workers.

•   Misvormde of ongewoon lange PHPSESSID-cookies en herhaalde fouten (SIGSEGV, AH00052, zend_mm_heap corrupted, "Allowed memory size … in Unknown on line 0") in de PHP-, Apache- of FPM-logs.

3. Bestandssysteem en persistentie

•   Nieuwe of gewijzigde PHP-bestanden in upload-, cache- of via het web toegankelijke mappen; controleer tijdstempel, eigenaar en inhoud.

•   Nieuwe cronjobs voor de webservergebruiker, recent toegevoegde SSH-sleutels of accounts; ongebruikelijke uitgaande verbindingen die door webworkers worden opgezet.

4. Hoe u indicators of compromise (IoC's) gebruikt

Behandel IoC's als startpunt voor correlatie, niet als op zichzelf staand bewijs: sommige adressen kunnen tot anonimiseringsinfrastructuur behoren of in legitiem verkeer voorkomen. Een match bevestigt geen compromittering en rechtvaardigt geen automatische blokkering. Valideer de bron, datum en context van elke indicator en vergelijk deze met host- en netwerktelemetrie.

Incidentrespons: als er geloofwaardige aanwijzingen voor compromittering zijn

1.  Isoleer het getroffen systeem en beperk de netwerktoegang zonder bewijsmateriaal te vernietigen.

2.  Bewaar de logs en, waar mogelijk, een schijfimage en relevante geheugen-/procesartefacten.

3.  Roteer alle inloggegevens waartoe het webproces toegang heeft: databasewachtwoorden, API-sleutels, tokens en .env-secrets.

4.  Zet het onderzoek voort naar persistentie, exfiltratie en laterale beweging. Alleen PHP bijwerken verwijdert de toegang van een aanvaller niet als het systeem al gecompromitteerd was.

5.  Escaleer naar het SOC-/IR-team en beoordeel de toepasselijke meldplichten (AVG, NIS2).


Referentietabellen

Getroffen en gecorrigeerde versies

De twee gecorrigeerde CVE's vergeleken
Aanbevolen actieplan

Bronnen en referenties


[1]  PHP Security Advisory — GHSA-w8hw-w9fx-j79w (CVE-2026-109618) — https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w

[2]  PHP Security Advisory — GHSA-6wmf-4rv5-p3rp (CVE-2026-109619) — https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp

[3]  PHP official notice — Session upload progress (CVE-2026-115560), 23 okt. — https://www.php.net/archive/2026.php#2026-10-23-1

[4]  Amazon Threat Intelligence — MadPot observations, 17–21 okt. 2026 — https://aws.amazon.com/blogs/security/amazon-threat-intelligence-identifies-php2shell-exploitation-prior-to-public-disclosure-in-madpot/

[5]  Cloudflare — PHP2Shell: WAF mitigations and their limits — https://blog.cloudflare.com/php-vulnerabilities-waf-protection/

[6]  CISA — Critical Vulnerabilities in PHP Require Immediate Patching — https://content.govdelivery.com/accounts/USDHSCISA/bulletins/42ff5ac

[7]  VulnCheck — exploit research update, 23 okt. 2026 — https://www.vulncheck.com/blog/php2shell-vulnerabilities

[8]  Wiz Research — PHP2Shell technical disclosure (RCE op CMS-containers) — https://www.wiz.io/blog/php2shell-php-rce

[9]  Censys — PHP2Shell services (dynamische, indicatieve gegevens) — https://php2shell.censys.com/

[10]       Red Hat — RHSB-2026-013 (pakketten/distributies) — https://access.redhat.com/security/vulnerabilities/RHSB-2026-013

[11]       AWS Security Blog — WAF mitigating controls, 21 okt. 2026 — https://aws.amazon.com/blogs/security/using-aws-waf-to-apply-mitigations-for-php2shell-rce-vulnerabilities-cve-2026-109618-and-cve-2026-109619/

[12]       Recorded Future News — exploitation attempts and corrections (incl. de herziening door Sophos) — https://therecord.media/php-php2shell-exploitation-attempts-pocs

[13]       Unit 42 / Palo Alto Networks — PHP2Shell Threat Brief (bijgewerkt, intrekking van de koppeling) — https://unit42.paloaltonetworks.com/cve-2026-109618-cve-2026-109619/

[14]       SecurityWeek — PHP2Shell Exploitation Moves From Probes to Working Shells (35 shells in een honeypot) — https://www.securityweek.com/php2shell-exploitation-moves-from-probes-to-working-shells/

[15]       securityonline.info — PHP2Shell added to CISA KEV; probing campaign attributed to Lazarus (CYFIRMA) — https://securityonline.info/php2shell-cisa-kev-confirmed-rce-dprk/

[16]       The Hacker News — Wordfence IOC lists and the Potassium botnet (secundaire bron) — https://thehackernews.com/2026/10/php2shell-exploit-attempts-hit-millions.html

[17]       SOCRadar — exploitation report / observed infrastructure — https://socradar.io/blog/php2shell-cve-2026-109618-cve-2026-109619/

[18]       W3Techs — Usage statistics and market share of PHP (statistiek per 21 okt. 2026) — https://w3techs.com/technologies/details/pl-php

BleepingComputer — PHP2Shell security flaws now successfully exploited in the wild (RCE in een honeypot, 26 okt.) — https://www.bleepingcomputer.com/news/security/php2shell-security-flaws-now-sucessfully-exploited-in-the-wild/

Cloud image

30 dagen cyberverdediging op ondernemingsniveau

Stap in de toekomst van cyberbeveiliging met volledige toegang tot een uniform, intelligent platform — 30 dagen gratis. Versterk uw beveiligingsteam met:

  • Geavanceerde SIEM voor realtime inzicht, slimme alarmering en diepgaande forensische analyse in cloudomgevingen, omgevingen op locatie en hybride omgevingen

  • Continu kwetsbaarheidsbeheer om risico's over alle bedrijfsmiddelen heen te identificeren, te prioriteren en te verhelpen

  • Realtime cyberdreigingsinformatie, rechtstreeks geïntegreerd in uw werkstromen, met wereldwijde inzichten en aanvallersprofielen

  • AI-gestuurde dreigingsdetectie die leert van uw omgeving, meldingen in duidelijke taal uitlegt en vervolgstappen voorstelt

  • Ingebouwde nalevingsgereedheid voor NIS2, AVG, ISO 27001 en meer, met geautomatiseerde rapportage en auditinstrumenten

Of u nu een slanke SOC beheert of een volwaardig beveiligingsteam op ondernemingsniveau leidt, dit platform geeft u de middelen om sneller te detecteren, slimmer te reageren en voorop te blijven lopen op veranderende dreigingen — zonder de complexiteit.

Ervaar bescherming op ondernemingsniveau, gestroomlijnde werkstromen en volledige controle.

Uw voorsprong van 30 dagen begint nu.

Ontgrendel uw gratis proefperiode van 30 dagen