Checkm8-exploit voor Apple-apparaten A5-A11 op iOS 12-iOS 16

Op 27 september 2019 bracht axi0mX checkm8 (lees: "checkmate") uit, een permanente, niet te patchen bootrom-exploit voor honderden miljoenen iOS-apparaten. In 2022 draait de exploit nog steeds op moderne iOS 15- en iOS 16-jailbreaks voor Apple-apparaten met A9- tot en met A11 SoC.
Wat is Checkm8?
Checkm8 is een bootrom-exploit met CVE-ID CVE-2019-8900 die gebruikt wordt om ongetekende code uit te voeren op iOS, iPadOS, tvOS en watchOS, met processors tussen de A5 en A11. Het wordt vooral gebruikt om Apple-apparaten te jailbreaken en vormt de kern van de populaire checkra1n-jailbreak.
Jailbreaks gebaseerd op checkm8 zijn semi-tethered jailbreaks, omdat de exploit gebruikmaakt van een use-after-free-fout in de USB DFU-stack. Het wordt gebruikt door ipwndfu, Fugu14, checkra1n, Palera1n, Blizzard Jailbreak, ayakurume en een aantal andere tools om iOS 12 tot en met iOS 17 te exploiteren.
Met behulp van de checkm8-exploit kunt u de code alleen uitvoeren wanneer u uw iPhone of iPad in DFU-modus via een USB-kabel op de computer aansluit. Met checkra1n kunt u iOS 12 tot en met iOS 14 jailbreaken met ondersteuning voor tweaks en is er nooit een update uitgebracht met ondersteuning voor iOS 15.

