
Harness di rilevamento differenziale per CVE-2026-76036, un heap buffer overflow di Dawn WebGPU in Chrome su Android. Sonda combinazioni vulnerabili di texture depth/stencil e monitora i crash del processo GPU per classificare l'esposizione del browser e della GPU.
Overflow del buffer heap critico (CVSS 9.6, CWE-122) in Dawn, l'implementazione WebGPU di Chromium, in Google Chrome su Android precedente alla 151.0.7922.169 (stable 151, rilasciata il 2026-08-18).
Causa radice, secondo il commit di fix di Dawn
178fb7048ad3: il
driver Vulkan proprietario PowerVR calcola erroneamente le dimensioni dei livelli mip per
le texture depth/stencil non power-of-two (NPOT). Una pagina web che chiama
device.createTexture() con un formato depth/stencil, dimensioni NPOT e
mipLevelCount > 1 su hardware interessato corrompe l'heap del processo GPU.
NVD: "ha consentito a un attaccante remoto di eseguire codice arbitrario fuori dalla sandbox
tramite una pagina HTML appositamente predisposta".
L'innesco esatto si trova nel bug Chromium ristretto 540087398. Questo repository quindi fornisce un harness di rilevamento differenziale, non un exploit: enumera la combinazione indicata dal commit di fix pubblico e classifica il tuo browser+GPU.
| File | Scopo |
|---|---|
poc.html | Matrice di probe WebGPU — tutti e cinque i formati depth/stencil × dimensioni NPOT (incl. la forma 259×127 dal test end2end soppresso di Dawn) × conteggi di mip, ciascuno nel proprio scope di errore di validazione |
crash_monitor.py | compagno adb — fissa la versione di Chrome installata rispetto alla soglia 151.0.7922.169 e segue logcat per segnali fatali del processo GPU |
# 1) serve the harness (WebGPU needs a secure context: localhost or HTTPS)
$ python3 -m http.server 8000
# 2) on the device (or desktop Chrome), open:
# http://<your-host>:8000/poc.html (localhost/http works; remote hosts need HTTPS)
# 3) from a host with adb, watch the GPU process:
$ python3 crash_monitor.py
[*] com.android.chrome versionName=151.0.7922.83
[!] VULNERABLE — below the 151.0.7922.169 fix floor (CVE-2026-76036)
[*] logcat: live tail — Ctrl-C to stop. Load poc.html on the device now.
poc.htmlL'harness limita ogni probe (~150 ms) così un dispositivo da laboratorio sopravvive abbastanza a lungo da produrre un verdetto invece di morire sulla prima copia divergente.
Esegui solo contro dispositivi e browser di tua proprietà o che amministri. Su hardware non patchato e interessato, il bug sottostante è un vero fattore scatenante di corruzione della memoria; l'harness evita deliberatamente qualsiasi tentativo di modellare quella corruzione.
| Osservazione | Significato |
|---|
| Errore di validazione contenente "non consentito su questo dispositivo a causa di un bug del driver" | Fix attivo + GPU nella classe PowerVR interessata (il dispositivo era raggiungibile prima della patch; conferma la versione ≥ 151.0.7922.169) |
| Combinazioni accettate, nessun errore di questo tipo | GPU fuori dalla classe Imagination interessata — non raggiungibile tramite questo percorso |
device.lost scatta a metà scansione / Fatal signal del processo GPU in logcat su Chrome < 151.0.7922.169 | Comportamento pre-patch che questa CVE serve a rimuovere — aggiorna immediatamente |
navigator.gpu non definito | WebGPU non disponibile — superficie chiusa |