PHP2Shell: dagen nettsteder stengte seg selv
To kritiske PHP-feil fikk myndigheter og sykehus til å skru av egne nettsteder 21. oktober. Hvorfor var det klokere å stenge enn å vente?
Feilsiden som møtte folk onsdag 21. oktober var ikke alltid en feil. På mange nettsteder hadde ingenting gått i stykker. Noen hadde bare trukket ut kontakten selv.
Bakgrunnen er to sårbarheter i selve PHP, døpt PHP2Shell: CVE-2026-109618 og CVE-2026-109619. Ifølge UptimeRobots gjennomgang ga PHP-teamet begge karakteren 9,2 av 10, og begge kan i verste fall la en angriper kjøre kode på serveren uten å logge inn. Her hjelper det lite å oppdatere en plugin eller pusse på egen kode. Feilen sitter i kjøremiljøet under alt sammen, og PHP driver nesten 70 prosent av nettsidene, ifølge Cloudflare.
Regnestykket bak en tom side
PHP varslet en hasteutgivelse dagen i forveien, og da starter et kappløp. Når rettelsen er offentlig, kan angripere studere den og bygge en utnyttelse, og hver server som ikke er oppdatert, blir et mål. Før rettelsen fantes bare midlertidige innstillinger som dempet risikoen. CERT-EU rådet dem som ikke kunne oppdatere til å isolere nettvendte systemer, og britiske NCSC ba folk vurdere å ta systemer offline.
Mange hørte etter. Ifølge UptimeRobots oppsummering av Reuters- og NOS-rapportering gikk blant andre nederlandske DigiD og MijnOverheid, franske prefekturer og den tsjekkiske regjeringens nettsted ned.
Et nettsted som er borte noen timer, kommer tilbake. Et nettsted som er overtatt, er en helt annen historie.
Og risikoen var ikke teoretisk. Hostingselskaper meldte om aktiv utnyttelse klokken 07.34 UTC, over seks timer før rettelsen var ute.
Rettelsen ble sin egen kø
Rettelsen kom klokken 14.00 UTC, og så skulle alle laste den ned samtidig. UptimeRobots team fikk 504-feil fra php.net minutter før utgivelsen, og et mye brukt Ubuntu-arkiv på Launchpad svarte med 503 like etter. Noen endte med å kompilere PHP fra kildekode i stedet for å vente i køen. UptimeRobot, som overvåker nettsteder, målte rundt 11 ganger så mange nedetidsvarsler som en vanlig dag, med en topp på omtrent 37 000 i minuttet mot 3 300 dagen før.
Cloudflare valgte en annen vei: i stedet for å slå av satte de en vakt foran døra. Brannmurregler var på plass for alle kunder, gratisplanen inkludert, fra 03.02 UTC, før feilene ble offentlige. Likevel ba også de folk om å oppdatere PHP uansett.
Moralen er litt ubehagelig. Nettet hviler på noen få felles lag, og når ett av dem får en sprekk, får alle sprekken samme dag. Da er det ikke panikk å skru av lyset. Det er den kjedelige, fornuftige nødløsningen, så lenge noen faktisk skrur det på igjen med en oppdatert PHP.