De Checkm8 bootrom-exploit kan ook code uitvoeren op iOS 15. Nebula, de ontwikkelaar achter Palera1n Jailbreak, bracht de eerste iOS 15-jailbreak uit op basis van Checkm8 met ondersteuning voor tweak-injectie op iOS 15.0-15.3.1. Het werkt ook tot iOS 15.7 op A9-A11-apparaten zonder tweaks.
Hoe werkt het? In de programmeertaal C moet de functie malloc NULL retourneren als er geen geheugen van de gevraagde grootte kan worden toegewezen. De aanroeper moet controleren of de geretourneerde pointer NULL is en de fout afhandelen. In de S5L8920 bootrom is deze functie niet correct geïmplementeerd. Wanneer er geen geheugen kan worden toegewezen, retourneert deze in plaats van NULL een pointer naar geheugenadres 0x8.
Checkm8 maakt gebruik van deze kwetsbaarheid en maakt het mogelijk om code uit te voeren op iOS, iPadOS, tvOS en watchOS. Deze bug zit op alle Apple A5- en A11-apparaten en kan niet worden opgelost. iOS 16 is daarom kwetsbaar en kan op ondersteunde apparaten worden gejailbreakt.
Let op: De meeste generaties iPhones en iPads zijn kwetsbaar en kunnen worden misbruikt met checkm8: van de iPhone 4S (A5-chip) tot de iPhone 8 en iPhone X (A11-chip).
Nieuwe apparaten zoals de iPhone 14, iPhone 14 Pro, iPhone 13 Mini, iPhone 13, iPhone 13 Pro, iPhone 13 Pro Max, iPhone 12, iPhone 12 Pro, iPhone 12 Mini, iPhone 12 Pro Max, iPhone 11 Pro, iPhone 11, iPhone 11 Pro Max, iPhone XR, iPhone XS Max en iPhone XS zijn checkm8-proof.
axi0mX, de ontwikkelaar van de checkm8-exploit, heeft de broncode vrijgegeven onder een GPL-3.0-licentie, waardoor implementatie voor tools van derden mogelijk is. Bovendien maakt de checkm8-exploit deel uit van zijn ipwndfu open-source jailbreaktool voor iOS-apparaten, geschreven in Python en Assembly.
Bovendien wordt de checkm8-exploit voor A5-A11 ook geïmplementeerd door het SSH Ramdisk Script om een SSH-ramdisk aan te maken en op te starten op checkm8-apparaten. Deze tool kan worden gebruikt om IPA-bestanden permanent te installeren op standaard iOS-apparaten. De TrollStore IPA Installer is op deze manier gesideload.
checkm8 Broncode
De checkm8-exploit is geschreven in Assembly. Hieronder vindt u de broncode van de checkm8-exploit voor alle arm64-apparaten, waaronder alle varianten van de iPhone 5S, iPhone 5S, iPhone SE, iPhone 7, iPhone 8 en iPhone X. De broncode van checkm8 is gepubliceerd via de jailbreak van ipwndfu.
.text .pool .set PAYLOAD_OFFSET, 0xBAD00006 .set PAYLOAD_SIZE, 0xBAD00007 .set PAYLOAD_DEST, 0xBAD00005 .set PAYLOAD_PTR, 0xBAD00008 .set gUSBSerialNumber, 0xBAD00002 .set gUSBSRNMStringDescriptor, 0xBAD00004 .set gUSBDescriptors, 0xBAD00001 .set usb_create_string_descriptor, 0xBAD00003 .global _main _main: MOV X19, #0 // HACK: do not free this usb request STP X29, X30, [SP,#-0x10]! MOV X29, SP LDR X0, =gUSBDescriptors LDP X0, X1, [X0] ADR X2, USB_DESCRIPTOR LDP X3, X4, [X2] STP X3, X4, [X0] STP X3, X4, [X1] LDP X3, X4, [X2,#0x10] STP X3, X4, [X0,#0x10] STP X3, X4, [X1,#0x10] LDR X0, =gUSBSerialNumber find_zero_loop: ADD X0, X0, #1 LDRB W1, [X0] CBNZ W1, find_zero_loop ADR X1, PWND_STRING LDP X2, X3, [X1] STP X2, X3, [X0] LDR X0, =gUSBSerialNumber LDR X1, =usb_create_string_descriptor BLR X1 LDR X1, =gUSBSRNMStringDescriptor STRB W0, [X1] LDR X0, =PAYLOAD_DEST ADR X1, _main LDR X2, =PAYLOAD_OFFSET ADD X1, X1, X2 MOV X2, #0 LDR X3, =PAYLOAD_SIZE LDR X4, =PAYLOAD_PTR ADD X5, X0, #0x18 STR X5, [X4] copy_loop: LDP X3, X4, [X1] STP X3, X4, [X0] LDP X3, X4, [X1,#0x10] STP X3, X4, [X0,#0x10] LDP X3, X4, [X1,#0x20] STP X3, X4, [X0,#0x20] LDP X3, X4, [X1,#0x30] STP X3, X4, [X0,#0x30] DC CIVAC, X0 DMB SY ADD X0, X0, #0x40 ADD X1, X1, #0x40 ADD X2, X2, #0x40 CMP X2, X3 B.CC copy_loop SYS #0, c7, c5, #0 DSB SY ISB LDP X29, X30, [SP],#0x10 RET USB_DESCRIPTOR: .word 0x190209, 0x80050101, 0x409fa, 0x1fe0000, 0x21070000, 0xa01, 0x8, 0x0 PWND_STRING: .asciz " PWND:[checkm8]"
Checkm8 Jailbreaks
Sinds de releasedatum is de checkm8-exploit door veel tools gebruikt om iOS te jailbreaken. Sommige zijn gepubliceerd en klaar voor gebruik, andere zijn nog in ontwikkeling. Alleen Palera1n voor iOS 15 stelt je in staat om tweaks te installeren; andere tools zijn nog niet uitgebracht of zijn alleen nuttig voor ontwikkelaars.
- palera1n voor iOS 15.0 – iOS 17.
- Palera1n Windows voor iOS 15.0 – iOS 17.
- WinRa1n voor iOS 12 – iOS 17.
- checkra1n voor iOS 12 – iOS 14.8.1.
- iRa1n voor iOS 12 – iOS 14.8.1.
- Fugu14 voor iOS 14 – iOS 14.8.1.
- ipwndfu voor iPhone 3GS.
- kok3shi15 voor iOS 15.
- kok3shi16 voor iOS 16 – iOS 16.2.
- Blizzard Jailbreak voor iOS 15 en iOS 16.
- ayakurume voor iOS 16.
- checkn1x voor iOS 12 – iOS 14.8.1.
- Odysseyn1x voor iOS 12 – iOS 14.8.1.
- Project36 voor iOS 15.
- checkra1n voor Windows – iOS 12 en hoger iOS 14
checkm8 iCloud Bypass-tools
De checkm8-exploit speelt ook een belangrijke rol in de ontwikkeling van alle iCloud Bypass-tools waarmee gebruikers het activeringsscherm kunnen verwijderen en toegang kunnen krijgen tot het startscherm van het apparaat in iOS 12 tot en met iOS 16. De meeste tools vereisen een jailbreak met palera1n of checkra1n en werken niet met een simkaart. Wi-Fi werkt echter wel, zodat u apps kunt sideloaden en toegang hebt tot de App Store.
- FrostByte voor iOS 15 – iOS 16.5.
- iSkip voor iOS 15 – iOS 16.
- Blackw0rm voor iOS 12 – iOS 14.
- GodsHand voor iOS 13 – iOS 16.
- Euphoria Activator12 voor iOS 12 – iOS 14.
- Goldra1n voor iOS 15 – iOS 16.
- GreenSn0w voor iOS 12 – iOS 12.5.6.
- BlackRa1n voor iOS 15.
- DarkRa1n voor iOS 15 – iOS 16.
- iPass voor iOS 15 – iOS 16.
Comments
J 2 maanden geleden
Hi Kuba,
My device is passcode locked (my girlfriend forgot the code). I need to reset it and I have limited internet data. I downloaded a beta IPSW but idevicerestore can only use it if I have your bootrom exploit in place. I am on Linux. Is it possible to bootrom exploit the locked phone? It's iPhone 13.Thank you!
qbap 1 maand geleden
You can't. There is no working solution for the iPhone 13. Apple patched all exploits.