
ANE-Kernel-Exploit mit Lese-/Schreibzugriff für iOS 15 und macOS 12
WeightBufs ist ein Kernel-Lese-/Schreib-Exploit für alle Apple-Geräte mit Neural-Engine-Unterstützung.
Bugs und Exploit von @simo36, weitere Details zu den Schwachstellen und den Ausnutzungstechniken findest du in meinen Präsentationsfolien bei POC.
Der Exploit verlässt sich nicht auf fest codierte Adressen oder Offsets und sollte auf macOS12 bis 12.4 und *OS 15 bis 15.5 unverändert (AS IS) funktionieren.
Die Kernel-Schwachstellen betreffen alle iOS-15-Versionen (bis 16.0), der Sandbox-Escape wurde jedoch in iOS 15.6 behoben. Daher ist es erforderlich, die Exploit-Kette zu unterbrechen und einen weiteren Sandbox-Escape zu finden, damit unter iOS 15.6/15.7 wieder alles funktioniert. Obwohl ich einen weiteren Sandbox-Escape habe, der bis iOS 16.1 funktioniert, bin ich mir nicht sicher, ob die Kernel-Exploit-Techniken unter iOS 15.6+ noch anwendbar sind.
Der Exploit verkettet 4 Schwachstellen, die ich unabhängig entdeckt und an Apple gemeldet habe:
CVE-2022-32845 : Bypass der Signaturprüfung von aned für model.hwx.CVE-2022-32948 : DeCxt::FileIndexToWeight() OOB Read aufgrund fehlender Array-Index-Validierung.CVE-2022-42805 : ZinComputeProgramUpdateMutables() potenzieller beliebiger Read durch Integer-Überlauf.CVE-2022-32899 : DeCxt::RasterizeScaleBiasData() Buffer-Unterlauf aufgrund eines Integer-Überlauf-Problems.Es gibt einige Situationen, in denen der Exploit fehlschlagen kann:
MUTK. Der Exploit erkennt den Fehler jedoch frühzeitig und verhindert so einen Absturz des Geräts. Es genügt, den Exploit erneut auszuführen, und beim zweiten Versuch sollte er erfolgreich sein.DEBUG_EXPLOIT_STAGE_2_KERN_PANIC und DEBUG_EXPLOIT_STAGE_3_KERN_PANIC, um weitere Details zu erfahren.WeightBufs enthält Header-Dateien des AppleNeuralEngine-Frameworks, die von Elias Limneos via classdump-dyld 1.0 erzeugt wurden.
WeightBufs wird unter der MIT-Lizenz veröffentlicht.