Deathray MacOS WebGPU DoS

Editors' Pick

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.

FORRÁS