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-9999-exploit — Proof-of-Concept- und GLSL-Fuzzer für CVE-2026-9999 im ANGLE/Metal-WebGL-Backend von Chrome, mit Build-Fingerprinting, kuratierten Shadern und Erfassung von Crash-Artefakten. | Kitploit
Tools/GitHubGitHub/josephfarah-ciso/cve-2026-9999-exploit
SchwachstellenanalyseExploitationWebsicherheitFuzzing
GitHubjosephfarah-ciso/cve-2026-9999-exploit

CVE-2026-9999-exploit

Proof-of-Concept- und GLSL-Fuzzer für CVE-2026-9999 im ANGLE/Metal-WebGL-Backend von Chrome, mit Build-Fingerprinting, kuratierten Shadern und Erfassung von Crash-Artefakten.

Repository anzeigen
4vor 27 TagenNoch 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-9999 — PoC-Hunting-Harness für Chrome ANGLE/Metal WebGL (macOS)


1. Zusammenfassung der Schwachstelle

FeldWert
CVECVE-2026-9999
Anbieter / ProduktGoogle Chrome
BetroffenChrome < 148.0.7778.216, nur macOS [1]
Behoben in148.0.7778.216 [1]
AuswirkungBeliebige Codeausführung innerhalb einer Sandbox über eine präparierte HTML-Seite [1]
Chromium-SchweregradHoch [1]
CVSS 3.1 (CISA-ADP)8.8 HOCH — CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H [1]
NVD- (NIST-)CVSS-BewertungNoch nicht verfügbar [1]
CWECWE-269 — Unzureichende Rechteverwaltung (Anreicherung durch CISA-ADP) [1]
CISA SSVC (2026-05-29)exploitation: none, automatable: no, technicalImpact: total [1]
Veröffentlicht / zuletzt geändert2026-05-28 / 2026-07-21 [1]
GrundursacheNicht öffentlich — Chromium-Issue 513364480 zeigt „Permissions Required" [1]

Auswirkung auf die Angriffskette: Codeausführung „innerhalb einer Sandbox" [1] bedeutet, dass ein Angreifer die Kontrolle über einen sandboxierten Prozess (am wahrscheinlichsten den GPU-Prozess) erlangt. Eine vollständige Browser-Übernahme würde zusätzlich eine separate Sandbox-Escape erfordern, die nicht Teil dieser CVE ist.


2. Strategie und Hypothese (Einschätzung des Analysten — als unbestätigt behandeln)

Das Folgende ist eine Schlussfolgerung aus den öffentlichen Informationen, keine bestätigten Fakten:

  • ANGLE ist die Engine, die Chrome verwendet, um WebGL-GLSL in plattformspezifische Grafik-APIs zu übersetzen — unter macOS in Metal. Eine „präparierte HTML-Seite" [1], die ANGLE erreicht, bedeutet mit ziemlicher Sicherheit WebGL-Inhalte — d. h. angreiferkontrollierte Shader und/oder WebGL-Zustand, der vom Metal-Backend verarbeitet wird.
  • CWE-269 (Unzureichende Rechteverwaltung) [1] in Kombination mit einer auf die Sandbox beschränkten Auswirkung deutet darauf hin, dass die ANGLE/GPU-Ebene es versäumt, etwas Angreiferkontrolliertes während der Shader-Übersetzung oder Zustandsvalidierung angemessen einzuschränken.
  • In der Vergangenheit hat diese Komponente über Randfälle im GLSL-Übersetzer Memory-Safety-Fehler hervorgebracht (OOB-Konstantenindizierung, Integer-Überlauf bei Array-Größen, Swizzle-/Discard-Interaktionen, überdimensionierte Uniform-Blöcke, Loop-Unrolling-Aufblähungen).

Der Harness wendet daher genau diese Muster an und mutiert dann GLSL in großem Umfang, um nach einem Absturz auf der Renderer-Seite zu suchen (WebGL-Kontext verloren = GPU-Prozessabsturz oder Watchdog-Beendigung).


3. Repository-Inhalte

DateiZweck
cve-2026-9999-poc.htmlEigenständiger PoC-Harness (keine Abhängigkeiten): Build-Fingerprinting, 8 kuratierte Übersetzer-Stress-Shader, GLSL-Fuzzer mit Erfassung von Absturzartefakten
README.mdDiese Datei

4. Anforderungen

  • Ein macOS-Rechner oder eine Metal-fähige VM, die Sie absichtlich zum Absturz bringen dürfen. Die CVE ist macOS-spezifisch [1]; Tests unter Windows/Linux durchlaufen das verwundbare ANGLE-Metal-Backend nicht.
  • Chrome-Build < 148.0.7778.216 [1] (siehe §5).
  • Hardware-GPU / Metal-Unterstützung. Ohne diese fällt Chrome auf SwiftShader (Software-Rendering) zurück und der verwundbare Pfad wird nie erreicht — siehe Prüfung in §5.4.
  • Python 3 (optional, nur für das Hilfsprogramm zur Versionssuche in §5.1 und einen lokalen HTTP-Server).

