Notebookcheck Logo

PHP2Shell: Kritieke PHP-kwetsbaarheden treffen mod_php-servers het hardst

PHP-broncode op een donker scherm
ⓘ Pixabay / Pexels
Twee kritieke kwetsbaarheden in de PHP-interpreter maken het mogelijk om code uit te voeren zonder authenticatie. PHP 8.5.12, 8.4.27, 8.3.36 en 8.2.35 verhelpen deze.
PHP 8.5.12, 8.4.27, 8.3.36 en 8.2.35 verhelpen twee kritieke kwetsbaarheden die het mogelijk maken om zonder authenticatie code uit te voeren, in sommige configuraties nog voordat er applicatiecode wordt uitgevoerd. Dit gaat er mis in de interpreter, deze SAPI's lopen het grootste risico en dit zijn de tijdelijke maatregelen die PHP aanbeveelt.

PHP heeft zijn beveiligingsrelease vervroegd naar woensdag 21 oktober om 14.00 uur UTC, nadat een dag eerder details over twee kwetsbaarheden waren uitgelekt op Hacker News. De oplossingen zitten in PHP 8.5.12, 8.4.27, 8.3.36 en 8.2.35. Beide fouten zitten in de interpreter zelf en niet in een CMS. De beveiligingsadviezen van PHP voor CVE-2026-109618 en CVE-2026-109619 geven beide een score van 9,2 onder CVSS 4.0 en bevestigen dat uitvoering van code op afstand zonder authenticatie mogelijk is met de rechten van de webworker.

Afhandeling van geheugentekort laat geheugen half geïnitialiseerd achter

De eerste kwetsbaarheid draait om de manier waarop PHP fouten door geheugentekort afhandelt. Bij een OOM gebruikt de interpreter longjmp() om de huidige context te verlaten, zelfs als het geheugen voor het verzoek op dat moment slechts gedeeltelijk is geïnitialiseerd. De afsluitprocedure leest die toestand vervolgens alsof deze geldig is. Een aanvaller kan de OOM afdwingen met een multipart-verzoek dat onder post_max_size blijft, bijvoorbeeld via een onbeperkt aantal headers per onderdeel, lege bestandsvelden die niet meetellen voor max_file_uploads, of geneste veldnamen. De patch vervangt longjmp() door een zachte OOM op het volgende veilige punt in de VM en een harde _exit() boven een tweede, hogere drempel.

De tweede kwetsbaarheid betreft een globale toestand die na een verzoek blijft bestaan. Als een fatale fout een bewerking afbreekt voordat die zijn toestand opnieuw instelt, blijft een globaal veld verwijzen naar vrijgegeven heapgeheugen. Wanneer het volgende verzoek op dezelfde worker die waarde vóór de normale initialisatie leest, leidt dat tot een use-after-free. PHP noemt twee bevestigde routes: de instelling fatal_error_backtraces in PHP 8.5 en de voortgangsregistratie van sessie-uploads, die standaard is ingeschakeld en waarvoor de applicatie session_start() niet hoeft aan te roepen.

Waarom mod_php het kwetsbaarst is

Apache met mod_php roept de afsluitprocedure voor verzoeken aan, zelfs wanneer het opstarten van het verzoek al is mislukt. Geheugentekort terwijl PHP de verzoekbody verwerkt, is voldoende; er hoeft geen applicatiecode te worden uitgevoerd. PHP heeft volledige code-uitvoering bevestigd bij mod_php met de standaardlimieten voor geheugen en invoer. PHP-FPM beëindigt een childproces waarvan het opstarten mislukt, waardoor de directe route wordt geblokkeerd. Voor de tweede kwetsbaarheid heeft PHP wel een exploit tegen een normale FPM-pool bevestigd, al is die afhankelijk van een geschikte bewerking in de applicatie. Analyse van de broncode wijst erop dat FrankenPHP zich als mod_php gedraagt, terwijl LSAPI onder bepaalde voorwaarden ook kwetsbaar kan zijn. De hoge aanvalscomplexiteit in de CVSS-vector weerspiegelt dat de PHP-build en de heapindeling de betrouwbaarheid beïnvloeden.

Exploitpogingen en de rol van AI

watchTowr zegt actieve pogingen tot misbruik van beide kwetsbaarheden waar te nemen, en Cloudflare vertelde The Hacker News dat het al vóór de release van de patch aanvallen zag. Tot nu toe is geen succesvolle inbraak bevestigd. Nederlandse overheidsdiensten, waaronder DigiD en MijnOverheid, gingen uit voorzorg toch offline, en het Britse NCSC adviseert om ongepatchte systemen offline te halen als er geen andere optie beschikbaar is.

Wiz Research ontdekte de fouten en meldde ze op 24 augustus. Volgens Wiz hielpen Gemini 4 Argon en GPT-5.6 Sol bij de ontdekking, de ontwikkeling van exploits en de validatie van patches, vooral bij het afstemmen van de exploit op elk doelwit. Wiz noemt ook OpenAI en Calif voor hun hulp bij de ontdekking en coördinatie. Dat sluit aan bij wat Anthropic onlangs schreef over zichzelf kopiërende AI die zich op goedkope tv-boxen richt, waarbij modellen de drempel voor aanvallen eveneens verlagen.

Wat beheerders nu moeten doen

Updaten is de enige volledige oplossing. Linux-distributies en LTS-leveranciers hebben de patches vooraf ontvangen en porteren ze vaak terug naar oudere versies, dus controleer de changelog op de CVE-ID's in plaats van op het versienummer. De niet meer ondersteunde takken 7.4, 8.0 en 8.1 krijgen alleen minimale backports van de broncode. Als u niet meteen kunt updaten, raadt PHP aan om memory_limit=-1 op beheerdersniveau in te stellen, omdat juist een voorspelbare limiet per verzoek de bevestigde OOM-exploit mogelijk maakt. Voeg session.upload_progress.enabled=0 toe en, op PHP 8.5, fatal_error_backtraces=0, en herstart vervolgens alle workers. Als uw applicatie geen multipart-formulieren gebruikt, blokkeer die dan bij de frontend. Geen van deze instellingen is een volledige oplossing. Controleer bij gedeelde hosting of een NAS met een webserver welke PHP-versie uw provider levert.

Google LogoAdd as a preferred source on Google
Mail Logo
> Overzichten en testrapporten over laptops en mobieltjes > Nieuws > Nieuws Archief > Nieuws archieven 2026 10 > PHP2Shell: Kritieke PHP-kwetsbaarheden treffen mod_php-servers het hardst
Steffen Zahn, 2026-10-22 (Update: 2026-10-22)