A WebGPU “Death Ray” Freezes a Mac in One Click

Translated by a model; the original is in Russian.

· Technology
A researcher showed how a small WebGPU shader on an untrusted site can freeze a Mac's graphics until a forced reboot. Apple acknowledged the problem but declined to treat it as a vulnerability.

cover.svg

A developer going by the pseudonym Auberon López (they/them) has published a write-up of a technique they call the “Death Ray.” It's a tiny WebGPU shader that any untrusted site can run right in the browser. All it takes is for the victim to click a link — and the Mac's graphics subsystem hangs so badly that the desktop is unusable until a reboot.

How it works

WebGPU is a relatively new technology that has replaced WebGL and lets websites hand shaders straight to a device's graphics card. In the Death Ray, a compute shader kicks off an infinite loop: the counter variable never increments, so copying a vector within a buffer never stops. A vertex shader depends on the same buffer and therefore gets stuck too.

The problem doesn't stay confined to the tab. The hang spreads to other processes that need the GPU — first and foremost WindowServer. It stops responding, and this shows up in different ways: sometimes the cursor still moves, sometimes the “beach ball” appears, and sometimes part of the screen fills with magenta garbage.

Curiously, the machine itself remains functional — you can connect to it over SSH without any trouble. But a watchdog timer keeps an eye on WindowServer: if it stays silent too long, a kernel panic fires and the computer reboots.

Macs only

The author reproduced the effect in Chrome, Firefox, and Safari on devices with Apple M-series chips running Tahoe. On other operating systems the trick merely freezes the tab — close it and everything is back to normal. López suspects the cause lies in the M-chip architecture: the OS kernel can't directly preempt tasks on the GPU, since all that logic has been offloaded to the ASC coprocessor's firmware.

This isn't the first case of its kind. In 2023, researcher Ron Masas of Imperva put together a similar shader, ShadyShader, on WebGL; Apple issued CVE-2023-40441 with a medium rating of 6.5 and added a check for “runaway” loops. In WebGPU that check appears to be weaker — an infinite loop here is trivial to spot. But, as the author notes, catching infinite loops runs up against the halting problem; it's more reliable to forcibly preempt hung shaders, which is exactly what every other OS does.

A dispute over what counts as a vulnerability

The author stumbled on the problem by accident while studying WebGPU at the Recurse Center. The finding was reported to Apple on July 27, 2026; the company quickly reproduced the bug and promised a fix. But on August 26 it changed its mind, stating that it “sees no security implications here,” since the outcome is only a crash, a freeze, or recoverable data loss.

López concedes that, formally, Apple is right, and security-savvy acquaintances agree with the company. Ordinary users, though, see it differently, the author observes — their faith that clicking a link won't harm their computer is undermined. The barrier to entry is extremely low, so the author regards the technique as an “evil version of a rickroll” and hopes Apple will fix the problem after all — just not by disabling WebGPU by default.


Source: Lobsters

Comments

Sign in, to comment.

  • No comments yet.