En lille JavaScript-udnyttelse kan fastfryse macOS-grænsefladen, når nogen åbner et skadeligt website. Deathray-angrebet virker i Chrome, Firefox og Safari, hvilket efterlader de berørte brugere med få andre muligheder end at genstarte deres Mac.
Apple genskabte problemet efter at have modtaget forskerens rapport. Virksomheden oplyste dog senere, at den ikke havde identificeret nogen sikkerhedsmæssige konsekvenser, og har ikke annonceret en rettelse.
WebGPU-shader udløser en uendelig løkke
Sikkerhedsforskeren Auberon López opdagede fejlen, mens han lærte at bruge WebGPU. Denne moderne grafik-API giver webapplikationer direkte adgang til en enheds grafikprocessor til krævende gengivelses- og beregningsopgaver.
Angrebet består af en enkelt GPU-beregningsshader i en lille JavaScript-fil. Når den indlæses, går shaderen ind i en uendelig løkke og kopierer gentagne gange den samme vektor til en buffer.
Samtidig skal den shader, der viser indholdet, også bruge denne buffer. Den kan ikke fortsætte, fordi den første handling aldrig frigiver ressourcen. Derfor går GPU-pipelinen i stå, og den grafiske brugerflade i macOS fryser.
Skadelige websites kan låse brugerfladen
En angriber behøver kun at overtale en bruger til at åbne et website, der indeholder scriptet. Det ser ikke ud til, at yderligere downloads eller handlinger er nødvendige.
Virkningerne kan variere mellem forskellige enheder og forsøg. I nogle tilfælde fortsætter musemarkøren med at bevæge sig, eller den roterende badebold vises. Andre test har skabt magentafarvede visuelle artefakter eller fået hele brugerfladen til at holde op med at reagere.
Cybernews testede demonstrationen i Firefox på en MacBook og rapporterede, at selv musemarkøren frøs. Brugere kan tvinge computeren til at genstarte. Apples indbyggede Watchdog-proces bør ellers med tiden opdage problemet og sætte en genstart i gang.
Den automatiske tidsgrænse kan dog være længere, end mange brugere vil vente. Desuden kan en browser, der automatisk gendanner den tidligere session, genåbne den skadelige side, efter at Mac-computeren er genstartet.
Mac-computeren fortsætter med at køre i baggrunden
Selvom skærmen bliver ubrugelig, lukker angrebet ikke computeren helt ned. López opdagede, at en berørt Mac stadig kunne modtage eksterne SSH-forbindelser.
Angrebet blokerer i stedet WindowServer, som er en central macOS-proces, der administrerer vinduer og den grafiske brugerflade. WindowServer venter på, at GPU-pipelinen bliver tilgængelig, men den skadelige shader forhindrer det.
Denne adfærd forklarer også, hvorfor macOS muligvis ikke reagerer længe nok til at udløse en almindelig kernel panic. Operativsystemet fortsætter med at fungere i baggrunden, mens den grafiske brugerflade forbliver låst.
Store Mac-browsere er fortsat berørt
López genskabte Deathray-angrebet via Chrome, Firefox og Safari på macOS. Test tyder på, at den samme kode ikke fastfryser iPhones eller enheder med andre operativsystemer, selvom den stadig kan reducere deres ydeevne.
Windows bruger et gendannelsessystem kaldet Timeout Detection and Recovery. Det kan nulstille grafikkortet, hvis en opgave tager for lang tid at afslutte. Forskeren mener, at macOS mangler en lige så effektiv mekanisme til at gendanne systemet efter netop denne GPU-belastning.
López mener også, at problemet kan hænge sammen med arkitekturen i Apples processorer i M-serien. På disse chips håndterer en hjælpeprocessor og dens firmware GPU-preemption, som gør det muligt for systemet at afbryde eller sætte en igangværende opgave på pause.
Apple genskabte macOS-fejlen
Forskeren anmeldte sårbarheden til Apple, som hurtigt genskabte problemet. Ifølge López planlagde virksomheden oprindeligt at rette fejlen og fremlagde en mulig tidsplan.
Apple ændrede senere sin vurdering og oplyste, at rapporten ikke viste nogen sikkerhedsmæssige konsekvenser. Virksomheden overførte angiveligt opdagelsen til et andet team, som skulle overveje mulige forbedringer.
Svaret tyder på, at problemet kan få lavere prioritet end sårbarheder, der involverer ekstern kodekørsel, omgåelse af sandkasser eller datatyveri.
Lignende macOS-sårbarhed fik tidligere et CVE-nummer
Apple har tidligere anerkendt en anden denial-of-service-sårbarhed, som involverede skadeligt webindhold. Sårbarheden fik identifikatoren CVE-2023-40441 og en middelhøj alvorlighedsscore på 6,5 ud af 10.
López betragter Deathray som mindre alvorlig end ekstern kodekørsel eller et databrud. Angrebet kræver dog kun en lille indsats, fordi en angriber blot skal overtale nogen til at åbne et link.
Forskeren har offentliggjort koden, men opfordret andre til at bruge den ansvarligt. Indtil Apple indfører en stærkere beskyttelse, bør Mac-brugere undgå at køre demonstrationen eller åbne mistænkelige links, der hævder at teste sårbarheden.


0 svar til “Deathray-angrebet kan fastfryse en Mac via et skadeligt website”