Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-5281 — CVE-2026-5281 (Chrome Dawn WebGPU UAF) Analyse, Laborvalidierungstools und reproduzierbare Umgebung für verwundbare vs. gepatchte Builds. | Kitploit
Tools/GitHubGitHub/themalwareguardian/cve-2026-5281
SchwachstellenanalyseExploitationLernen & BildungBinary-ExploitationLabs & PraxisArchived
GitHubthemalwareguardian/cve-2026-5281

CVE-2026-5281

CVE-2026-5281 (Chrome Dawn WebGPU UAF) Analyse, Laborvalidierungstools und reproduzierbare Umgebung für verwundbare vs. gepatchte Builds.

Repository anzeigen
214vor 5 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

⚡ CVE-2026-5281 - Chrome Dawn WebGPU Use-After-Free

CWE Status Fixed In

Diese Sicherheitslücke hat einen unserer Kunden betroffen, dem wir Dienstleistungen anbieten. Dieses Repository ist unser Beitrag zur ursprünglichen Forschung: ein zentraler Ausgangspunkt für das Team, sodass wir, falls eine ähnliche Schwachstelle in dieser Komponente erneut auftritt, bereits die Grundlage gelegt haben. Es vereint die Theorie hinter dem Fehler, eine dokumentierte Zusammenfassung der Ergebnisse des ursprünglichen Forschers und eine Reihe praktischer Werkzeuge, um die Gefährdung in einer Laborumgebung zu überprüfen.

Hinweis: Ich hätte gerne mehr dieser Forschung geteilt, aber aufgrund von Unternehmensbeschränkungen kann ich keine weiteren Details offenlegen. Alles hier Enthaltene wurde überprüft und verstößt nicht gegen irgendwelche Vereinbarungen, denen ich unterliege. Das Repository wird daher in seinem aktuellen Zustand archiviert.




📑 Inhaltsverzeichnis
  • Kontext und Zweck
  • Was ist WebGPU?
  • Was ist Dawn?

  • Speichergrundlagen (Stack, Heap, VRAM)
  • Was ist ein Use-After-Free?
  • Die Sicherheitslücke
  • 📂
    • Was wir aus öffentlichen Quellen wissen
    • Von JavaScript zur Hardware
    • Wie sich ein UAF auf GPU-Speicher verhält
    • Auswirkungen und Ausnutzungsanforderungen

  • Zeitachse
  • Ursprüngliche Forschung
  • 📂
    • Ausnutzungsstrategie
    • Beobachtete Ergebnisse

  • Laborergebnisse
  • 📂
    • Screenshots
    • Denial of Service
    • Forschungsstatus

  • Ressourcen
  • Kontakt



📌 Kontext und Zweck

Am 1. April 2026 veröffentlichte Google ein Chrome-Sicherheitsupdate, das 21 Schwachstellen behob, von denen eine, CVE-2026-5281, zum Zeitpunkt der Offenlegung bereits aktiv im Internet ausgenutzt wurde. Drei Tage später fügte CISA sie dem Katalog bekannter ausgenutzter Schwachstellen hinzu und erließ eine verbindliche operative Anweisung, die Bundesbehörden zum Patchen verpflichtete. Zu diesem Zeitpunkt hatte sie uns bereits getroffen.

Dieses Repository existiert aus einem Grund: damit wir beim nächsten Mal, wenn so etwas passiert, einen Ausgangspunkt haben, anstatt bei Null anfangen zu müssen. Es vereint:

  • Die Theorie: Was WebGPU und Dawn sind, was ein Use-After-Free auf Hardwareebene bedeutet und warum dieser spezielle Fehler gefährlich ist.
  • Die Forschung: eine dokumentierte Zusammenfassung der Ausnutzungsstrategie und der beobachteten Ergebnisse des ursprünglichen Forschers.
  • Die Werkzeuge: einen Versionsdetektor, einen Schwachstellenprüfer, der die gesamte WebGPU-Angriffskette testet, einen lokalen Scanner, einen Flottenscanner für die CSV-Stapelprüfung und einen UAF-Trigger für die Laborverifikation.



🌐 Was ist WebGPU?