5. Einrichtung der Umgebung

5.1 Methode A — Chrome for Testing (empfohlen)

Das Chrome-for-Testing-Archiv von Google stellt versionsgepinnte Builds bereit, die nicht automatisch aktualisiert werden. Finden Sie den neuesten verwundbaren Build (alles unterhalb von 148.0.7778.216 ist betroffen [1]):

root@kitploit:~
import json, urllib.request
data = json.load(urllib.request.urlopen(
  "https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json"))
key = lambda v: tuple(int(x) for x in v.split('.'))
fix = (148, 0, 7778, 216)
cands = sorted((v["version"] for v in data["versions"]
                if "chrome" in v.get("downloads", {}) and key(v["version"]) < fix), key=key)
print(cands[-5:])   # pick the last (newest vulnerable) entry

Laden Sie für Ihre Architektur herunter (uname -m):

root@kitploit:~
# Apple Silicon
https://storage.googleapis.com/chrome-for-testing-public/<VERSION>/mac-arm64/chrome-mac-arm64.zip
# Intel
https://storage.googleapis.com/chrome-for-testing-public/<VERSION>/mac-x64/chrome-mac-x64.zip

Entpacken Sie in einen Laborordner (z. B. ~/lab/, nicht /Applications) und starten Sie von dort.

5.2 Methode B — Chromium-Snapshots

Wenn ein bestimmter Build in Chrome for Testing fehlt, verwenden Sie das Chromium-Snapshot-Archiv (commondatastorage.googleapis.com/chromium-browser-snapshots/Mac/ für Intel, .../Mac_Arm/ für Apple Silicon), das nach Commit-Position indiziert ist — ordnen Sie die verwundbare Version über chromium-history einer Branch-Position zu und ziehen Sie anschließend den nächstgelegenen Snapshot. Auch Snapshots aktualisieren sich nicht automatisch.

5.3 Automatische Updates blockieren (nur bei Verwendung eines gebrandeten Builds aus einer anderen Quelle)

Beenden Sie die Keystone-Updater-Agenten und blockieren Sie googleupdate.googleapis.com, sonst patcht sich der Test-Build über Nacht stillschweigend selbst. Bei Chrome-for-Testing-Builds nicht erforderlich.

5.4 Überprüfen, ob das Metal-Backend verwendet wird (kritisch)

Ohne Metal rendert Chrome WebGL in Software (SwiftShader) und das ANGLE-Metal-Backend wird nie berührt. Führen Sie in der Konsole der PoC-Seite Folgendes aus:

root@kitploit:~
const c = document.createElement('canvas'), g = c.getContext('webgl2');
const x = g.getExtension('WEBGL_debug_renderer_info');
console.log(g.getParameter(x.UNMASKED_RENDERER_WEBGL));
// Good:  contains "ANGLE Metal Renderer"
// Bad:   contains "SwiftShader" -> the vulnerable path is NOT being exercised

Sie können dies auch unter chrome://gpu bestätigen. Parallels-/VMware-Fusion-Gäste mit GPU-Virtualisierung funktionieren normalerweise; minimale QEMU/UTM-Setups fallen oft auf SwiftShader zurück.


6. Schritte zur Reproduktion

  1. Ziel isolieren. VM-Snapshot oder dediziertes macOS-Konto. Melden Sie sich im verwundbaren Build niemals an und aktivieren Sie keine Synchronisierung; behandeln Sie ihn als bewusst kompromittiert. (Die Auswirkung der CVE ist Codeausführung innerhalb einer Sandbox, die allein durch den Besuch einer Webseite ausgelöst wird [1].)
  2. Verwundbaren Build installieren gemäß §5 und prüfen, dass §5.4 besteht.
  3. PoC bereitstellen (entweder die Datei direkt öffnen oder):
    root@kitploit:~
    cd <repo dir>
    python3 -m http.server 8000
    # then browse to http://localhost:8000/cve-2026-9999-poc.html
    
  4. Fingerprint-Zeile prüfen, die beim Laden ausgegeben wird. Sie sollte den Build als unterhalb von 148.0.7778.216 und damit potenziell verwundbar melden [1]. Bei gepatchten Builds warnt der Harness, damit Sie keine Zyklen verschwenden.
  5. Auf 1) Run curated triggers klicken. Acht Shader belasten die in §2 beschriebenen Übersetzer-Muster (OOB-Konstantenindizierung, Integer-Überlauf bei Array-Größen, dynamische Matrix-Indizierung, Loop-Unrolling-Stress, Arrays-von-Arrays, Discard/Swizzle, Präprozessor-Randfälle, überdimensionierte UBOs). Achten Sie auf [!!]-Ergebnisse und Context-Loss-Ereignisse.
  6. Auf 2) Fuzz klicken. Mutierte GLSL-Shader werden in einer Schleife kompiliert, verlinkt, gezeichnet und zurückgelesen. Achten Sie im Protokoll auf CONTEXT LOST.
  7. Bei einem Absturz wird der auslösende Shader in localStorage gespeichert. Rufen Sie ihn ab:
    root@kitploit:~
    localStorage.getItem("cve20269999_poc_fs");      // crashing fragment shader
    localStorage.getItem("cve20269999_crashes");     // crash event log
    
  8. Minimieren und erneut testen Sie den abstürzenden Shader isoliert (5+ aufeinanderfolgende Läufe), um die Determiniertheit zu bestätigen.
  9. Grundursache bestätigen Sie mit einem ASAN-Build, bevor Sie etwas CVE-2026-9999 zuschreiben — siehe §8.

