0x36/weightBufs
GitHub: 0x36/weightBufs
Stars: 302 | Forks: 25
# WeightBufs:
The exploit doesn't rely on any hardcoded address or offset, and it should work AS IS on macOS12 up to 12.4 and *OS 15 up to 15.5.
The kernel vulerabilties affect all iOS 15 versions (up to 16.0), however the sandbox escape has been fixed on iOS 15.6. As a result, breaking the exploit chain and another sandbox escape is required to get things working again on iOS 15.6/15.7.
Although I have another sandbox escape that works up to iOS 16.1, I'm not sure if the kernel exploit techniques are still usable on iOS 15.6+.
# Vulnerabilities:
The exploit chains 4 vulnerabilities which I independently discovered and reported to Apple:
* `CVE-2022-32845` : aned signature check bypass for model.hwx.
* `CVE-2022-32948` : DeCxt::FileIndexToWeight() OOB Read due to lack of array index validation.
* `CVE-2022-42805` : ZinComputeProgramUpdateMutables() potential arbitrary read due to Integer overflow issue.
* `CVE-2022-32899` : DeCxt::RasterizeScaleBiasData() Buffer underflow due to integer overflow issue.
# Tested devices:
* iPhone12 Pro (iPhone13,3) with iOS 15.5.
* iPad Pro (iPad8,10) with iPadOS 15.5.
* iPhone11 Pro (iPhone12,3) with iOS 15.4.1.
* MacBookAir10,1 M1 with macOS 12.4.
# Notes:
There are some situations where the exploit may fail:
- The target *IOSurface* or *IOSurfaceClient* object address is upper to the mutable kernel buffer `MUTK`,however the exploit detects the failure early, preventing the device from crashing. It's sufficient to run the exploit again and it should succeed on the second attempt.
- If the exploit frequently crashes the device at stage 2 or stage 3, that means it must be tuned to the tested device, make sure to read `DEBUG_EXPLOIT_STAGE_2_KERN_PANIC` and `DEBUG_EXPLOIT_STAGE_3_KERN_PANIC` for more details.
- The target device needs to be in an idle state, and it's preferable to reboot it before using the exploit, even better if the airplane mode is turned on.
# Credit
WeightBufs includes AppleNeuralEngine framework header files generated by Elias Limneos via classdump-dyld 1.0.
# License
WeightBufs is released under the MIT license.