Wenn Sie verstehen wollen, warum eine Sicherheitslücke existiert, beginnen Sie damit, wofür das System entwickelt wurde und welche Annahmen ihm zugrunde liegen.

  • W3C WebGPU Spezifikation

    WebGPU stellt eine API für die Durchführung von Operationen wie Rendering und Berechnung auf einer Grafikverarbeitungseinheit bereit. WebGPU ist kein Versuch, OpenGL oder OpenGL ES (Embedded Systems) bereitzustellen. Es ist eine neue API, die auf den Ideen moderner APIs wie Direct3D 12, Metal und Vulkan aufbaut.

WebGPU ist der moderne Ersatz für WebGL, die alte GPU-API, die Browser seit Jahren verwenden. Der Hauptunterschied besteht darin, dass WebGPU von Grund auf für Sicherheit und explizite Ressourcenverwaltung ausgelegt wurde. Sie deklarieren den Lebenszyklus jedes Puffers, jeder Textur und jeder Pipeline selbst. Der Browser fungiert als Validierungsschicht zwischen Ihrem JavaScript und der GPU-Hardware.

Die Objekte im Zentrum dieser Sicherheitslücke, in der Reihenfolge ihrer Erstellung:``` GPUAdapter ← represents a physical GPU or software fallback └─ GPUDevice ← your logical connection to the adapter; owns everything ├─ GPUBuffer ← a chunk of GPU-accessible memory ├─ GPUShaderModule ← a compiled WGSL shader program ├─ GPUComputePipeline ← a shader wired to a pipeline layout ├─ GPUBindGroup ← binds buffers as inputs to a pipeline ├─ GPUCommandEncoder ← records a sequence of GPU commands └─ GPUQueue ← submits recorded commands to hardware

root@kitploit:~
Die Regel, die hier zählt: Jedes Objekt gehört dem GPUDevice. Das Zerstören eines Puffers, während das Gerät noch Befehle ausführt, die darauf verweisen, ist laut Spezifikation ausdrücklich illegal. Die Dawn-Implementierung soll dies erkennen und ablehnen. CVE-2026-5281 ist ein Fall, in dem sie es nicht tat.



---
---
---



<div id='whatisdawn'/>

## ***⚙️ Was ist Dawn?***

- **[Dawn - Open-Source WebGPU Implementation](https://dawn.googlesource.com/dawn)**

	> Dawn ist eine quelloffene und plattformübergreifende Implementierung des in Arbeit befindlichen WebGPU-Standards. Sie stellt eine native C++-API bereit, die das WebGPU-IDL mit einigen Erweiterungen abbildet.

Dawn ist die C++-Bibliothek in Chrome, die WebGPU-JavaScript-Aufrufe in plattformnative GPU-Befehle übersetzt. Unter Windows zielt sie auf D3D12, unter macOS auf Metal und unter Linux auf Vulkan. Sie sitzt zwischen der JavaScript-Engine von Chrome und dem Hardwaretreiber und ist für vier Dinge zuständig: Validieren von API-Aufrufen, Serialisieren von Befehlen, Verfolgen von Objektlebensdauern und Melden von Fehlern zurück an JavaScript.

CVE-2026-5281 befindet sich im Teil der Lebensdauerverfolgung. Genauer gesagt darin, wie lange Dawn GPU-Pufferobjekte am Leben hält, während Befehle, die auf sie verweisen, noch auf der Hardware-Warteschlange auf ihre Ausführung warten.```
JavaScript (V8)
	│  WebGPU API calls
	▼
Dawn (C++) - validates, serializes, tracks lifetimes, reports errors
	│
	▼
D3D12 (Windows) - Metal (macOS) - Vulkan (Linux)
	│
	▼
GPU hardware driver
	│
	▼
Physical GPU - shader cores, VRAM



🧠 Speichergrundlagen (Stack, Heap, VRAM)

