PHP2Shell is de naam voor twee ernstige fouten in PHP, CVE-2026-109618 en CVE-2026-109619, die aanvallers zonder account op afstand code kunnen laten uitvoeren. PHP publiceerde op 21 oktober 2026 fixes; de pogingen die AWS op zijn sensoren waarnam, tonen niet aan dat een echte server is binnengedrongen.

Dat is relevant voor iedereen die PHP gebruikt om webverzoeken af te handelen: de fouten zitten in PHP zelf, niet alleen in een specifieke website of plug-in.

Wat er misgaat bij de twee PHP-fouten

Bij CVE-2026-109618 kan een geheugentekort ervoor zorgen dat interne gegevens van een verzoek onvolledig zijn klaargezet. PHP kan die gegevens later bij het opruimen toch als geldig behandelen. CVE-2026-109619 gaat over interne verzoekgegevens die achterblijven nadat het geheugen erachter is vrijgegeven. Een volgend verzoek van dezelfde worker kan die verouderde gegevens gebruiken.

Een worker is een PHP-proces dat webverzoeken verwerkt. PHP noemt alle installaties die zulke verzoeken afhandelen als mogelijk kwetsbaar, onder meer PHP-FPM, Apache mod_php, php-cgi, FrankenPHP en LiteSpeed. Het grootste aangetoonde risico geldt voor Apache mod_php: daar kon een verzoek zonder aanmelding de aanval starten voordat applicatiecode draaide.

Wat AWS waarnam rond de openbaarmaking

Amazon Threat Intelligence meldde dat MadPot, het honeypotsysteem van AWS, op 17 oktober 2026 een poging registreerde. Op 21 oktober vond AWS rond 02.00 UTC de vroegst geïdentificeerde proof-of-concept-exploits, oftewel voorbeelden van aanvalscode. Tussen 02.00 en 08.00 UTC zag het extra pogingen tegen MadPot. Het embargo eindigde die dag om 14.00 UTC; binnen enkele uren verschenen meer proof-of-concept-exploits en zag AWS nieuwe pogingen tegen zijn sensoren.

AWS zei dat het onduidelijk was of de waargenomen pogingen op echte systemen zouden zijn geslaagd. Een honeypot registreert activiteit op een loksysteem, niet een bevestigde inbraak bij een slachtoffer. De IP-adressen die AWS noemde, omvatten bovendien gedeelde anonimiseerinfrastructuur en zijn geen unieke aanwijzingen voor PHP2Shell. AWS beschreef de waarnemingen en tijdlijn.

Wat de Nederlandse impactschatting meet

Check Point meldde dat 15% van de Nederlandse organisaties sinds de openbaarmaking exploitatiepogingen tegenkwam. Dat percentage gaat over pogingen, niet over bevestigde succesvolle compromissen. Check Point rapporteerde 14% voor Europa; voor Noord-Amerika, Latijns-Amerika en APAC was dat telkens 6%, en voor Afrika 4%. Check Point lichtte de cijfers en de definitie van ‘getroffen’ toe.

Welke PHP-versies de fouten verhelpen

PHP maakte op 21 oktober 2026 vier upstreamreleases met fixes bekend. Gebruik voor elke tak de bijbehorende versie:

PHP-takEerste release met de fixes
PHP 8.5PHP 8.5.12
PHP 8.4PHP 8.4.27
PHP 8.3PHP 8.3.36
PHP 8.2PHP 8.2.35

PHP 8.1 en oudere versies krijgen geen reguliere upstreamupdates meer. Distributies en leveranciers van langetermijnondersteuning kunnen wel fixes terugporteren. Beheer je een zelfgehoste toepassing, inventariseer dan de PHP-runtime die de verzoeken daadwerkelijk verwerkt, ook in containers en leveranciersimages. Controleer daarna of die runtime een vaste versie draait of een bevestigde fix van de leverancier heeft.

Waarom tijdelijke instellingen geen vervanging zijn voor bijwerken

PHP noemt het uitschakelen van session.upload_progress.enabled als een maatregel die bevestigde sessiepaden voor CVE-2026-109619 blokkeert. Die instelling dekt niet alle varianten. Ook memory_limit=-1 en limieten voor verzoekgroottes pakken specifieke aanvalspaden aan, maar vormen samen geen volledige oplossing. Een VPN of andere netwerkbeperking kan de bereikbaarheid verkleinen, maar verandert de kwetsbare PHP-runtime niet. PHP zegt dat bijwerken de volledige oplossing is. De officiële PHP-beveiligingsmelding met de vaste versies en mitigaties bevat de technische details.

Het PHP-archief beschrijft daarnaast CVE-2026-115560 als een afzonderlijke, onwaarschijnlijke RCE-vector. Die vereist een specifieke combinatie: session.serialize_handler staat eerst op php_binary of php_serialize, wordt tijdens runtime vóór session_start() gewijzigd naar php, en sessie-uploadvoortgang blijft ingeschakeld. Deze melding betreft niet de twee PHP2Shell-fouten.