Kecacatan ini terletak pada pengawal USB Synopsys DWC2 yang dibina ke dalam cip . Inilah rantai teknikal:
Ketidakpadanan penunjuk penimbal gelang: Pengawal menyimpan sehingga tiga paket USB Setup berturut-turut dalam penimbal DMA. Selepas setiap tulis, ia menambah penunjuk perkakasan mengikut saiz data. Selepas paket ketiga, ia menetapkan semula dengan mengurangkan penunjuk sebanyak 24 bait tetap .
Helah paket bersaiz kecil: Pengawal menerima paket yang lebih kecil daripada 8 bait standard tetapi sentiasa menyimpannya dalam cebisan 4 bait. Apabila paket kecil diterima, kenaikan penunjuk (data sebenar yang ditulis) tidak sepadan dengan pengurangan tetap 24 bait, mewujudkan kekurangan penimbal (buffer underflow) sebanyak 12 bait — penunjuk berjalan ke belakang melalui memori .
Tindanan memori: Ini membolehkan penyerang menulis ganti kawasan SRAM yang sepatutnya tidak boleh diakses semasa but, termasuk data tindanan dan metadata timbunan .
Pelaksanaan kod: Pada A12, penyerang menulis ganti daftar pautan (LR) yang disimpan pada tindanan tugas USB untuk mendapatkan kawalan kaunter program (PC) secara langsung. Pada A13, PAC (Pointer Authentication Codes) merumitkan ini, memerlukan teknik pelbagai langkah yang juga memintas checksum timbunan dan kaunter panik .
BootROM (SecureROM) ialah kod pertama yang dijalankan oleh cip apabila dihidupkan. Ia dibakar ke dalam ingatan baca sahaja semasa pembuatan cip dan tidak boleh diubah selepas peranti meninggalkan kilang . Memandangkan punca asas adalah kecacatan perkakasan dalam pengawal USB — bukan pepijat perisian — Apple tidak boleh menambalnya dengan kemas kini firmware atau OS
. Satu-satunya mitigasi berkesan ialah beralih kepada perkakasan yang lebih baru (A14 atau lebih baru)
.
Eksploit checkm8 yang lebih awal (2019) meliputi peranti A5–A11; usbliter8 kini melanjutkan serangan kelas yang sama ke generasi seterusnya . A11 tidak terjejas kerana pemacu USBnya menetapkan semula penunjuk DMA secara manual selepas setiap paket
. Cip A14 dan yang lebih baru juga selamat kerana ia mengkonfigurasi USB DART (perlindungan memori) dengan betul dalam SecureROM
.
Comments
0 comments