2 poin oleh GN⁺ 2025-04-28 | 1 komentar | Bagikan ke WhatsApp
  • 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

 
GN⁺ 2025-04-28
Komentar Hacker News
  • Menarik bahwa melalui API ini, tidak diperlukan izin untuk semua penggunaan terkait pengaturan dan pengiriman notifikasi

    • Ada cara untuk berbagi informasi 64-bit antarproses di perangkat
    • Fitur ini cocok untuk pelacakan pengguna antar aplikasi
    • Jika sistem menyimpan nilainya dan tidak melacak dari aplikasi mana asalnya, maka penyimpanan persisten dimungkinkan bahkan setelah aplikasi dihapus dan dipasang ulang
    • Ini bisa digunakan untuk mengakali reset IDFA atau IDFV
  • Kerentanan yang dijelaskan tidak membuat perangkat menjadi "batu bata"

    • Pemulihan memerlukan restore tertambat
  • $17,500 cukup bagus

    • Postingan blog biasanya bernilai kecil, atau perusahaan memperbaiki kerentanannya tanpa memberi imbalan
    • Apple telah membaik dalam hal ini sejak 2019
  • Kerja yang luar biasa

    • Kerentanan yang sederhana, efektif, dan kuat
    • Ini mengingatkan pada kerentanan server sempurna yang pernah diteorikan bersama teman kuliah 20 tahun lalu
    • Ditemukan 2 tahun lalu sebagai CVE-2022-23093
  • 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"

    • Proses apa pun bisa mengirim notifikasi untuk menipu sistem agar masuk ke mode itu
  • Rindu masa-masa IRC dulu

    • Ini mengingatkan betapa berbahayanya perubahan kecil bagi teknologi
    • Jadi penasaran apakah keamanan itu benar-benar maju, atau hanya terus menambal kebocoran
  • Ini mengisyaratkan bahwa jika aplikasi pihak ketiga memiliki sistem notifikasinya sendiri, hal serupa juga bisa dipalsukan

    • Mungkin tidak bisa membuat perangkat jadi batu bata, tetapi berpotensi memicu perilaku lain
  • Karena pengguna harus secara aktif memasang aplikasi berbahaya, prioritasnya mungkin rendah

    • Namun jadwal penanganannya tidak terlalu meyakinkan
  • Tulisan ini sangat menarik untuk dibaca

    • Menunjukkan betapa kuatnya API yang sangat lama ini
    • Demo yang keren untuk memicu semua status tingkat rendah di iOS
    • Jadi penasaran seperti apa keadaan notify_post sekarang