Onsdagen den 21 oktober släcktes stora delar av det digitala Nederländerna ner. DigiD, statens e-legitimation, medborgarportalen MijnOverheid, det nederländska parlamentets webbplats och till och med det nationella cybersäkerhetscentrets (NCSC) egen webbplats gick offline. NotuBiz, rådsinformationssystemet för fler än hundra kommuner, provinser och vattenmyndigheter, stängdes av. Revisorer kunde inte logga in i Exact, och webbutiker som EasyToys och MyJewellery stängde tillfälligt.
Vid den tidpunkten fanns inget bekräftat intrång. De här organisationerna stängde av sina tjänster i förebyggande syfte, eftersom det ännu inte fanns någon patch.
Kort sagt. PHP2Shell består av två kritiska sårbarheter i själva PHP, programmeringsspråket bakom bland annat WordPress, Drupal och Magento. En angripare kan använda dem för att ta över en server utan att logga in. Patchen finns sedan den 21 oktober. Men tiden mellan en sårbarhet och det första angreppet har nästan försvunnit, så det räcker inte att patcha. Kontrollera också om någon redan tagit sig in, byt ut känsliga uppgifter och se till att du kan köpa tid nästa gång.
Vad som hände, på vanlig svenska
Den 21 oktober varnade NCSC för två kritiska sårbarheter i PHP: CVE-2026-109618 och CVE-2026-109619, tillsammans kallade PHP2Shell. Felet sitter inte i ett tillägg eller ett tema, utan i själva motorn. Därför kan även en enkel ”Hello World”-sida vara sårbar. Enligt NCSC kan en enda förfrågan utan inloggning räcka för att köra kod på servern. Alla versioner från PHP 5 och framåt är drabbade.
Patchen kom samma eftermiddag runt kl. 16.00 nederländsk tid, en dag tidigare än planerat. De uppdaterade versionerna är 8.2.35, 8.3.36, 8.4.27 och 8.5.12. PHP 8.1 och äldre får ingen ordinarie uppdatering (där är en övergång till en version som stöds den enda riktiga lösningen).
Den verkliga historien: tiden att patcha är borta
Allvaret är en sak. Den verkliga historien är tempot.
- Angrepp före offentliggörandet. Amazon såg redan den 17 oktober ett angreppsförsök mot en av sina honeypots. Det var fyra dagar innan patchen fanns.
- Tusentals, sedan miljoner. Cloudflare räknade tusentals försök under de tio timmarna före offentliggörandet, tiotusentals under de 45 minuterna efter och vid det här laget miljoner.
- En patch som skattkarta. Patchade PHP-versioner låg ute flera timmar före den överenskomna tiden. För en angripare är det en skattkarta: patchen visar exakt var felet satt.
- 81 minuter. Forskare på ELLIO såg en angripare gå från första rekognosering till ett installerat web shell, en bakdörr på servern, på 81 minuter. Försök få en ändring godkänd på den tiden.
Den 22 oktober rapporterade NCSC de första tecknen på att sårbarheten även hade utnyttjats framgångsrikt.
Och AI snabbar upp båda sidor. Forskare på Wiz hittade sårbarheterna med hjälp av AI-modeller. De nederländska cybersäkerhetsexperterna Inge Bryan och Bert Hubert räknar med att AI kommer att avslöja sådana här sårbarheter oftare, och i vågor. Det gör också att angripare som inte är superhackare kan utnyttja dem.
Det som gjorde skillnaden: att kunna köpa tid
Den 21 oktober fanns ungefär tre situationer.
Många organisationer kunde bara stänga av. Det var det kloka valet, och NCSC rekommenderade det också. Men det kostade timmar av service och intäkter. EasyToys var offline i ungefär åtta timmar.
En andra grupp hade ett skyddslager som köpte tid. WordPress-leverantören Heijsen höll sina omkring 1 000 kunder online med extra brandväggsregler och en uppladdningsgräns, tills patchen fanns.
Den tredje gruppen hade inget val. Kunder till NotuBiz och Exact var beroende av vad deras leverantör gjorde. En del av säkerhetsenheterna på marknaden visade sig dessutom själva använda PHP. Där fick kunden vänta på en uppdatering för just den enhet som skulle skydda den.
Köp tid tills du själv har patchat
En patch som finns är ännu inte en patch som körs. Hos många organisationer ligger det fortfarande tester, en ändring och ett servicefönster emellan. Och det var just under den perioden som NCSC rapporterade de första tecknen på framgångsrika angrepp.
Det är då ett skyddslager i nätverket gör skillnad. Med AI-stödd hotforskning tog Cato fram nya IPS-signaturer mot de kända angreppsscenarierna. Den 21 oktober gick de först live i silent mode, för validering. Från den 22 oktober följde utrullningen i blockeringsläge, och den 23 oktober var den enligt Cato bekräftad i hela nätverket.
För att vara ärlig: just den 21 oktober hjälpte det här inte än. Det blockerande skyddet kom en dag efter patchen. Men patchen fanns, även om den ofta inte var installerad än.
För kunder med IPS aktiverat fungerar signaturerna automatiskt. Ingenting behöver ställas in, och ingenting behöver uppdateras per server eller enhet. Själva Cato-plattformen påverkades inte; enligt Cato använder dess kärnkomponenter, bland annat Sockets, inte PHP.
Det här är en bro, ingen lösning. Den köper tid tills du själv har patchat, för den trafik som går genom Cato.
Den reservationen spelar roll. IPS-skyddet fungerar bara för trafik som Cato inspekterar, och bara när IPS är aktiverat. Inkommande trafik omfattas också, men Cato gör ingen TLS-inspektion av inkommande anslutningar. En publik webbplats som nås via HTTPS faller därför utanför de här signaturerna. Där behövs en webbapplikationsbrandvägg (WAF). Och patchning behövs oavsett.
Med patchen är du inte i mål
Även om du har patchat vid det här laget är du inte klar:
- Blicka bakåt. Undersök om angripare redan var inne före patchen, minst tillbaka till den 17 oktober.
- Byt ut hemligheter. En av sårbarheterna kan exponera minne från andra förfrågningar. Byt därför ut lösenord, tokens och API-nycklar på servrar som var sårbara.
- Håll utkik efter avvikande beteende. En webbserver som plötsligt startar ett skal eller ett nätverksverktyg, eller oväntat ansluter utåt, är en stark signal. Blockera utgående trafik från servrar som standard och tillåt bara det som behövs.
- Behåll gränserna. Gränser för storleken på förfrågningar och uppladdningar är fortfarande användbara, även efter patchen.
Eftersläntrarna
Enligt en undersökning av den nederländska public service-kanalen NOS kan omkring 145 000 nederländska webbplatser fortfarande vara sårbara, även om det inte går att fastställa med säkerhet på avstånd. Bert Hubert uppskattar att 47 procent av webbplatserna som kör PHP använder en version som inte längre får support.
Och PHP 8.2 får inga säkerhetsuppdateringar efter den 31 december 2026. Om drygt två månader tillkommer alltså ännu en version utan patchar.
Nästa PHP2Shell är bara en tidsfråga. Frågan är hur mycket tid du kan köpa då.
Fem frågor för din organisation
NIST Cybersecurity Framework är en bra spegel här. Fem av dess sex funktioner, tillämpade på den 21 oktober:
- Identify. Vet du var PHP körs, även hos dina SaaS-leverantörer och i säkerhetsenheter?
- Protect. Vad skyddar dig mellan det ögonblick en sårbarhet läcker ut och det ögonblick du patchar?
- Detect. Skulle du märka om en server plötsligt började ringa hem?
- Respond. Vem beslutar om att stänga av, och på vilken grund?
- Recover. Hur vet du att det är säkert att slå på igen?
Där Momentum står
Momentum är en specialiserad implementeringspartner till Cato Networks i EMEA. Använder du Cato via Momentum kontrollerar vi gärna tillsammans med dig om IPS är aktiverat, vilken trafik Cato inspekterar och var dina publika applikationer dessutom behöver en WAF. Står du i början kartlägger vi tillsammans var PHP körs i din miljö och var en bro kan köpa dig tid nästa gång.
Ett samtal är förutsättningslöst. Hellre nu, i lugn och ro, än under nästa.
Källor: NCSC, NOS, Binnenlands Bestuur, DutchBrief, Quote, The Register, The Next Web, CSO Online, ELLIO, Wiz, Qualys, EenVandaag, Help Net Security, PHP, Cato Networks.