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-65343-e7eb2ed — PoC für CVE-2026-65343, einen AppleKeyStore-Kernel-OOB-Read auf iOS 26.6, der Kernel-Pointer leakt, um KASLR aus einer sandboxed App über DYLD_INTERPOSE ACM-Handle-Capture zu umgehen. | Kitploit
Tools/GitHubGitHub/hidayat-tanjung/cve-2026-65343-e7eb2ed
iOS-SicherheitSpeicherforensikSchwachstellenanalyseExploitationMobile App-PenetrationstestsReverse EngineeringMobile SicherheitPapers & ForschungBinary-Exploitation

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
GitHubhidayat-tanjung/cve-2026-65343-e7eb2ed

CVE-2026-65343-e7eb2ed

PoC für CVE-2026-65343, einen AppleKeyStore-Kernel-OOB-Read auf iOS 26.6, der Kernel-Pointer leakt, um KASLR aus einer sandboxed App über DYLD_INTERPOSE ACM-Handle-Capture zu umgehen.

Repository anzeigen
vor 17h 47mNoch nicht geprüft
Teilen

CVE-2026-65343 — AppleKeyStore OOB-Leser (KASLR-Umgehung)

Komponente: AppleKeyStore Kernel-Erweiterung — _LibSer_SEPControl_Deserialize
Betroffen: iOS / iPadOS 26.6 (23G71) und früher
Behoben in: iOS / iPadOS 26.6.1 (23G83)
Typ: Out-of-Bounds-Leser bei der Deserialisierung von SEP-Steuernachrichten
Auswirkung: Kernel-Zeiger-Leak → KASLR-Umgehung aus einem sandboxed, entitlement-freien Prozess (über DYLD_INTERPOSE ACM-Handle-Erfassung)


Credits

Entdeckt von: Drinor Selmanaj (Sentry), Surya Narayan Kushwaha
(gemäß Apple Security Advisory — iOS 26.6.1)


Ursache

_LibSer_SEPControl_Deserialize in der AppleKeyStore Kernel-Erweiterung veröffentlicht ein (payload_ptr, declared_length)-Paar aus einem ACM (Credential Manager)-Nachrichtenpuffer an den Userspace via , .

copyout()
ohne zu validieren, dass declared_length ≤ remaining

Durch Angabe von declared_length = 0x800 kopiert der Treiber etwa 0x7E8 Bytes über das Ende des Kernel-ACM-Nachrichtenpuffers hinaus — und liest dabei in angrenzende Kernel-Heap-Allokationen hinein. Diese angrenzenden Bereiche enthalten Kernel-Zeiger (0xfffffff0xxxxxxxx), die zur Berechnung des KASLR-Slides verwendet werden können.

root@kitploit:~
; _LibSer_SEPControl_Deserialize (betroffener Pfad, 26.6 / 23G71)
ldr  w2, [acm_msg + declared_length_offset]  ; benutzergesteuert 0x800
; KEINE Prüfung: w2 <= (acm_msg_end - payload_ptr) ← FEHLT
bl   copyout                                  ; kopiert w2 Bytes in den Userspace

ACM-Handle-Erfassung (DYLD_INTERPOSE)

Direktes IOServiceOpen("AppleKeyStore") wird durch die Sandbox bei sideloaded Apps blockiert. Der Security.framework Secure Enclave Key-Signing-Pfad ruft jedoch IOConnectCallMethod in-process mit einem echten ACM-Session-Handle auf.

Der PoC verwendet einen __DATA,__interpose-Hook (der zur dyld-Ladezeit ausgeführt wird, bevor __DATA_CONST schreibgeschützt wird — fishhook wird auf iOS 26 durch den DATA_CONST-Schutz blockiert):

  1. Interpose-Erfassungsflag aktivieren
  2. SecKeyCreateRandomKey(kSecAttrTokenIDSecureEnclave) → SecKeyCreateSignature() → in-process IOConnectCallMethod wird mit einem echten ACM-Handle ausgelöst
  3. (conn, handle[16]) erfassen
  4. Mit declared_length = 0x800 über 163 AKS-Selektoren replizieren
  5. Ausgabe auf 0xfffffff0xxxxxxxx Kernel-Zeiger scannen → KASLR-Slide berechnen

PoC-Verhalten

poc_aks_oob.m implementiert die vollständige ACM-Handle-Erfassung und OOB-Probe-Kette:

  • Erstellt einen Secure Enclave P-256-Schlüssel (kSecAttrAccessibleAfterFirstUnlock, ohne Biometrie)
  • Signiert eine 32-Byte-Nachricht, um den in-process AKS-IOKit-Aufruf auszulösen
  • Repliziert mit declared_length = 0x800 über alle 163 AKS-Selektoren
  • Gibt alle gefundenen Kernel-Zeiger aus bei KPTR @+XXXX = 0xfffffff0YYYYYYYY
  • Versucht, den KASLR-Slide aus einem bekannten AKS-Symboloffset zu berechnen

Wenn die SE-Schlüsselsignatur über secd XPC statt in-process geleitet wird, verwendet die Fallback-Probe ein Null-Handle (bestätigt die Erreichbarkeit des OOB-Pfads; alle Selektoren werden die ACM-Validierung fehlschlagen, aber der VNOP-Pfad ist bestätigt).


iOS 26 Hinweis: fishhook blockiert

Unter iOS 26 wird __DATA_CONST (das die GOT enthält) schreibgeschützt gemappt, bevor jeglicher in-process Code ausgeführt wird. Laufzeit-GOT-Schreibvorgänge (wie sie von fishhook verwendet werden) lösen KERN_PROTECTION_FAILURE → SIGBUS aus. DYLD_INTERPOSE via __DATA,__interpose funktioniert, weil dyld die Interpose-Tabelle zur Image-Ladezeit verarbeitet, bevor der Kernel den __DATA_CONST-Schutz durchsetzt.


Anforderungen

  • iOS 26.6 (23G71) oder früher
  • Secure Enclave-Zugriff (kSecAttrTokenIDSecureEnclave) — für jede sideloaded App ohne Entitlements verfügbar
  • Keine Sandbox-Umgehung erforderlich: Der AKS-IOKit-Aufruf erfolgt in-process über Security.framework

Build

root@kitploit:~
# Xcode project — link Security.framework and Foundation.framework
clang -arch arm64 \
      -isysroot $(xcrun --sdk iphoneos --show-sdk-path) \
      -framework Security -framework Foundation \
      -o poc poc/poc_aks_oob.m

codesign -s "Apple Development" --entitlements ent.plist poc

Minimale Entitlements (ent.plist):

root@kitploit:~
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict>
    <key>keychain-access-groups</key>
    <array><string>$(AppIdentifierPrefix)com.research.poc65343</string></array>
</dict></plist>

Zeitleiste

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

Referenzen

  • Apple Security Advisory — iOS 26.6.1

CVE-2026-65343-e7eb2ed

Tool herunterladen