Sie benötigen ein klares mentales Modell davon, wo Dinge im Speicher leben, bevor eine Use-After-Free intuitiv verständlich wird.``` High addresses ┌────────────────────────────────────┐ │ Kernel space │ The OS and drivers live here. │ │ User-mode code cannot touch it. ├────────────────────────────────────┤ │ Stack │ Function call frames. Fast. │ (grows downward) │ Freed automatically when the │ │ function returns. ├────────────────────────────────────┤ │ Heap │ Dynamic allocations - malloc, new, │ (grows upward) │ smart pointers like Ref. │ │ Freed only when you say so. ├────────────────────────────────────┤ │ BSS / Data / Text │ Globals, constants, compiled code. └────────────────────────────────────┘ Low addresses

root@kitploit:~
Dawns C++-Objekte, wie das interne Objekt eines GPUBuffers, befinden sich auf dem Heap. Sie sind referenzgezählt: Ein Smart Pointer zählt, wie viele Referenzen auf das Objekt gehalten werden. Wenn dieser Zähler Null erreicht, wird der Destruktor ausgeführt und der Speicher an den Allokator zurückgegeben.

Ein GPUBuffer hat gleichzeitig zwei Darstellungen, eine auf der CPU-Seite und eine auf der GPU-Seite:```
CPU side (Dawn, system RAM)
	└─ C++ object - metadata, state flags, and a hardware handle
		│
		│  handle: ID3D12Resource* (D3D12) - MTLBuffer (Metal) - VkBuffer (Vulkan)
		▼
GPU side (driver, VRAM)
	└─ Actual memory allocation on the graphics card

Wenn JavaScript buffer.destroy() aufruft, ist das beabsichtigte Verhalten: das Objekt als zerstört markieren, den Referenzzähler dekrementieren, das Hardware-Handle freigeben und den VRAM freigeben. Der Fehler in CVE-2026-5281 führt dazu, dass der VRAM freigegeben wird, während die GPU-Befehlswarteschlange noch eine Referenz auf dieses Hardware-Handle hält, was bedeutet, dass die GPU aktiv Speicher liest oder schreibt, der nicht mehr zu ihr gehört.

Tool herunterladen



💀 Was ist ein Use-After-Free?

  • CWE-416: Use After Free (MITRE)

    Der Zugriff auf Speicher, nachdem er freigegeben wurde, kann dazu führen, dass ein Programm abstürzt, unerwartete Werte verwendet oder Code ausführt. Die Nutzung von zuvor freigegebenem Speicher kann eine Vielzahl negativer Konsequenzen haben, von der Korruption gültiger Daten bis hin zur Ausführung beliebigen Codes.

Ein Use-After-Free folgt einem festen Drei-Schritte-Muster und ist eine der regelmäßig ausgenutzten Speichersicherheitsfehlerklassen in der Browsersicherheit:```

  1. ALLOCATE - a heap object is created, and a pointer to it is stored somewhere
  2. FREE - the object is destroyed and its memory is returned to the allocator
  3. USE - the stale pointer is read or written after the memory was freed ← the bug
root@kitploit:~
Nach Schritt 2 kann der Allokator dieselbe Speicherregion einer völlig anderen Allokation zuweisen. Wenn ein Angreifer kontrollieren kann, was in diese freigegebene Region gelegt wird – eine Technik namens Heap Grooming –, kann er kontrollieren, was der veraltete Zeiger zurückliest. So wird ein Memory-Safety-Fehler zur Codeausführung.

GPU-seitiger UAF ist schwieriger zu beobachten als CPU-seitiger UAF, weil:

- Der "Allokator" ist der VRAM-Allokator des GPU-Treibers, nicht der systemische malloc.
- Der "veraltete Zeiger" ist ein Hardware-Handle, der immer noch von der Befehlswarteschlange referenziert wird.
- Die GPU führt Befehle asynchron aus, die CPU ist schon lange vor dem Auftreten des Absturzes weitergezogen.



---
---
---



<div id='thevulnerability'/>

## ***🕳️ Die Schwachstelle***

---

<div id='thevulnerability-whatweknow'/>

### ***📋 Was wir aus öffentlichen Quellen wissen***

Das Folgende beruht vollständig auf dem, was öffentlich bestätigt wurde.

- **[NVD: CVE-2026-5281](https://nvd.nist.gov/vuln/detail/CVE-2026-5281)**

	> Use-After-Free in Dawn in Google Chrome vor 146.0.7680.178 erlaubte es einem entfernten Angreifer, der den Renderer-Prozess kompromittiert hatte, beliebigen Code über eine präparierte HTML-Seite auszuführen.

- **[The Hacker News: 1. April 2026](https://thehackernews.com/2026/04/new-chrome-zero-day-cve-2026-5281-under.html)**

	> Google ist bekannt, dass ein Exploit für CVE-2026-5281 im Umlauf ist.

- **[Help Net Security: 1. April 2026](https://www.helpnetsecurity.com/2026/04/01/google-chrome-zero-day-cve-2026-5281/)**

	> CVE-2026-5281 wurde von einem pseudonymen Bug-Hunter (86ac1f1587b71893ed2ad792cd7dde32) gemeldet, der zuvor zwei Schwachstellen gemeldet hatte, die im Chrome-Update vom 23. März 2026 behoben wurden: einen Heap-Buffer-Overflow in WebGL (CVE-2026-4675) und einen weiteren Use-After-Free-Fehler in Dawn (CVE-2026-4676). Der Bug-Hunter meldete außerdem einen dritten Use-After-Free in Dawn (CVE-2026-5284), der dieses Mal behoben wurde.

---

<div id='thevulnerability-executionlayers'/>

### ***🔗 Von JavaScript zur Hardware***

Um zu verstehen, wo ein UAF in Dawn entstehen kann, hilft es, genau zu sehen, wie ein WebGPU-Aufruf von einer JavaScript-Zeile bis zur physischen Hardware reist:```
JavaScript
	↓  navigator.gpu → adapter → device → buffer / pipeline / encoder
	↓  queue.submit([commandBuffer])    ← validation happens here
	↓  buffer.destroy()                 ← if this races GPU execution, UAF

