Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-5281-CVE-2026-11057-fullchain — Vollständige Exploit-Kette für Android Chromium, die den CVE-2026-11057-Informationsleck und den CVE-2026-5281-Use-after-Free kombiniert, um eine Vtable-Übernahme und beliebige Codeausführung zu erreichen. | Kitploit
Tools/GitHubGitHub/jaf0rk/cve-2026-5281-cve-2026-11057-fullchain
Android-SicherheitExploit-FrameworksSchwachstellenanalyseExploitationWebanwendungs-ExploitationMobile SicherheitBinary-Exploitation
GitHub

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
jaf0rk/cve-2026-5281-cve-2026-11057-fullchain

CVE-2026-5281-CVE-2026-11057-fullchain

Vollständige Exploit-Kette für Android Chromium, die den CVE-2026-11057-Informationsleck und den CVE-2026-5281-Use-after-Free kombiniert, um eine Vtable-Übernahme und beliebige Codeausführung zu erreichen.

Repository anzeigen
40vor 2 MonatenNoch nicht geprüft

CVE-2026-5281+CVE-2026-11057 Android Fullchain

Gerät

Pixel 7 Android 16 ARM64

Chromium-Version

commit 994c846bbd7a35241ba7c08158c13d66412a6993 (HEAD -> 146.0.7680.111, tag: 146.0.7680.111)
Author: Roger McFarlane <[email protected]>
Date:   Mon Mar 9 12:48:07 2026 -0700

Beschreibung

Ausnutzungsansatz

Dieses Repository kombiniert CVE-2026-11057 (nicht initialisierter Glyph-Bildspeicher in Skia) und CVE-2026-5281 (Use-after-free in DeviceInfo des Dawn-Wire-Servers) zu einer vollständigen Kette. Alle Änderungen erfolgen rendererseitig; der Code des GPU-Prozesses bleibt unverändert:

  1. Info-Leak (CVE-2026-11057) — Löse einen nicht initialisierten Glyph-Bildpuffer über Canvas-Textrendering aus, lies Zeiger aus dem Heap des GPU-Prozesses zurück, validiere sie mit arithmetischen Läufen, leite die Basis des PartitionAlloc-Pools ab und berechne das gefälschte Server-Ziel M = POOL + 0x202A08000 (kalibrierter Offset).

  2. CC-Spray — createBuffer(label="CCM:<m>:<n>") löst die Injektion von 3000 unvollständigen ChunkedCommands aus (10KB-Bucket, remainingSize=1, am Leben gehalten in mChunkedCommands des Wire-Servers). Die Payload füllt den Bereich um M mit einem gefälschten Server, der für Android arm64 ausgelegt ist: MutexProtected-vptr bei +0xB20, ChunkedCommandSerializer bei +0xB50/+0xB58, gefälschter CommandSerializer/vtable bei +0xC00/+0xD00.

  3. 5281-Trigger + Belegen — queue.writeBuffer(buffer, 0x414141, ...) ruft zuerst Unregister(Device) auf, um das 16-Byte-DeviceInfo freizugeben, injiziert dann einen 16-Byte-Beleg-ChunkedCommand, um diesen Slot zurückzugewinnen und info->server mit M zu überschreiben, und löst schließlich einen Validierungsfehler mit einem Out-of-Bounds-Offset aus.

  4. Dangling-Callback → Vtable-Hijack — Der Callback für nicht abgefangene Fehler dereferenziert info->server = M (gefälschter Server): Die genullten Mutexe werden passiert, die Ausführung erreicht OnUncapturedError → SerializeCommand, und der indirekte Aufruf über die relative Vtable trifft unsere gefälschte Vtable, was pc = fake_vtable + kontrollierter int32-Offset ergibt, demonstriert durch pc = 0x7641414141.

Hinweis: Chromium unter Android arm64 verwendet relative Vtables (-fexperimental-relative-c++-abi-vtables); Vtable-Einträge sind 32-Bit-relative Offsets statt absoluter Funktionszeiger, daher verwendet der PoC einen kontrollierten int32-Offset als Marker am Punkt des Vtable-Hijacks.

Auf dem Testgerät erreicht die vollständige Kette den Vtable-Hijack-Absturz mit einer Erfolgsrate von nahezu 100 %; die Leak-Stufe kann gelegentlich mehrere automatische Neuladevorgänge erfordern, bevor sie erfolgreich ist.

