Kort gezegd: Hoeveel servers door PHP2Shell zijn getroffen, laat zich alleen schatten. Unit 42 telde volgens TechTarget meer dan 22,6 miljoen blootgestelde instanties, CybelAngel noemt ongeveer 2,24 miljoen PHP-hosts, BleepingComputer meldt onder verwijzing naar VirusTotal meer dan 5,1 miljoen. De cijfers meten verschillende dingen en spreken elkaar daarom niet tegen. Voor uw bedrijf telt een ander cijfer: hoeveel eigen PHP-systemen bereikbaar zijn en hoeveel daarvan aantoonbaar gepatcht zijn.
Het begin: een cijfer maakt de krantenkoppen
„22 miljoen servers in gevaar” stond op 21 oktober 2026 in veel koppen. Het cijfer komt van Unit 42, de onderzoeksafdeling van Palo Alto Networks, en werd onder meer door TechTarget gemeld. Kort daarna circuleerden andere cijfers, deels een factor tien kleiner.
Lezers krijgen de indruk dat niemand het weet. In werkelijkheid tellen de aanbieders eenvoudigweg verschillende dingen met verschillende methoden. Wie dat begrijpt, kan de cijfers gebruiken in plaats van er onzeker door te worden.
Hoeveel servers zijn door PHP2Shell getroffen? De cijfers in overzicht
| Bron | Cijfer | Wat is geteld |
|---|---|---|
| Unit 42 (Palo Alto Networks), volgens TechTarget | meer dan 22,6 mln. | blootgestelde, potentieel kwetsbare instanties; methode in het rapport niet toegelicht |
| VirusTotal, volgens BleepingComputer | meer dan 5,1 mln. | vanaf het internet bereikbare PHP-hosts |
| CybelAngel, op basis van Shodan-gegevens | ongeveer 2,24 mln. | hosts die PHP in hun kenmerken vermelden |
| CybelAngel | 59 % van ongeveer 1,5 mln. | aandeel van de hosts met zichtbare versie op takken zonder officiële update |
| CybelAngel | ongeveer 740.000 | hosts die PHP vermelden maar hun versie verbergen |
Alle cijfers hebben betrekking op de situatie rond 20 en 21 oktober. Het zijn momentopnamen en veranderen met elke ingespeelde update.
Waarom de tellingen zo ver uiteenliggen
Drie effecten verklaren het grootste deel van de verschillen.
Instantie, host, website. Een host is meestal een IP-adres of een server. Een instantie kan een enkele dienst of een enkele website zijn. Op een server met shared hosting draaien vaak honderden websites. CybelAngel wijst er zelf op: er worden hosts geteld, geen organisaties of websites; het werkelijke aantal bereikbare toepassingen ligt waarschijnlijk hoger.
Verborgen versies. Veel servers geven hun PHP-versie niet prijs, bijvoorbeeld omdat expose_php is uitgeschakeld. Ze ontbreken in versiegebaseerde statistieken. Waarom verbergen zinvol is maar geen bescherming vervangt, legt de bijdrage over versievermeldingen en expose_php uit.
Backports. Distributies en hostingproviders spelen correcties soms in zonder het versienummer te wijzigen. Een server die naar buiten een oud nummer toont, kan dus gepatcht zijn. Tellingen op basis van de getoonde versie overschatten daarom het aantal ongepatchte systemen. Hoe u de echte stand bij uzelf controleert, staat onder PHP-versie en patchstatus controleren.
Hoe zulke tellingen ontstaan
De meeste cijfers berusten op zoekdiensten die het internet voortdurend bevragen en opslaan wat servers over zichzelf meedelen. Een webserver noemt in zijn antwoorden vaak software en versie, bijvoorbeeld in de header X-Powered-By. CybelAngel baseert zich naar eigen zeggen op zulke kenmerken uit Shodan-gegevens. Er wordt daarbij niets aangevallen, er wordt alleen gelezen wat toch al openbaar zichtbaar is.
Hieruit volgt een eenvoudige leesregel voor elk nieuw cijfer in de media. Vraag: wat is er geteld, hosts, instanties of websites? Wanneer is er gemeten, vóór of na 21 oktober? En hoe is de versie bepaald, via het getoonde nummer of via een echte test? Wie deze drie vragen niet kan beantwoorden, moet het cijfer behandelen als grove ordegrootte, niet als meetwaarde.
„Blootgesteld” betekent bereikbaar en op grond van uiterlijke kenmerken mogelijk kwetsbaar. Het betekent niet aangevallen en niet gecompromitteerd. Het BSI kende aanvankelijk geen bevestigde geslaagde aanvallen op grote schaal.
Wat de cijfers toch betrouwbaar tonen
Ook al schommelt de hoogte, de tellingen dragen drie degelijke uitspraken:
- Het aanvalsoppervlak is enorm. Zelfs het kleinste cijfer betekent miljoenen bereikbare doelen. Aanvallers hoeven niet te zoeken, ze kunnen geautomatiseerd controleren.
- Oude versies zijn wijdverbreid. Volgens CybelAngel draaiden 59 procent van de hosts met zichtbare versie op takken waarvoor het PHP-project geen officiële update publiceert. Voor deze systemen helpt geen snelle patch, maar alleen een backport, een derde partij of een migratie. De risico's beschrijft de gids PHP End of Life.
- Het probleem blijft langer. Een groot deel van de bereikbare systemen wordt niet in dagen bijgewerkt. Scans en aanvalspogingen zullen daarom naar verwachting nog lang doorgaan.
Uw eigen cijfer bepalen
Het wereldwijde cijfer is een krantenkop. Uw eigen cijfer is een taak. Zo komt u eraan:
- Domeinen en subdomeinen verzamelen: uit DNS-zones, certificaten, contracten met bureaus en hostingproviders.
- Bereikbare diensten toewijzen: Welke server staat achter welk adres, wie beheert hem?
- PHP-stand per systeem vaststellen: versie, uitvoeringsmodus, pakketbron, bevestiging van backport.
- Resultaat beoordelen: gepatcht en aangetoond, gepatcht zonder bewijs, ongepatcht, onbekend.
- Gaten dichten: onbekende systemen eerst uitzoeken, ongepatchte systemen eerst aanpakken.
Aan het eind staat een korte lijst in plaats van een groot getal. Hoe u de inventaris duurzaam bijhoudt, beschrijft de bijdrage Inventaris van alle websites en servers.
Hoe helpt PHP SOS concreet?
- Buitenaanzicht: Wij stellen vast welke van uw systemen vanaf het internet bereikbaar zijn en welke daarvan PHP gebruiken.
- Binnenaanzicht: Wij controleren patchstatus en herstart op de servers, niet alleen de getoonde versie.
- Beoordeling: U ontvangt een lijst met status per systeem en een duidelijke volgorde.
- Controle: Op verzoek testen wij na de patch van buitenaf of de situatie zich zoals verwacht heeft verbeterd.
Hoe zo'n controle verloopt, beschrijft Beveiligingsaudit en penetratietest.
Conclusie
22,6 miljoen, 5,1 miljoen, 2,24 miljoen: de cijfers lijken tegenstrijdig, maar meten alleen verschillende dingen. Samen laten ze zien dat PHP2Shell een zeer groot aanvalsoppervlak treft en dat er veel oude versies online staan. Het cijfer dat over uw risico beslist, levert geen studie. Het ontstaat alleen door te kijken naar de eigen systemen.
Veelgestelde vragen
Hoeveel servers zijn door PHP2Shell getroffen?
Dat weet niemand precies. Unit 42 van Palo Alto Networks telde volgens TechTarget meer dan 22,6 miljoen blootgestelde, potentieel kwetsbare instanties. CybelAngel noemt ongeveer 2,24 miljoen vanaf het internet bereikbare hosts die PHP vermelden. De cijfers meten verschillende dingen en zijn niet rechtstreeks vergelijkbaar.
Waarom lopen de cijfers zo sterk uiteen?
Omdat er verschillende dingen worden geteld: instanties, hosts, IP-adressen of diensten. Op één host met shared hosting kunnen honderden websites staan. Bovendien tonen veel servers hun PHP-versie niet, andere tonen een oud nummer terwijl er een backport is ingespeeld.
Betekent blootgesteld dat een server is aangevallen?
Nee. Blootgesteld betekent alleen dat een PHP-dienst vanaf het internet bereikbaar is en op grond van uiterlijke kenmerken kwetsbaar zou kunnen zijn. Over daadwerkelijke aanvallen zeggen deze tellingen niets.
Welk cijfer is voor mijn bedrijf belangrijk?
Het aantal van uw eigen openbaar bereikbare PHP-systemen en hoeveel daarvan aantoonbaar gepatcht zijn. De wereldwijde cijfers tonen de omvang, maar vervangen de eigen inventaris niet.