Het internet staat op scherp door de plotse en vage bekendmaking van twee kritieke kwetsbaarheden in PHP. Die scriptingtaal is naar schatting in gebruik bij bijna 70 procent van alle websites wereldwijd, maar draait ook op andere apparaten. Patches zijn nu beschikbaar. Sites die uit voorzorg offline zijn gegaan, zoals Tweakers, komen nu weer online.
Aanvallers kunnen via de twee kwetsbaarheden op afstand websites aanpassen en mogelijk eigen code uitvoeren op servers. Patches zouden donderdag komen, maar informatie over de kwetsbaarheden lekte vroegtijdig uit. Daarom beloofde het PHP-ontwikkelteam vanmiddag om 16.00 uur meer informatie te geven en patches uit te brengen. Die zijn iets eerder uitgekomen voor de momenteel ondersteunde versies van de scriptingtaal. Wat weten we op de dag van de PHPocalypse?
Wat is PHP?
PHP is een veelzijdige en populaire scriptingtaal voor algemeen gebruik. Het werd in de jaren negentig ontwikkeld voor persoonlijke homepages. Sindsdien is het echter ingezet voor veel meer onlinetoepassingen, waaronder complexe websites, webapps en relatief eenvoudige beheerinterfaces voor uiteenlopende apparaten.
De opensourcetaal laat websites dynamische pagina's serveren aan bezoekers. Scripts geschreven in PHP draaien op webservers. Ontwikkelaars kunnen zogeheten PHP-frameworks gebruiken om hun code te schrijven. Die tools verzorgen basale mogelijkheden op websites, zoals inloggen voor gebruikers en beheer van de websoftware. Daaronder valt ook beveiliging van de geschreven code, zoals van de beschikbare functies en al dan niet geïnstalleerde updates.
Waarom is de impact zo groot?
PHP wordt massaal gebruikt. Volgens gebruiksmetingen van webmonitor W3Techs draait PHP op 69,3 procent van alle websites wereldwijd. Daarbij vormt PHP de basis voor contentmanagementsystemen zoals WordPress, waarop bijna 40 procent van de sites draait. Ook websoftware als Joomla, Drupal, Magento, MediaWiki, phpBB, Laravel en Symfony gebruiken PHP.
PHP's marktaandeel van bijna 70 procent geldt voor openbare websites, maar de veelgebruikte scriptingtaal draait ook op andere plekken. PHP doet namelijk ook dienst in webinterfaces voor apparaten. Denk aan taakgerichte apparaten die een eigen webserver draaien waarmee die systemen op afstand zijn te beheren. Als zulke beheerinterfaces via internet toegankelijk zijn, kan PHP2Shell een kritiek probleem zijn voor deze systemen.
Verder kunnen internet-of-thingsapparaten, microcomputers zoals de Raspberry Pi en wifirouters technisch gezien ook PHP draaien. Vaak moeten gebruikers die populaire webtaal wel zelf inschakelen of installeren. Op wifirouters kan eerst nog de installatie van alternatieve firmware nodig zijn, zoals OpenWrt. Verder moet voor PHP-misbruik zo'n PHP-draaiende webserver op consumentenapparatuur dan wel vanaf internet benaderbaar zijn.
PHP is dus niet standaard overal aanwezig, maar toch kan het meer in gebruik zijn dan het marktaandeel van bijna 70 procent aangeeft.
Wat zijn de risico's?
De voortijdig uitgelekte informatie over de twee kritieke kwetsbaarheden veroorzaakte flinke zorgen. De twee gaten (CVE-2026-109618 en CVE-2026-109619) krijgen volgens versie 4.0 van het Common Vulnerability Scoring System (CVSS) een score van 9,2 op een schaal tot 10. Dat hoge cijfer is gebaseerd op hoe ernstig een kwetsbaarheid is en hoe makkelijk die valt uit te buiten. Verder zouden de twee gaten al sinds versie 5 in PHP zitten, specifiek: sinds versie 5.4.0. Die release kwam in maart 2012 uit.
De uitgelekte informatie over de PHP-kwetsbaarheden heeft al geleid tot exploitcode, waarmee de gaten zijn te misbruiken. Een online gepubliceerde video toont dat een script draaien op inlogpagina's van bekende contentmanagementsystemen toegang geeft tot websites. Een kwaadwillende kan zo eigen webpagina's publiceren, waardoor die malware kunnen verspreiden. Volgens rondgaande berichten kan PHP2Shell ook de mogelijkheid geven om eigen code te draaien op kwetsbare servers.
De ontwikkelaars van PHP zijn genoodzaakt om hun patches eerder uit te brengen. Oorspronkelijk was het plan om de updates donderdag uit te brengen, met dan pas informatie over de te verhelpen kwetsbaarheden. Doordat die informatie uitlekte, zijn de patches vandaag al uitgekomen. Dit gebeurde iets voor 16.00 uur.
De makers van PHP gaven vanmorgen al aan dat ze hun release mogelijk eerder zouden uitbrengen. Dit zouden ze doen als details over de kwetsbaarheden openbaar zouden worden of als er bewijs zou zijn van actief misbruik. In de praktijk voeren kwaadwillenden al scans uit op sites zoals Tweakers.
Wat valt er nu tegen te doen?
Beheerders moeten zo snel mogelijk de patches installeren. Reguliere beveiligingsmaatregelen zoals monitoring kunnen eventueel misbruik aan het licht brengen, maar niet per se voorkomen. In de loop van vandaag gingen online verschillende beveiligingsadviezen rond, maar die zouden niet afdoende zijn.
Een genoemde mitigeringsmaatregel zou zijn session.upload_progress.enabled uitschakelen. Een bijbehorende tijdelijke workaround was session.use_strict_mode inschakelen. Securityexpert Kevin Beaumont meldde dat de Linux-kernelbeveiligingsmodules AppArmor of Security-Enhanced Linux (SELinux) ook bescherming bieden tegen misbruik van deze grote PHP-kwetsbaarheden.
Verder zou een van de twee kwetsbaarheden te maken hebben met multipart POST-requests. Voor websites waar uploads in meerdere delen niet nodig zijn, kunnen beheerders zulke dataverzoeken blokkeren en daarmee kwetsbare systemen beschermen. Mogelijk kunnen ook firewallinstellingen en contentdistributiediensten, zoals Akamai en Cloudflare, helpen om PHP-installaties af te schermen tegen kwaadwillige dataverzoeken. Aanvallers kunnen met zulke verzoeken PHP2Shell benutten om binnen te dringen. Een kernontwikkelaar van PHP geeft in een post echter aan dat PHP patchen als enige echt beschermt.
Naast dergelijke mitigatiemogelijkheden is er nog een paardenmiddel: systemen die PHP draaien offline halen. Deze drastische stap geeft vooralsnog de meeste zekerheid van bescherming tegen hackaanvallen. Tegelijkertijd heeft dit natuurlijk vrijwel zeker grote impact op bedrijven, organisaties, klanten, gebruikers en partners. Toch kozen veel sites al hiervoor, waaronder Tweakers en RTL Nieuws. Ook alle Vlaamse overheidswebsites en een aantal Nederlandse, zoals MijnOverheid en DigiD.nl, zijn uit voorzorg offline gegaan.
Verder moeten beheerders van systemen met oudere PHP-versies die upgraden, want de komende patches zijn officieel niet voor oudere releases. Het omslagpunt ligt bij versie 8.2, die officieel nog ondersteuning krijgt tot eind dit jaar.
Kunnen alle PHP-beheerders patchen?
Sites en systemen die recente PHP-versies draaien, krijgen patches. Deze zijn nu te downloaden voor versies 8.2 tot en met 8.5 van de veelgebruikte scriptingtaal. Beheerders moeten deze updates testen en installeren. Het is vooralsnog niet bekend of de patches vanwege de ernst van de kwetsbaarheden ook uitkomen voor PHP-versies van vóór 8.2. Officieel krijgen die oudere PHP-versies namelijk geen ondersteuning meer.
Versie 8.1 is sinds januari dit jaar end-of-life en versie 8.0 sinds eind 2023. Gebruikers van oudere versies krijgen normaliter al het advies om zo snel mogelijk te upgraden, omdat ze anders blootgesteld kunnen zijn aan ongepatchte kwetsbaarheden. Dit is nu dus het geval.
PHP-beheerders hebben ruim de tijd gekregen om te upgraden, want de momenteel ondersteunde versies zijn al jaren beschikbaar. PHP 8.2 kwam in december 2022 uit en versie 8.3 in november 2023. Die twee releases zitten wel in de laatste fase van de ondersteuning, wat betekent dat ze alleen nog beveiligingsupdates krijgen. PHP 8.4 kwam in november 2024 uit en versie 8.5 in november vorig jaar. Die recentste twee releases zitten in de fase van actieve ondersteuning, wat betekent dat ze fixes voor bugs en updates voor beveiligingsproblemen krijgen.
De 8-serie draait volgens metingen van W3Techs op 64,2 procent van de websites die PHP gebruiken. Dit omvat dus ook 8.1 en 8.0, al is het niet duidelijk hoeveel sites precies deze end-of-lifeversies gebruiken. De oudere 7-serie heeft een marktaandeel van 27 procent en de 5-serie draait op 7,7 procent van alle websites die PHP gebruiken.
In totaal draait dus in elk geval 37,7 procent van alle PHP-sites een verouderde versie. Het is de vraag of beheerders van die achterlopende PHP-installaties beschermende maatregelen nemen, zoals workarounds of de sites tijdelijk offline halen.
/i/2008468268.png?f=imagenormal)
/i/2008357910.png?f=imagenormal)

