PHP2Shell: Hvorfor internettet brænder i dag, og hvorfor PixelUnion ikke er berørt

Arbejder du i nærheden af en webserver, er i dag ikke en rolig onsdag. To kritiske sårbarheder i PHP, kaldet PHP2Shell, blev lækket online, før PHP-teamet nåede at levere en rettelse. Administratorer over hele verden venter nu på en patch, der er planlagt til i dag kl. 14:00 UTC, og det gør angriberne også.
Kort version til PixelUnion-brugere: Dine billeder er ikke i fare. Den lange version står nedenfor.
Hvad PHP2Shell er
PHP2Shell er navnet på to sårbarheder, CVE-2026-109618 og CVE-2026-109619. Begge er vurderet til 9,2 ud af 10 på CVSS v4.0-skalaen. Den vurdering betyder, at en angriber kan køre sin egen kode på en sårbar server uden at logge ind. I praksis: Send den rigtige forespørgsel til en hjemmeside, og du får en shell på maskinen bagved. Deraf navnet.
Den præcise årsag er ikke offentliggjort. Forskere mistænker en hukommelsesfejl (en såkaldt use-after-free) i den del af PHP, der håndterer filuploads, men det er ikke bekræftet, og mindst ét audit modsiger det. Det, der er bekræftet: Sikkerhedsfirmaet watchTowr siger, at det har gengivet en af de to fejl, og at “these vulnerabilities are indeed real.” Det er også stadig uklart, hvilke PHP-versioner der er berørt. Tidlige påstande nævner alt tilbage til PHP 5.4, og PHP har ikke offentliggjort et officielt interval.
Hvorfor internettet brænder i dag
Tre ting gør denne sårbarhed værre end en gennemsnitlig sikkerhedsmeddelelse.
For det første rækkevidden. PHP kører på omkring tre fjerdedele af alle hjemmesider, hvor serversproget er kendt. WordPress, de fleste webshops, utallige hostingpaneler og fora bygger på det. En remote code execution-fejl i selve PHP, ikke i ét enkelt plugin eller én app, rammer en enorm del af nettet på én gang.
For det andet lækagen. Normalt kommer rettelsen først, og detaljerne følger senere, så forsvarerne får et forspring. Denne gang kom detaljerne ud før patchen. Den workaround, der først gik rundt, at slå PHP’s funktion for uploadfremdrift fra, viste sig at være ufuldstændig. Der var altså en periode, hvor alle vidste, at døren stod åben, og ingen havde en lås.
For det tredje bliver selve patchen et kort. Når de rettede versioner er offentlige, kan angribere sammenligne gammel og ny kode og se præcis, hvad der er ændret. Sikkerhedsfirmaet Sansec forventer masseudnyttelse inden for omkring 15 minutter efter udgivelsen. Dertil kommer, at scanninger viser, at cirka 884.000 servere, der er tilgængelige fra internettet, stadig melder PHP 8.1 eller ældre. De grene er udløbet og får sandsynligvis aldrig en rettelse.
I dag stirrer mange mennesker derfor på en udgivelsesside, klar til at opgradere, så snart den går live. Nogle af dem når det ikke i tide.
Hvorfor PixelUnion ikke er berørt
PixelUnion kører på Immich, og Immich er ikke skrevet i PHP. Serveren er TypeScript på Node.js, med en separat machine learning-tjeneste i Python. Der er ingen PHP-fortolker nogen steder mellem din telefon og dine billeder. En fejl i PHP’s uploadhåndtering kan ikke udløses på en server, der ikke kører PHP.
For en ordens skyld: Vi kørte en enkelt lille tjeneste i periferien på PHP. Den lå uden for billedplatformen, på separat infrastruktur, og havde ingen adgang til dit bibliotek. Vi ville ikke satse på, at en ukendt patch nåede frem i tide, så vi lukkede tjenesten ned før udgivelsesvinduet. Den forbliver slukket, indtil vi har kontrolleret en rettet version.
Det betyder ikke, at vi mener at være immune over for sikkerhedsproblemer. Alle stacks har fejl, også vores. Det, der tæller, er at vide præcis, hvad der kører hvor, holde angrebsfladen lille og handle hurtigt, når noget som dette lander. Det er arbejdet, og det fortsætter vi med.
Kører du selv PHP-sites, så tjek PHP security announcements og patch, så snart udgivelsen er ude. Og leder du efter et sted til dine billeder, der er bygget med den slags omhu, vil vi gerne have dig med.
Kom gratis i gang med PixelUnion →
Forsidebillede af Ricardo Gomez Angel på Unsplash.