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

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.
Bron(nen)
PHP-beveiligingsadvies: RCE via OOM-corruptie (CVE-2026-109618)
PHP-beveiligingsadvies: RCE via verouderde globale status (CVE-2026-109619)
Wiz Research: PHP2Shell, AI ontdekt kritieke RCE-kwetsbaarheden
NCSC: Kritiek beveiligingsprobleem in PHP
watchTowr: Pogingen om PHP2Shell te misbruiken
The Hacker News: PHP brengt noodpatches uit voor twee kritieke kwetsbaarheden
Top 10 Testrapporten
» Top 10 Multimedia Notebooks
» Top 10 Gaming-Notebooks
» Top 10 Budget Gaming Laptops
» Top 10 Lichtgewicht Gaming-Notebooks
» Top 10 Premium Office/Business-Notebooks
» Top 10 Budget Office/Business-Notebooks
» Top 10 Workstation-Laptops
» Top 10 Subnotebooks
» Top 10 Ultrabooks
» Top 10 Notebooks tot €300
» Top 10 Notebooks tot €500
» Top 10 Notebooks tot € 1.000
» De beste notebookbeeldschermen
» Top Windows Alternatieven voor de MacBook Pro 13
» Top Windows Alternatieven voor de MacBook Pro 15
» Top Windows alternatieven voor de MacBook 12 en Air
» Top 10 best verkopende notebooks op Amazon
» Top 10 Convertible Notebooks
» Top 10 Tablets
» Top 10 Tablets tot € 250
» Top 10 Smartphones
» Top 10 Phablets (>90cm²)
» Top 10 Camera Smartphones
» Top 10 Smartphones tot €500
» Top 10 best verkopende smartphones op Amazon






