
Repository di ricerca strutturata su vulnerabilità per un difetto CWE-20 di Chrome Dawn WebGPU: causa principale, diff della patch, verifica statica, revisione della gravità e lezioni di sicurezza.
Questo è il repository del progetto di lavoro. Indagini, analisi, attività e report vengono gestiti in un unico repo (D088/D091).
Questo file è il documento di ingresso per repo e board. Per il testo completo delle convenzioni su cartelle e artefatti, consulta
docs/conventions.md. Il corpo (stato, conclusioni, link) viene aggiornato quando l'elemento report viene promosso. Gli agenti di indagine, analisi e lavoro non modificano il README root.
Sintesi in una riga: durante la creazione di sampler YCbCr, l'implementazione WebGPU di Google Chrome, Dawn, non verificava i vincoli sui parametri richiesti dalla specifica Vulkan; un attaccante che aveva già compromesso il processo renderer poteva così far arrivare valori fuori specifica fino al processo GPU (CWE-20). La correzione è stata applicata su due strati — convalida aggiuntiva e imposizione lato backend — ed è inclusa in Chrome 150.0.7871.47.
I documenti di apprendimento dettagliati sono in docs/cve-2026-13934/ — scritti in modo da poter seguire causa, correzione, verifica e lezioni senza riproduzione.
Oggetto: CVE-2026-13934 — Google Chrome / Dawn (implementazione WebGPU), tipo di vulnerabilità CWE-20 (Improper Input Validation). CVE pubblicata il 2026-06-30, versione corretta 150.0.7871.47. Base: research/20260804-cve-2026-13934-6bacf7/sources.md §1·§2.
Fasi di avanzamento — quattro linee di lavoro: indagine (informazioni pubbliche) · indagine (patch e diff) · analisi (riproduzione e verifica) · report (sintesi di apprendimento). Tutte e quattro sono state completate.
| Linea | Stato | Elementi ottenuti |
|---|---|---|
Indagine su informazioni pubbliche e ambito di impatto (research/…-6bacf7/) | Completata (4 documenti) | Metadati di CVE, NVD e avvisi del vendor, CWE·CVSS, confini delle versioni impattate, giudizi sui criteri di valutazione |
Confronto patch/diff (research/…-diff-92f928/) | Completata (4 documenti) | Identificazione del commit di correzione, tre livelli di riferimento per il confronto, delta di file e logica modificati, giudizio su bypass e rischi residui |
Riproduzione e verifica (cases/…-4d10a8/) | Completata (6 documenti) — confronto statico eseguito, nessuna osservazione a livello di esecuzione | Struttura della causa, sfruttabilità e vincoli, valori osservati dal confronto statico delle due revisioni |
Report di apprendimento (reports/…-8400bc/) | Completata (4 documenti) | Indice e mappa delle citazioni, bozza del README root, elenco dei documenti in docs/ |
Elementi confermati
150.0.7871.47 e commit di correzione (Dawn 43055cbe…), 3 file modificati e relative motivazioni.cases/20260804-cve-2026-13934-4d10a8/report.md §3).Elementi non ancora confermati (non abbiamo colmato le lacune con congetture)
VkSampler generati e i report VUID del livello di validazione Vulkan sono valori attesi basati sull'analisi del codice (cases/…-4d10a8/report.md §4).150.0.7871.46, .47 e .63 fissano tutti la stessa revisione Dawn, ma la CVE riporta "prior to .47". Non siamo riusciti a verificare la base di questa dicitura.src.513006636, che contiene la causa, è in stato di accesso limitato.Gravità — varia a seconda della fonte. La valutazione del vendor (Chromium) stesso è Medium, il CVSS v3.1 di CISA-ADP è 9.6 CRITICAL (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H) e non esiste una valutazione NVD autonoma. Le riportiamo affiancate senza giudicare quale sia corretta — l'interpretazione è in docs/cve-2026-13934/overview.md.
Questo repository non contiene servizi distribuiti (API, backend, database, ecc.). Tutti gli artefatti sono documenti.
La specifica Vulkan richiede che, per i sampler con trasformazione YCbCr, la modalità di indirizzamento di tutti gli assi sia CLAMP_TO_EDGE e che il filtraggio anisotropo (anisotropy) sia disattivato (VUID-VkSamplerCreateInfo-addressModeU-01646). Prima della patch, Dawn non verificava questo vincolo, quindi i parametri fuori specifica potevano superare la convalida e arrivare fino alla creazione del VkSampler.
L'elemento decisivo è il modello di minaccia. La descrizione pubblica presuppone un attaccante che ha già compromesso il processo renderer ("a remote attacker who had compromised the renderer process"). Da quella posizione si possono manipolare direttamente i comandi tra processi, non il normale percorso delle API web, quindi la convalida lato renderer è al di fuori del confine di fiducia. E il backend Vulkan di Dawn opera nel processo GPU, che ha privilegi più elevati del renderer — per questo il difetto diventa una superficie di escape dalla sandbox.
Base: cases/20260804-cve-2026-13934-4d10a8/root_cause.md §2 · Dettagli: docs/cve-2026-13934/root-cause-and-fix.md
Il commit di correzione è Dawn 43055cbeadddca41a9c973a809f859d641077b2f ("Add YCbCr sampler validation", 2026-05-27, Bug: 513006636) e modifica tre file.
| Modifica | File | Natura |
|---|---|---|
Aggiunta di 4 controlli su modalità di indirizzamento e maxAnisotropy nel descrittore YCbCr | src/dawn/native/Sampler.cpp | Convalida frontend — rifiuta le richieste non conformi |
| Sovrascrittura di modalità di indirizzamento e anisotropia con valori conformi alla specifica nei percorsi con trasformazione YCbCr | src/dawn/native/vulkan/SamplerVk.cpp | Imposizione backend — qualunque sia l'input, non viene creato uno stato non conforme |
Aggiunta del test di regressione YCbCrSamplerRequiredParams | src/dawn/tests/unittests/validation/YCbCrValidationTests.cpp | Prevenzione delle ricadute |