Dawn (C++) - validates API calls, serializes commands, tracks lifetimes
	↓  translates WebGPU calls to platform-native API calls

D3D12 (Windows)
	↓  ID3D12CommandQueue::ExecuteCommandLists()
	↓  hardware handle for the buffer passed to the driver

GPU hardware
	↓  shader cores execute the queued commands
	↓  if the buffer was freed prematurely → they access freed VRAM ← UAF

Die grundlegende Spannung besteht darin, dass queue.submit() und buffer.destroy() beide JavaScript-API-Aufrufe sind, die sofort zurückkehren, aber die GPU die übermittelten Befehle asynchron ausführt, möglicherweise lange nachdem beide Aufrufe zurückgekehrt sind. Dawn muss Pufferobjekte während der gesamten Dauer der GPU-Ausführung lebendig halten, nicht nur bis zum Zeitpunkt der Rückkehr des JavaScript-Aufrufs.


⚡ Wie sich ein UAF im GPU-Speicher verhält

Wenn der UAF ausgelöst wird, erreicht die GPU ein Ereignis, das D3D12 als "Device Removed" bezeichnet. Die Sequenz ist:```

  1. GPU shader accesses freed or reused VRAM
  2. GPU memory protection triggers a hardware-level fault
  3. D3D12 Timeout Detection and Recovery (TDR) kicks in
  4. The driver signals DXGI_ERROR_DEVICE_REMOVED back to Chrome
  5. Dawn's device-lost callback fires
  6. Chrome surfaces GPUDeviceLostInfo to JavaScript
  7. The DeviceLost promise resolves, the GPU context is gone
  8. An uncapturederror event fires: "device lost due to internal error"
root@kitploit:~
Das erkennt auch der automatisierte Testrunner in diesem Repository: Er überwacht genau diese Konsolensignale, um festzustellen, ob die Schwachstelle in einer bestimmten Chrome-Version auslösbar ist.

---

<div id='thevulnerability-impact'/>

### ***💥 Auswirkungen und Anforderungen an die Ausnutzung***

Die NVD-Beschreibung ist präzise hinsichtlich einer wichtigen Einschränkung: Die Ausnutzung erfordert, dass der Angreifer den Renderer-Prozess bereits kompromittiert hat. Das bedeutet, CVE-2026-5281 ist keine eigenständige RCE mit einem Klick aus dem kalten Start, sondern eine Sandbox-Escape, die Teil einer Kette wird.

In der Praxis würde eine vollständige Angriffskette etwa so aussehen:```
Initial access       ← some other vulnerability gets code running in the renderer
		↓
CVE-2026-5281        ← UAF in Dawn used to escape the renderer sandbox
		↓
Arbitrary code       ← execution in a higher-privilege Chrome process or OS context

Dies ist genau das Ausbeutungsmodell, das GPU-Fehler im Browser so wertvoll macht: Sobald man sich im Renderer befindet, ist Dawn eines der natürlichen nächsten Ziele, da es hardwarenahen Speicher mit einer solchen asynchronen Komplexität verwaltet, die diese Timing-Fenster erzeugt.

