Deathray MacOS WebGPU DoS
Auberon Lopez biztonsági kutató egy rendkívül egyszerű WebGPU-alapú szolgáltatásmegtagadási módszert mutatott be Deathray néven. Egy rosszindulatú weboldal WebGPU shaderkódja képes úgy lefoglalni a Mac grafikus processzorát, hogy a teljes grafikus felület használhatatlanná válik. A támadáshoz elég a link megnyitása, nincs szükség fájlletöltésre, telepítésre vagy további felhasználói műveletre. A kutató Chrome, Firefox és Safari alatt is reprodukálta a problémát Apple Silicon alapú, macOS Tahoe rendszereken.
Technikailag egy compute shader végtelen ciklusban dolgozik ugyanazon GPU-pufferen, miközben a renderelést végző shader ugyanennek az adatnak a feldolgozására vár. A GPU így nem tud továbblépni, ami végül a macOS grafikus felületét kezelő WindowServer folyamatot is blokkolja. Maga az operációs rendszer közben tovább működhet – például SSH-n még elérhető –, de a WindowServer watchdogja idővel kernel panicot és újraindítást válthat ki. Más vizsgált operációs rendszereken a hatás jellemzően a böngészőlapra korlátozódott.
A kutató július 27-én jelentette a hibát az Apple-nek. A vállalat először reprodukálta és javítani tervezte, augusztus végén azonban úgy ítélte meg, hogy a jelenségnek nincs olyan biztonsági következménye, amely termékmódosítást indokolna. Ez azért érdekes, mert egy hasonló, WebGL-alapú 2023-as problémát az Apple CVE-2023-40441 azonosítóval és 6,5-ös CVSS-besorolással javított.
A Deathray nem ad hozzáférést a géphez, nem tör ki a böngésző sandboxából és nem lop adatot, lényegében egy kattintással kiváltható helyi DoS. A fontosabb technikai probléma az, hogy a böngészőből érkező, nem megbízható GPU-kód képes az egész grafikus környezet működését befolyásolni. Lopez szerint ezért nem pusztán a végtelen ciklusok felismerését kellene javítani, hanem a beragadt shaderek hatékonyabb megszakítását és erőforrás-elkülönítését is.