867 words
4 minutes

usbliter8 - PoC BootROM exploit mới cho iPhone A12 / A13

Một bản PoC (Proof of Concept) mới có tên usbliter8 vừa được công bố bởi nhóm nghiên cứu Paradigm Shift Technology. Đây là lần đầu tiên một exploit BootROM thành công trên chip A12 và A13 — vượt xa giới hạn của checkm8 vốn chỉ hoạt động tới chip A11.


🔍 checkm8 là gì?#

Nếu bạn chưa biết, checkm8 là một lỗ hổng nổi tiếng trong BootROM của Apple, được phát hiện năm 2019. Vì BootROM là phần khởi động cứng (hardware-level) trên chip, không thể vá bằng bất kỳ bản cập nhật iOS nào.

Khi khai thác được, checkm8 mở đường cho jailbreak hoặc can thiệp sâu vào hệ thống khởi động — và nó từng là nền tảng cho hàng loạt công cụ jailbreak nổi tiếng.

Tuy nhiên, checkm8 chỉ hoạt động trên chip A5 → A11 (iPhone 4s đến iPhone X). Với các thiết bị mới hơn (iPhone XS / XR trở lên dùng chip A12+), giới hạn đó đã tồn tại suốt nhiều năm.


🆕 PoC usbliter8: Bước tiến mới#

Cái mới là gì?#

usbliter8 là tethered bootrom exploit đầu tiên khai thác thành công trên:

ChipThiết bị tiêu biểuTrạng thái
A12iPhone XS / XR✅ Hoạt động
A13iPhone 11 series✅ Hoạt động

Lỗ hổng nằm ở đâu?#

Vấn đề nằm ở bộ điều khiển USB DWC2 của Synopsys — được Apple sử dụng trong các SoC của họ. Cụ thể:

  • Khi nhận Setup packets USB, bộ điều khiển lưu chúng vào bộ nhớ DMA
  • Có một cơ chế “ring buffer” tự động reset con trỏ bộ nhớ sau mỗi 4 gói tin
  • Nhưng bộ điều khiển cũng chấp nhận các gói tin nhỏ hơn (luôn lưu theo chunks 4 byte)
  • Sự không khớp giữa số byte thực tế ghi và offset reset tạo ra primitive buffer underflow

Tóm lại: đây là lỗi phần cứng (hardware bug) trong chính con chip USB controller.

Tại sao chỉ A12/A13?#

Thế hệTại sao?
A11USB driver tự reset DMA address sau mỗi gói → không bị ảnh hưởng
A12/A13USB DART ở chế độ bypass mode → cho phép ghi tự do vào SRAM
A14+DART đã được cấu hình đúng trong SecureROM → không thể khai thác

⚙️ Điều kiện cần#

Để chạy usbliter8, bạn không thể dùng Mac/PC thông thường. Bạn cần:

Phần cứng bắt buộc:

  • Một board RP2350 (Raspberry Pi Pico 2 hoặc tương tự)
  • Cáp Lightning → USB-A (cắt và hàn trực tiếp vào board)

Các board đã test:

  • Waveshare RP2350 USB-A
  • Waveshare RP2350 Zero
  • Pimoroni TINY2350
  • Raspberry Pi Pico 2

⚠️ Lưu ý: Không dùng cáp USB-C因为我们 USB-C có pinout rất khác. RP2040 có thể dùng nhưng chưa ổn định và A13 không hoạt động.

Cách sử dụng#

  1. Cho iPhone vào DFU mode (trong khi đang kết nối Mac/PC)
  2. Rút cáp khỏi Mac/PC
  3. Cắm lại vào board RP2350
  4. Chờ vài giây — exploit sẽ chạy tự động

Quan sát qua LED trên board:

  • 🟠 Đèn cam nhấp nháy → RP2350 đang khởi động
  • 🔵 Đèn xanh dương → exploit đang chạy
  • 🟢 Đèn xanh lá → Thành công!
  • 🔴 Đèn đỏ → Thất bại

Khi thành công, USB serial number sẽ hiển thị chuỗi PWND:[usbliter8].


🔬 Kỹ thuật khai thác chi tiết#

Trên A12#

  • Buffer DMA được cấp phát trên heap, nằm ngay sau stack của USB task
  • Ghi đè LR (Link Register) trên stack → lấy quyền kiểm soát PC
  • ROP chain chỉ cần vài frame:
    1. Ghi 32-bit vào USB MMIO để đổi DMA destination
    2. Sleep ~400ms
    3. Jump tới hàm jump_to_next_stage trong boot trampoline
  • Boot trampoline ở địa chỉ cố định, DMA có thể ghi vào vùng chỉ-read-only bình thường

Trên A13 (phức tạp hơn nhiều)#

A13引入 PAC (Pointer Authentication Code) — mọi LR trên stack đều được bảo vệ. Nhưng nhóm nghiên cứu đã bypass:

  1. Ghi đè dữ liệu DART trong heap (trước buffer DMA)
  2. Sử dụng cleanup routine để lấy 16-byte zero write primitive
  3. Ghi đè panic counter → lần panic tiếp theo sẽ infinite loop thay vì reboot
  4. Timing DMA writes khi USB task đang chạy →LR/SP hợp lệ ghi đè lại giá trị đã bị corrupt
  5. Ghi đè USB IRQ handler trong BSS → gọi hàm tùy ý với tham số tùy ý

🛠️ Post-Exploitation#

Sau khi có code execution, usbliter8:

  • Demote production mode (tạm thời, hết hiệu lực sau reboot)
  • Boot raw iBoot — tải iBoot thô (đã giải mã, không kiểm tra chữ ký)
  • Inject chuỗi PWND vào USB serial number

💡 Với A13, exploit còn phải restart SecureROM và cấu hình lại MMU để bản ROM đã patch vẫn chạy đúng từ địa chỉ gốc.


⚠️ Lưu ý quan trọng#

  1. Đây KHÔNG phải jailbreak hoàn chỉnh — mới chỉ là PoC (bản chứng minh khái niệm)
  2. Tethered — mỗi lần khởi động lại thiết bị sẽ mất exploit
  3. Chưa có jailbreak tool cho người dùng cuối
  4. Cần phần cứng đặc biệt — không phải thứ dễ tiếp cận
  5. Apple đã được thông báo và phối hợp tiết lộ (coordinated disclosure)

💭 Ý nghĩa#

Dù đây chưa phải công cụ jailbreak cho người dùng, usbliter8 là một bước tiến quan trọng trong nghiên cứu bảo mật:

  • Chứng minh rằng BootROM trên chip mới hơn vẫn có thể bị khai thác
  • Mở ra hướng cho các nghiên cứu jailbreak tương lai trên A12/A13
  • Nhắc nhở rằng lỗi phần cứng không thể vá — thiết bị bị ảnh hưởng sẽ mãi mãi mang lỗ hổng này

Với những ai theo dõi lịch sử jailbreak iPhone, đây là một bất ngờ nữa từ BootROM — nơi vẫn còn nhiều bí mật chờ được khám phá.


Nguồn:

usbliter8 - PoC BootROM exploit mới cho iPhone A12 / A13
https://hellsnake.pages.dev/posts/usbliter8-poc-bootrom-exploit-moi-cho-iphone-a12-a13/
Tác giả
HELLSNAKE
Xuất bản tại
2026-06-19
Giấy phép
CC BY-NC 4.0