Der bestätigte Schweregrad zum Zeitpunkt der Offenlegung war die Ausführung beliebigen Codes, und die Vulners-Datenbank verzeichnet Datenkorruption und Browser-Abstürze als weitere beobachtete Auswirkungen.




📅 Zeitleiste

CVE-2026-5281 trat nicht isoliert auf. Es war der vierte Chrome Zero-Day des Jahres 2026, ein Jahr, das bereits vor Ende des ersten Quartals auf dem besten Weg war, die Gesamtzahl von acht Zero-Days im Jahr 2025 zu übertreffen.

DatumEreignis
Februar 2026CVE-2026-2441 gepatcht, UAF in Chromes CSS-Komponente, aktiv ausgenutzt
10. März 2026CVE-2026-3909 und CVE-2026-3910 gepatcht, beide aktiv ausgenutzte Zero-Days
23. März 2026CVE-2026-4675 (WebGL-Heap-Pufferüberlauf) und CVE-2026-4676 (UAF in Dawn) gepatcht, gleicher Melder wie CVE-2026-5281
1. April 2026Google veröffentlicht Chrome 146.0.7680.177/178, 21 Schwachstellen gepatcht, CVE-2026-5281 als in freier Wildbahn ausgenutzt bestätigt
1. April 2026CISA nimmt CVE-2026-5281 in den Katalog bekannter ausgenutzter Schwachstellen auf
3. April 2026Google bestätigt aktive Ausnutzung gegen 3,5 Milliarden Chrome-Nutzer

Derselbe pseudonyme Forscher, der CVE-2026-5281 meldete, meldete auch drei weitere Schwachstellen im nahen Zeitfenster (CVE-2026-4675, CVE-2026-4676, CVE-2026-5284, die letzten beiden ebenfalls UAFs in Dawn). Dies deutet auf einen fokussierten, laufenden Forschungsaufwand hin, der speziell auf das Speichermanagement von Dawn abzielt.




🧪 Originalforschung

Das Toolkit in diesem Repository wurde aufbauend auf ursprüngliche Sicherheitsforschung erstellt, die das Verhalten der Schwachstelle in einer Laborumgebung dokumentiert. Es folgt eine Zusammenfassung dieser Forschung, der verwendeten Strategie zur Auslösung des UAF und der beobachteten Ergebnisse.


🎯 Exploit-Strategie

Der Ansatz des Forschers zur Auslösung des UAF wurde entwickelt, um gleichzeitig die drei Bedingungen zu erfüllen, die das Wettlauf-Fenster erreichbar machen: ausreichend GPU-Warteschlangendruck zur Verzögerung der Ausführung, enge genug Timing zwischen destroy und dispatch, und Pufferneuzuweisung gleicher Größe zur Maximierung der Wahrscheinlichkeit beobachtbarer Korruption.

Die Strategie gliedert sich in fünf Schritte:

Schritt 1 - Volumen und Druck: 200 temporäre WebGPU-Speicherpuffer mit zufälligen Größen (alle Vielfache von 4 Bytes, wie von der WebGPU-Spezifikation gefordert) allokiert. Dies dient nicht dem Füllen des VRAM, sondern der Erzeugung von genügend ausstehender Arbeit, sodass die GPU die Befehle nicht sofort ausführen kann.

Schritt 2 - Rechen-Thread-Sättigung: 32 parallele Compute-Pipelines mit schweren Arbeitslasten in die Warteschlange gestellt, innere Schleifen mit 1000 Iterationen und Dispatch-Größen von 4096 Arbeitsgruppen. Ziel ist es, die GPU-Warteschlange tief zu stauen, sodass das Fenster zwischen Submit und Ausführung lange genug offen bleibt, um einen Wettlauf zu ermöglichen.

Schritt 3 - Die Falle: Unmittelbar nach dem Einreihen aller Befehlspuffer wird destroy() auf allen 200 Puffern aufgerufen. Zu diesem Zeitpunkt hat die GPU die Befehle erhalten, aber noch nicht ausgeführt. Dawn hat seine Submit-Zeit-Validierung bereits bestanden. Der VRAM wird freigegeben.