:strip_exif()/i/2008468262.jpeg?f=imagenormal)
:strip_exif()/i/2008317348.jpeg?f=imagenormal)
/i/2008468350.png?f=imagenormal)
:strip_exif()/u/53522/crop583d477015a24.gif?f=community)
/u/176086/crop5f0823fa5e8d6_cropped.png?f=community)
:strip_icc():strip_exif()/u/71115/plus222.jpg?f=community)
/u/466919/Tweakers_p9_v2.png?f=community)
:strip_icc():strip_exif()/u/355633/crop611ab17eb2582_cropped.jpg?f=community)
:strip_icc():strip_exif()/u/16838/crop6aa1ae7724bee_cropped.jpg?f=community)
/u/94596/crop6ac4baab4c648_cropped.png?f=community)
:strip_icc():strip_exif()/u/259786/crop66d34575d79ce_cropped.jpg?f=community)
:strip_icc():strip_exif()/u/1434986/crop649350276f23c_cropped.jpg?f=community)
:strip_icc():strip_exif()/u/258439/MSN%2520Westy%2520met%2520wiel%2520heel%2520klein.jpg?f=community)
:strip_icc():strip_exif()/u/362142/crop5c5080164c7ac_cropped.jpeg?f=community)
/u/89414/crop601ef6957a87f_cropped.png?f=community)
:strip_icc():strip_exif()/u/149304/crop64b8f94834d22_cropped.jpg?f=community)
/u/544641/crop5b54ab6a932d5_cropped.png?f=community)
:strip_exif()/u/1094057/crop5b492428c0704.gif?f=community)
:strip_exif()/u/6307/husky_icoon.gif?f=community)
:strip_icc():strip_exif()/u/8929/bigdog.jpg?f=community)
:strip_icc():strip_exif()/u/25009/crop65f1e3109d1b7_cropped.jpg?f=community)
:strip_icc():strip_exif()/u/97374/crop5de67e3f09be9_cropped.jpeg?f=community)
/u/533588/crop5c477836e5227_cropped.png?f=community)
:strip_icc():strip_exif()/u/531305/crop59f2315570027_cropped.jpeg?f=community)
/u/117615/crop69626010b5a38_cropped.png?f=community)
/u/200408/crop664f322f9f1bd_cropped.png?f=community)