Ein Live-Snapshot eines verdächtigen Laufs ist auch unter chrome://gpu und in der macOS-Konsole (GPU-Prozess-Absturzberichte) sichtbar.


7. Interpretation der Ergebnisse / bekannte Fehlalarme

  • WEBGL_context_lost ≠ Schwachstelle. Der GPU-Watchdog von Chrome beendet langlebige Shader (der loop-unroll-dos-Auslöser und Fuzz-Iterationen mit riesigen Schleifenzahlen sind absichtlich langsam). Unterdrücken Sie das Rauschen: Reduzieren Sie SH_ITER, oder bestätigen Sie, dass sich ein Kandidaten-Absturz schnell reproduziert (< 1 s pro Iteration).
  • Ein echter Memory-Safety-Absturz sollte sich aus dem minimierten Shader deterministisch reproduzieren und in der Konsole eine eindeutige Absturzsignatur zeigen (z. B. EXC_BAD_ACCESS) statt einer Watchdog-Beendigung.
  • Nur ein ASAN-Bericht, der auf das ANGLE-Metal-Backend verweist, ist ein solider Beweis dafür, dass Sie diesen Fehler gefunden haben und nicht einen unabhängigen Treiber-Aussetzer.

8. Bestätigung der Grundursache: ASAN-Build (optional, aber dringend empfohlen)

Erstellen Sie eine verwundbare Revision von Chromium mit AddressSanitizer:

root@kitploit:~
fetch chromium
cd src
git checkout tags/148.0.7778.215          # last tag before the fix
gn gen out/asan --args='is_asan=true is_debug=false symbol_level=1 dcheck_always_on=true'
autoninja -C out/asan chrome

Führen Sie dann den minimierten abstürzenden Shader mit aktivierter Metal-API-Validierung aus:

root@kitploit:~
MTL_DEBUG_LAYER=1 out/asan/Chromium.app/Contents/MacOS/Chromium poc.html

Der ASAN-Trace wird die genaue ANGLE/Metal-Funktion benennen und bestätigen, ob der Absturz mit der Komponente der CVE übereinstimmt [1]. (Anschließend: Sobald der Fix-Commit für 148.0.7778.216 sichtbar ist, diffen Sie third_party/angle/src/libANGLE/renderer/metal/, um die wahre Grundursache zu ermitteln und den Fuzzing-Ansatz durch einen deterministischen Auslöser zu ersetzen.)


9. Einschränkungen

  • Es gibt keine öffentliche Grundursache und keinen öffentlichen PoC. Das Chromium-Issue ist eingeschränkt („Permissions Required") [1]; dieser Harness ist hypothesengetrieben.
  • Keine bekannte Ausnutzung in freier Wildbahn. Die SSVC-Anreicherung der CISA (2026-05-29) verzeichnet exploitation: none [1].
  • Nur auf die Sandbox beschränkte Auswirkung [1] — dieser PoC adressiert, selbst wenn er Codeausführung erzeugt, nur die Stufe des sandboxierten Prozesses einer echten Angriffskette.
  • Nur macOS als Zielplattform [1]; ziehen Sie keine Schlussfolgerungen aus Läufen auf anderen Plattformen.

10. Sicherheit & Rechtliches

Testen Sie nur auf Maschinen, die Ihnen gehören oder für die Sie ausdrücklich zum Testen autorisiert sind. Der Harness kompiliert absichtlich adversariale Shader, um einen Grafikprozess zum Absturz zu bringen — erwarten Sie GPU- Prozess-Beendigungen. Halten Sie den verwundbaren Browser-Build von Produktionsnetzwerken fern.


11. Referenzen

[1] NVD — CVE-2026-9999: https://nvd.nist.gov/vuln/detail/CVE-2026-9999 * Sicherheitshinweis des Herstellers (Chrome-Releases-Blog, Stable-Channel-Update): https://chromereleases.googleblog.com/2026/05/stable-channel-update-for-desktop_0877304591.html * Chromium-Issue 513364480 (zugriffsbeschränkt): https://issues.chromium.org/issues/513364480

Tool herunterladen