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-64788 — Proof-of-Concept für CVE-2026-64788, eine Use-after-Free-Schwachstelle in der IOGPUFamily-Kernel-Erweiterung unter iOS 26.6, die die Ausnutzung über die Erstellung von Metal-Texturen und Heap-Spraying demonstriert. | Kitploit
Tools/GitHubGitHub/bytev0rtex/cve-2026-64788
iOS-SicherheitSchwachstellenanalyseExploitationReverse EngineeringMobile SicherheitBinary-Exploitation
GitHubbytev0rtex/cve-2026-64788

CVE-2026-64788

Proof-of-Concept für CVE-2026-64788, eine Use-after-Free-Schwachstelle in der IOGPUFamily-Kernel-Erweiterung unter iOS 26.6, die die Ausnutzung über die Erstellung von Metal-Texturen und Heap-Spraying demonstriert.

Repository anzeigen
1vor 9h 40mNoch 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-64788 — Use-After-Free in IOGPUFamily

Komponente: IOGPUFamily-Kernel-Erweiterung (com.apple.iokit.IOGPUFamily)
Betroffen: iOS / iPadOS 26.6 (23G71) und früher
Behoben in: iOS / iPadOS 26.6.1 (23G83)
Typ: Use-After-Free in IOGPUDevice::create_resource_iosurface
Auswirkung: Kernel-Speicherkorruption; UAF-Dereferenzierung auf A14 (iPhone 12) bestätigt


Credits

Entdeckt von: f00l (@PPPF00L), 3ndy1 (@_3ndy1), Minghao Lin (@Y1nkoc), 云散花折, Arjanit Isufi
(laut Apple-Sicherheitshinweis — iOS 26.6.1)


Grundursache

IOGPUDevice::create_resource_iosurface weist ein IOGPUSysMemory-Objekt (~0x100 Bytes, -Zone) zu und registriert es in der IOSurface-Ressourcentabelle des Geräts. Vor der Rückkehr wird über eine Dimensions-Überlaufprüfung ausgelöst. Der Überlaufpfad verzweigt zu einer Fehlerrückgabe , sodass ein aktiver Eintrag in der Ressourcentabelle zurückbleibt, der auf freigegebenen Speicher verweist.

kalloc.256
ADDS width+height → b.hs
ohne das Objekt freizugeben
root@kitploit:~
create_resource_iosurface:
  kalloc(0x100) → obj          ; IOGPUSysMemory zugewiesen
  table[new_id] = obj           ; mit einer Referenz registriert
  ADDS w_result, w_width, w_height
  b.hs error_path               ; ← Überlauf: springt hierher
error_path:
  ; Objekt NICHT freigegeben, Tabelleneintrag NICHT gelöscht
  return kIOReturnInvalid

Der veraltete Tabelleneintrag bleibt bestehen, bis dieselbe Ressourcen-ID wiederverwendet oder das Gerät geschlossen wird.


UAF-Dereferenzierung

IOGPUDevice::set_resource_purgeable(id) sucht die veraltete ID über get_resource_by_id(), findet den verwaisten Eintrag und greift nicht-virtuell darauf zu:

OffsetOperationBeschreibung
+0x010cldaddl w9(-4), w8, [obj+0x24]Atomares Dekrement von [obj+0x24]; alter Wert → w8
+0x0128cbz w8, skip; ldr x1, [obj+0x28]Wenn alter [+0x24] != 0: [obj+0x28] als Argument für IOGPUMemory::setAllocation laden
+0x0134ldr x0, [obj+0x10][obj+0x10] als IOCommandGate-Argument laden; cbz → skip, wenn 0

PoC-Verhalten

Der PoC löst die UAF über Metals newTextureWithDescriptor:iosurface:plane: mit manipulierten Überlauf-Dimensionen aus. Vor der UAF-Dereferenzierung:

  • 300× MTLBuffer(0x100, StorageModeShared) gesprayt, um den freigegebenen kalloc.256-Slot zu füllen
  • Spray-Daten setzen [+0x10]=0, [+0x24]=0, [+0x28]=0 → Call2 und Call3 werden sicher übersprungen
  • UAF-Dereferenzierung erfolgt auf angreiferkontrolliertem Heap-Speicher

Trigger-Erkennung: set_resource_purgeable auf eine nicht existierende Ressource gibt 0xe00002c2 zurück. Nachdem die UAF + Spray den Slot zurückerobert hat, gibt derselbe Aufruf 0xe0002be zurück (Ressource gefunden, Call1 ausgelöst) — was bestätigt, dass der veraltete Eintrag mit unseren Spray-Daten verarbeitet wird.


Hinweise zur Ausnutzung unter iOS 26

Die Zonen-Sequestrierung in iOS 26 legt freigegebene IOGPUSysMemory-Objekte zurück in eine typstabile Zonen-Freiliste. Sowohl [obj+0x10] (IOMemoryDescriptor) als auch [obj+0x18] (IOGPUDevice) halten externe Retain-Zähler und bleiben nach der Freigabe des Objekts aktiv. Daher wird completeMemory() immer auf gültigen ivar-Daten ausgeführt — die UAF-Dereferenzierung ist bestätigt, aber eine Kernel-r/w-Primitive allein über diesen Pfad ist unter iOS 26 blockiert, ohne eine sekundäre Primitive zur Durchbrechung der Zonen-Sequestrierung.


Voraussetzungen

  • iOS 26.6 (23G71) oder früher
  • Apple-A-Serie-GPU (getestet: A14 Bionic, iPhone 12)
  • Keine Entitlements erforderlich — aus jeder Metal-fähigen Sandbox-App erreichbar

Build

root@kitploit:~
clang -arch arm64 -framework Metal -framework IOSurface \
      -framework IOKit -framework Foundation \
      -o poc poc/poc_iogpu_uaf.m

Oder in Xcode öffnen, ein gültiges Signing-Team festlegen und auf dem Gerät ausführen.


Zeitplan

DatumEreignis
2026-08-17iOS 26.6.1 mit Fix veröffentlicht
2026-08-17Apple-Credits im Sicherheitshinweis veröffentlicht

Referenzen

  • Apple-Sicherheitshinweis — iOS 26.6.1
  • Full-Disclosure-Beitrag
Tool herunterladen