Schritt 4 - Der Auslöser: 32 neue Pufferallokationen unter Verwendung exakt derselben Größen wie die gerade freigegebenen Puffer. Wenn der VRAM-Allokator dieselben physischen Adressen zurückgibt, was aufgrund der übereinstimmenden Größen oft der Fall sein wird, zeigen die ausstehenden Befehle der GPU nun auf einen Hardware-Handle, der auf Speicher verweist, der zu einer anderen, lebenden Allokation gehört.

Schritt 5 - Wiederverwendung übermittelter Befehle: Eine weitere Runde von Befehlspuffer-Übermittlungen unter Verwendung der neu allokierten Puffer. Zu diesem Zeitpunkt befinden sich zwei Sätze von Befehlen in der Warteschlange, die auf denselben Speicher verweisen, während die GPU immer noch den ersten Satz abarbeitet.

Das Ergebnis ist ein klassischer UAF auf der VRAM-Ebene: Freigegebener Speicher wird aktiv von laufender Shader-Ausführung gelesen.


📊 Beobachtete Ergebnisse

Der Forscher führte den PoC sowohl auf einer verwundbaren als auch auf einer gepatchten Chrome-Installation aus und beobachtete eine klare verhaltensbezogene Trennung:

Verwundbarer Lauf (Chrome < 146.0.7680.178):``` [INFO] CVE-2026-5281 AGGRESSIVE PoC Loaded [INFO] Initializing WebGPU context... [INFO] WebGPU device initialized [INFO] Starting aggressive UAF attacks... [ERROR] UNCAUGHT GPU ERROR: device lost due to internal error [CRASH] GPU DEVICE LOST: destroyed [CRASH] [!!!] CRASH DETECTED! Check console for details.

root@kitploit:~
Der gezielte Chrome-Prozess stellte die Darstellung vollständig ein. Das Betriebssystem erlebte kurzzeitiges visuelles Einfrieren, was darauf hindeutet, dass der Grafiktreiber nach dem GPU-Fehler zurückgesetzt werden musste oder die Verarbeitung anhielt. Das device lost-Ereignis wurde einem fatalen GPU-Fehler zugeordnet, nicht einem standardmäßigen WebGPU-API-Validierungsfehler. Dies bestätigt, dass das beschädigte Speicherlayout die Hardware-Ebene erreichte, ohne von der JavaScript-seitigen Sandboxing von Chrome abgefangen zu werden.

**Gepatchter Durchlauf (Chrome >= 146.0.7680.178):**```
[INFO]  CVE-2026-5281 AGGRESSIVE PoC Loaded
[INFO]  Initializing WebGPU context...
[INFO]  WebGPU device initialized
[INFO]  Starting aggressive UAF attacks...
[INFO]  Max attempts reached without crash
[INFO]  Either browser is patched or target build not affected

Kein Absturz, kein Geräteverlust, keine fatalen GPU-Signale bei allen Versuchen. Der Fix hält.




🔬 Laborergebnisse

Die folgenden Aufnahmen wurden während der Labortests des Toolkits gegen eine verwundbare und eine gepatchte Chrome-for-Testing-Installation auf einem Windows-Rechner mit einer Intel-Gen12lp-integrierten GPU erstellt. Jedes Tool wurde gegen beide Ziele ausgeführt, um die Verhaltensunterschiede zu überprüfen.


🖥️ Tool-Screenshots

01 - Versionserkennung

Verwundbar (< 146.0.7680.178)Gepatcht (>= 146.0.7680.178)
01 Verwundbar
01 Gepatcht

02 - Schwachstellenprüfer

VerwundbarGepatcht
02 Verwundbar02 Gepatcht

03 - Lokaler Scanner

VerwundbarGepatcht
03 Verwundbar03 Gepatcht

04 - Fleet-Scanner

VerwundbarGepatcht
04 Verwundbar04 Gepatcht

05 - UAF-Trigger

ChromeFirefox
05 Chrome05 Firefox

Firefox dient dem Vergleich. Firefox verwendet seine eigene WebGPU-Implementierung und ist von dieser Schwachstelle nicht betroffen. Es schließt alle Versuche unabhängig von der Version ohne Absturzsignal ab, was dem erwarteten Verhalten entspricht.

06 - UAF-Trigger + Automatisierter Runner

GPU-Gerät verloren
06 Ausnahme