Dateirollen

  • SkStrike.cpp.patch — CVE-2026-11057-Leak-Trigger. FlattenGlyphsByType() schreibt die Strike-Payload so um, dass der GPU-Prozess ein SkGlyph mit fImage == nullptr erzeugt und schließlich einen nicht initialisierten Bildpuffer liest, um Heap-Zeiger zu leaken.
  • Device.cpp.patch — CC-Spray des Dawn-Wire-Clients. APICreateBuffer() parst das Label CCM:, baut die gefälschte Android-arm64-Server-Payload auf und injiziert N unvollständige ChunkedCommands, die im GPU-Prozess am Leben bleiben.
  • ApiProcs.cpp.patch — CVE-2026-5281-Trigger + Belegen. Beim Magic-Offset 0x414141 von QueueWriteBuffer ruft es Unregister(Device) auf, um DeviceInfo freizugeben, injiziert einen 16-Byte-ChunkedCommand, um den Slot zurückzugewinnen und info->server = M zu setzen, und fährt dann mit einem Out-of-Bounds-Offset fort, um den Dangling-Callback auszulösen.
  • exploit.html — Seiten-Orchestrierung: Leak-Primitive (groom/draw/readCell/verifyRuns/derivePoolBase), CC-Spray und ein eigenständiger exploit5281()-Trigger; bei einem Fehler bereinigt es den Spray-Zustand und lädt neu, damit sich die Stufen nicht gegenseitig beeinflussen.

Offenlegungsumfang

Dieses ExP wird nur bis zum Schritt des Vtable-Hijacks offengelegt (kontrolliertes indirektes Aufrufziel, pc = base+0x41414141). Die Schritte ab dem kontrollierten Sprung sowie die RCE-Implementierung bleiben vertraulich und sind nicht in diesem Repository enthalten.

Real-World-Exploit vs. ursprünglicher PoC

Mein Exploit unterscheidet sich in einem entscheidenden Punkt vom Ansatz des ursprünglichen Melders. Der ursprüngliche Exploit wurde erreicht, indem der PartitionAlloc-Quellcode im GPU-Prozess modifiziert wurde, um die Adressrandomisierung zu deaktivieren. Dieser Ansatz eignet sich nur für Proof-of-Concept-Zwecke. Im Gegensatz dazu kombiniert mein Exploit eine Informationsoffenlegungsschwachstelle zur Umgehung der Adressrandomisierung und ermöglicht so einen voll funktionsfähigen Exploit, der in realen Umgebungen funktioniert.

Build args.gn

# Set build arguments here. See `gn help buildargs`.
is_official_build = true
is_debug = false
symbol_level = 0
v8_symbol_level = 0
blink_symbol_level = 0
is_component_build = false  
proprietary_codecs = true   
ffmpeg_branding = "Chrome"  
dcheck_always_on =false
optimize_webui = true
android_static_analysis = "off"
target_os = "android"
target_cpu = "arm64"

# Disable PartitionAllocEventuallyZeroFreedMemory
disable_fieldtrial_testing_config = true

treat_warnings_as_errors = false

Reproduktion

  1. cd third_party/dawn
  2. git apply ApiProcs.cpp.patch
  3. git apply Device.cpp.patch
  4. cd ../skia
  5. git apply SkStrike.cpp.patch
  6. Chromium bauen
  7. Chrome auf einem Android-Gerät öffnen und exploit.html ausführen
  8. adb logcat | grep DEBUG auf dem PC ausführen

Hinweis

  1. Achten Sie auf die PartitionAllocEventuallyZeroFreedMemory-Falle. Wenn sie aktiviert ist, werden freigegebene Speicherbereiche schließlich mit Nullen überschrieben. Diese Funktion ist standardmäßig deaktiviert. In offiziellen Stable-Builds wird sie von Googles Finch (serverseitiger Field Trial) gesteuert, und Google aktiviert sie in der Regel nicht für die allgemeine Bevölkerung. Sie wird jedoch häufig in lokalen / inoffiziellen Builds und in den offiziellen Dev-/Canary-Kanälen aktiviert (insbesondere wenn Field-Trial-Testkonfigurationen aktiv sind). Dies ist eine häufige Stolperfalle bei der Entwicklung oder beim Testen von Exploits gegen Nicht-Stable-Builds.
  2. Greifen Sie über die Loopback-Adresse 127.0.0.1 auf exploit.html zu. Andernfalls wird HTTP als nicht vertrauenswürdig behandelt und WebGPU funktioniert nicht.
  3. In diesem Anwendungsfall funktioniert das Heap-Layout des Leak-Primitives besonders gut auf dem Pixel 7 und benötigt nur 1–10 Sekunden. Es funktioniert auch auf dem Pixel 9, wobei der Vorgang jedoch 2–3 Minuten dauert. Das Heap-Layout kann zwar für eine breitere Kompatibilität mit den meisten Pixel-Geräten weiter optimiert werden – und solche Verbesserungen wurden bereits identifiziert –, diese Optimierungen liegen jedoch außerhalb des Rahmens dieses Experiments und werden hier nicht behandelt.
Tool herunterladen