- Memperkenalkan kasus di mana iPhone dapat dibuat menjadi brick dengan memanfaatkan karakteristik dan kelemahan sistem Darwin Notification
- Kerentanan ini terdaftar sebagai CVE-2025-24091, dan pelapornya menerima bug bounty sebesar $17,500 (Rp250 juta)
- Dengan menyalahgunakan fakta bahwa notifikasi level sistem dapat dikirim tanpa hak akses khusus, seluruh perangkat iOS dapat dibuat lumpuh
- Dengan satu baris kode sederhana, terbukti dimungkinkan melakukan serangan penolakan layanan (DoS) yang memaksa mode "Restore in Progress" dan memicu boot berulang
- Kerentanan ini diperbaiki melalui pembaruan iOS 18.3, dengan mewajibkan hak terbatas (entitlement) untuk mengirim Darwin Notification yang penting
Darwin Notifications
- Darwin Notifications adalah mekanisme level CoreOS di iOS dan macOS untuk bertukar pesan sederhana antarproses
- Strukturnya menggunakan
notify_post untuk mengumumkan event, notify_register_dispatch untuk menerima event, serta memungkinkan membaca atau menulis nilai status (state)
- Pengiriman dan penerimaan dapat dilakukan tanpa hak akses khusus, dan tidak ada prosedur verifikasi keamanan
- Berbagai komponen sistem bergantung pada API lama ini
Gambaran kerentanan
- Semua proses di sistem operasi Apple dapat menerima Darwin Notifications tanpa memerlukan hak akses khusus
- Terdapat celah struktural yang memungkinkan aplikasi yang disandbox juga dapat mengirim Darwin Notification
- Karena jumlah data yang dapat dikirim terbatas, risiko kebocoran data sensitif tidak terlalu besar
- Namun, jika notifikasi sistem penting tertentu dikirim, misalnya notifikasi mulai pemulihan, hal itu dapat memengaruhi seluruh sistem
- Dari sinilah ditemukan kemungkinan serangan penolakan layanan (DoS)
EvilNotify dan VeryEvilNotify
- Melalui aplikasi EvilNotify, berbagai respons sistem dapat dipaksa muncul
- Menampilkan ikon deteksi cairan
- Memblokir Wi-Fi dan memaksa penggunaan seluler
- Memblokir gestur lock screen dan Control Center
- Masuk ke Find My Lost Mode, dan sebagainya
- Secara khusus, satu baris
notify_post("com.apple.MobileSync.BackupAgent.RestoreStarted") dapat menjebak perangkat ke status Restore in Progress
- Mode ini gagal karena perangkat sebenarnya tidak sedang dipulihkan, dan satu-satunya solusi adalah menekan tombol "Restart"
- Aplikasi VeryEvilNotify menggunakan ekstensi widget agar serangan bisa dimulai ulang secara otomatis bahkan setelah reboot
- Ekstensi widget dijalankan sistem secara berkala di latar belakang, lalu memanggil fungsi
notify_post untuk berulang kali memicu mode "restore sedang berlangsung"
- Hasil akhirnya, perangkat bisa dibuat sepenuhnya menjadi brick
Timeline dan pendaftaran CVE
- 26 Juni 2024: Laporan insiden awal dikirim ke Apple
- 27 September 2024: Menerima pesan dari Apple bahwa langkah mitigasi sedang diproses
- 28 Januari 2025: Perbaikan masalah selesai dan kelayakan bug bounty dikonfirmasi
- 11 Maret 2025: Terdaftar resmi sebagai CVE-2025-24091 dan diperbaiki di iOS/iPadOS 18.3
- Nilai bug bounty yang dibayarkan adalah US$17,500
Respons dan langkah mitigasi
- Pengiriman Darwin Notification yang sensitif diubah agar memerlukan hak terbatas (entitlement)
- Sebagai contoh, notifikasi
com.apple.MobileBackup.BackupAgent.RestoreStarted yang lama diubah menjadi com.apple.private.restrict-post.MobileBackup.BackupAgent.RestoreStarted
- Proses yang menerima notifikasi juga menggunakan nama baru untuk memblokir pengiriman tidak sah dari aplikasi yang tidak berwenang
- Skema hak terbatas ini mulai diterapkan sejak iOS 18.2 beta 2, lalu diselesaikan sepenuhnya di iOS 18.3
1 komentar
Komentar Hacker News
Menarik bahwa melalui API ini, tidak diperlukan izin untuk semua penggunaan terkait pengaturan dan pengiriman notifikasi
Kerentanan yang dijelaskan tidak membuat perangkat menjadi "batu bata"
$17,500 cukup bagus
Kerja yang luar biasa
Bisa dibayangkan betapa beratnya hari di kantor saat tim inti iOS meninjau ini
Dengan satu baris kode, perangkat bisa dibuat masuk ke mode "pemulihan sedang berlangsung"
Rindu masa-masa IRC dulu
Ini mengisyaratkan bahwa jika aplikasi pihak ketiga memiliki sistem notifikasinya sendiri, hal serupa juga bisa dipalsukan
Karena pengguna harus secara aktif memasang aplikasi berbahaya, prioritasnya mungkin rendah
Tulisan ini sangat menarik untuk dibaca
notify_postsekarang