Ein sichtbares Absturzsignal zu erhalten, ist nicht immer einfach. Abhängig von Hardware und Umgebung kann der Trigger eine gewisse Feinabstimmung erfordern, um beobachtbare Ergebnisse zu erzielen. In unserem Fall war das Verhalten reproduzierbar, aber ohne Anpassung der Arbeitslast nicht konsistent sichtbar.


💥 Denial-of-Service

Wir haben in einer kontrollierten Laborumgebung erfolgreich einen Denial-of-Service gegen eine verwundbare Chrome-Installation reproduziert. Der UAF-Trigger führt dazu, dass die GPU zu 100 % ausgelastet wird, da die stark zurückgestaute Befehlswarteschlange den Treiber daran hindert, neue Speicherverwaltungsanfragen zu bedienen. Bei einigen Durchläufen geriet der GPU-Prozess in einen nicht behebbaren Fehlerzustand, der folgende beobachtbare Effekte verursachte:

  • Ein kurzzeitiges visuelles Einfrieren auf Betriebssystemebene, das einem TDR-Reset (Timeout Detection and Recovery) des Anzeigetreibers entspricht
  • DXGI_ERROR_DEVICE_HUNG (0x887A0006) wurde von D3D12 über Dawn an den Renderer weitergegeben
  • Das device.lost-Promise von Chrome wurde mit dem Grund "unknown" aufgelöst und eine DXGI_ERROR_DEVICE_HUNG-Meldung im Dawn-Backend-Trace angezeigt
  • Vollständiger Verlust des WebGPU-Kontexts für diesen Tab

Die GPU-Sättigung und die gelegentliche Ausnahme bestätigen, dass der Speicherfehler die Hardwareebene erreicht: Das freigegebene Pufferhandle wird von der laufenden Shader-Ausführung angesprochen, die GPU stürzt ab, und D3D12s TDR-Mechanismus gibt dies als Geräteentfernungsereignis aus. Die gepatchte Version hat die gleiche Arbeitslast sauber und ohne jegliches Absturzsignal abgeschlossen.


🔍 Forschungsstatus

Die DoS-Reproduktion bestätigt die Schwachstelle. Die laufenden Arbeiten konzentrieren sich auf die Analyse des Patches auf Binärebene, insbesondere auf das Diffing des Dawn-Befehlsbuffer-Übergabepfads zwischen dem letzten verwundbaren Build und 146.0.7680.178, um genau zu verstehen, wo und wie der Fix zur Referenzzählung angewendet wurde.

Betreffend den automatisierten Runner: Der ursprüngliche Forscher veröffentlichte ein Runner-Skript zusammen mit seinem PoC. Unsere Version erforderte Änderungen, um in einem lokalen Laborkontext zuverlässig zu funktionieren, insbesondere die Umstellung auf den neuen Headless-Modus von Chrome und die Hinzufügung einer Option, um die Weitergabe von GPU-Absturzsignalen vom GPU-Prozess an den Renderer zu ermöglichen. Ohne diese beiden Flags absorbiert Chrome GPU-Prozessabstürze stillschweigend, und das Verhaltenssplit zwischen verwundbaren und gepatchten Builds ist von JavaScript aus nicht beobachtbar.

Während die Reverse-Engineering- und Binär-Diffing-Arbeiten noch laufen, wird der automatisierte Runner in diesem Repository nicht veröffentlicht. Er wird in einem Folge-Update enthalten sein, sobald die Patch-Analyse abgeschlossen ist.




📚 Referenzen und Quellen

  • NVD: CVE-2026-5281
  • MITRE CWE-416: Use After Free
  • CISA: Bekannte ausgenutzte Schwachstellen (CVE-2026-5281)
  • The Hacker News: Neue Chrome Zero-Day CVE-2026-5281 unter aktiver Ausnutzung
  • Forbes: Google gibt Zero-Day-Angriffswarnung für 3,5 Milliarden Chrome-Nutzer heraus
  • Help Net Security: Google Chrome Zero-Day CVE-2026-5281
  • Dawn-Quellcode-Repository
  • WebGPU-Spezifikation
  • WGSL-Spezifikation



📬 Kontakt

Verwenden Sie nur auf Systemen, die Ihnen gehören oder für die Sie ausdrücklich berechtigt sind, Tests durchzuführen.