1 poin oleh GN⁺ 6 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • GrapheneOS memperbaiki kerentanan bypass VPN dalam pembaruan terbaru yang dapat membocorkan alamat IP nyata meskipun “Always-On VPN” dan “Block connections without VPN” di Android aktif
  • Kerentanan ini berasal dari fitur pengakhiran koneksi QUIC di stack jaringan Android 16, dan memungkinkan aplikasi biasa mendaftarkan payload UDP ke system_server hanya dengan izin standar
  • Saat soket UDP aplikasi dihancurkan, system_server yang memiliki hak istimewa mengirim payload yang tersimpan langsung melalui antarmuka jaringan fisik, bukan melalui terowongan VPN, sehingga melewati perlindungan penguncian VPN
  • Google mengklasifikasikan masalah ini sebagai “Won’t Fix (Infeasible)” dan “NSBC”, serta mempertahankan posisinya bahwa masalah tersebut tidak memenuhi kriteria untuk advisori keamanan Android
  • GrapheneOS menonaktifkan “registerQuicConnectionClosePayload optimization” pada release 2026050400, dan juga menyertakan patch keamanan Android Mei 2026, peningkatan hardened_malloc, pembaruan kernel Linux, serta perbaikan backport untuk libpng CVE-2026-33636

Cara kerja kerentanan

  • Menurut analisis teknis Yusuf, API yang rentan memungkinkan aplikasi biasa yang hanya memiliki izin INTERNET dan ACCESS_NETWORK_STATE yang diberikan otomatis untuk mendaftarkan payload UDP arbitrer ke system_server
  • Setelah itu, ketika soket UDP aplikasi dihancurkan, proses system_server Android yang memiliki hak istimewa mengirim payload yang tersimpan langsung melalui antarmuka jaringan fisik perangkat, bukan melalui terowongan VPN
  • Karena system_server berjalan dengan hak jaringan yang ditingkatkan dan dikecualikan dari pembatasan perutean VPN, paket tersebut sepenuhnya melewati perlindungan penguncian VPN Android
  • Peneliti keamanan lowlevel/Yusuf mendemonstrasikan kerentanan ini pada Pixel 8 berbasis Android 16 dengan Proton VPN dan mode penguncian Android aktif bersamaan
  • Aplikasi tersebut membocorkan alamat IP publik asli perangkat ke server jarak jauh bahkan ketika perlindungan VPN sepenuhnya aktif

Penyebab dan penanganan oleh Google

  • Google memperkenalkan fitur ini agar aplikasi dapat menutup sesi QUIC secara normal ketika soket dihancurkan secara tak terduga
  • Implementasinya menerima payload arbitrer tanpa memverifikasi apakah payload tersebut adalah frame QUIC CONNECTION_CLOSE yang sah
  • Implementasi itu juga awalnya tidak memeriksa apakah aplikasi dibatasi hanya pada lalu lintas khusus VPN
  • Peneliti melaporkan masalah ini kepada tim keamanan Android, tetapi Google mengklasifikasikannya sebagai “Won’t Fix (Infeasible)” dan “NSBC” (Not Security Bulletin Class)
  • Google menilai masalah ini tidak memenuhi kriteria untuk dimasukkan ke dalam advisori keamanan Android
  • Peneliti meminta peninjauan ulang dengan alasan aplikasi apa pun dapat membocorkan informasi jaringan yang dapat diidentifikasi hanya dengan izin standar, tetapi Google mempertahankan posisinya dan menyetujui pengungkapan pada 29 April

Pembaruan dan mitigasi GrapheneOS

  • GrapheneOS adalah sistem operasi berbasis Android yang berfokus pada privasi dan keamanan, terutama dikembangkan untuk perangkat Google Pixel, dan digunakan oleh mereka yang menginginkan sandboxing aplikasi yang lebih kuat, mitigasi eksploitasi, serta ketergantungan yang lebih rendah pada layanan Google
  • GrapheneOS sepenuhnya menonaktifkan optimisasi tersebut dalam release 2026050400 untuk mencegah kebocoran VPN
  • Yusuf menyatakan bahwa GrapheneOS menyelesaikan distribusi perbaikannya dalam waktu kurang dari satu minggu
  • Selain perbaikan kebocoran VPN, rilis terbaru juga mencakup seluruh patch keamanan Android level Mei 2026
  • Pembaruan ini mencakup berbagai peningkatan hardened_malloc, pembaruan kernel Linux di seluruh cabang Android 6.1, 6.6, dan 6.12, serta perbaikan backport untuk CVE-2026-33636 pada libpng
  • Build browser Vanadium baru dan pembatasan Dynamic Code Loading yang diperluas juga disertakan
  • Pengguna Android standar dapat memitigasi masalah ini sementara dengan menonaktifkan flag DeviceConfig close_quic_connection melalui ADB
  • Solusi sementara ini memerlukan akses pengembang
  • Jika Google menghapus flag fitur tersebut dalam pembaruan mendatang, mitigasi ini mungkin tidak akan tetap tersedia

1 komentar

 
GN⁺ 6 jam lalu
Komentar Hacker News
  • Jika system_server berjalan dengan hak jaringan tingkat tinggi dan dikecualikan dari pembatasan routing VPN, bukankah di Android VPN pada dasarnya bukan VPN?
    Terlepas dari bug ini, saya jadi penasaran apakah OS terkunci lain juga bekerja dengan cara yang sama

    • iOS juga sama, dan setahu saya untuk mengakalinya dibutuhkan lisensi enterprise untuk lebih dari 250 perangkat
      Mullvad dan lainnya juga sudah lama membahas masalah ini
    • Istilah seperti “private” atau “trust” punya makna berbeda di dunia komputer dan dalam kebiasaan manusia
      Yang saya khawatirkan adalah orang melihat kata dengan ejaan yang sama lalu gagal menangkap perbedaan konteks, sehingga keliru memperluas model kepercayaan komputer menjadi kepercayaan antarmanusia
    • macOS juga pernah punya kasus di mana aplikasi bawaannya bisa selalu melewati VPN
      Saya tidak tahu apakah pernah ada kerentanan atau celah yang memungkinkan trafik dikirim langsung ke tujuan arbitrer
    • Saya penasaran seberapa sulit memperbaiki system_server dan jalur bypass lainnya
  • Mirip dengan Manifest V3, mencegah pengintaian tidak sejalan dengan kepentingan Google
    Pembatasan seperti itu merugikan model bisnis mereka

  • Alasan teknis mengapa masalah ini serius adalah karena kebocoran terjadi pada proses berprivilege system_server
    Mode penguncian bawaan Android secara eksplisit menjanjikan bahwa tidak ada trafik yang akan melewati VPN. Jika sistem sendiri mengirim paket lewat antarmuka fisik, maka janji itu dilanggar pada level kernel, bukan user space, jadi sulit mengatakan ini “bukan level pengumuman keamanan”

  • Jika Google mengizinkan pengungkapan pada 29 April, mengejutkan juga bahwa embargo tetap dipatuhi dan distribusi perbaikan ditunda sampai Mei
    Saya tidak paham kenapa tidak langsung diungkapkan

    • Kemungkinan besar karena mereka tidak ingin merusak hubungan sebagai vendor dengan Google
      Suka atau tidak, GrapheneOS bergantung pada Android yang dikendalikan Google
  • Saya paham ada alasan bisnis yang buruk di baliknya, tapi saya tidak tahu bagaimana mereka bisa menjaga harga diri sambil mengklasifikasikan kebocoran VPN sebagai bukan isu keamanan

    • Tergantung bagaimana Anda memandang peran VPN
      Awalnya VPN dipakai untuk mengakses jaringan privat atau jaringan kerja lewat jaringan lain, misalnya menghubungkan kantor ke kantor atau rumah ke kantor. Baru belakangan ia berubah menjadi semacam alat keamanan
      Jika kode VPN dipandang sekadar “ponsel bisa mengakses printer kantor lewat 5G”, ini bisa dianggap bug kecil karena koneksi QUIC tidak tertutup dengan benar. Sebaliknya, jika Anda memandang “tunnel WireGuard ini harus melindungi identitas saya apa pun yang terjadi” atau “ini harus menjadi salinan yang akurat dari semua trafik yang keluar-masuk internet”, maka ini masalah besar
      Saya rasa Android VPN, atau praktis VPN mana pun, tidak pernah dirancang sebagai sarana privasi/keamanan. Terutama terhadap aplikasi yang dapat menjalankan kode di perangkat, dan perangkat itu sendiri juga melakukan berbagai interaksi jaringan termasuk di dalam chip modem
      Google keliru menutup bug ini, tetapi saya bisa memahami mengapa program bug bounty mereka tidak menganggapnya sebagai bug keamanan
    • Pertanyaan itu hanya mungkin jika kita berasumsi masih ada harga diri yang perlu dijaga
    • Dari sudut pandang Google, itu bukan bug melainkan fitur
      Google adalah perusahaan iklan sekaligus kontraktor ofensif, jadi pengguna VPN yang membocorkan paket menguntungkan mereka dalam kedua hal itu
    • Mereka dibayar untuk melakukan itu
    • Rasanya saya tidak mungkin bisa bekerja di Google sambil menganggap pengungkapan data pribadi yang tidak diinginkan sebagai isu keamanan
  • Ini juga mirip dengan Meta yang menghapus enkripsi end-to-end
    Kurang lebih seperti, “tidak, kami ingin melihat semua yang Anda katakan dan lakukan”

  • Saya penasaran cara yang bagus untuk mendapatkan ponsel GrapheneOS
    Saya ingin mencoba GrapheneOS, tetapi ragu membeli Pixel sungguhan. Bahkan unit bekas biasanya di atas 300 dolar, termasuk seri “a”, jadi harus turun beberapa generasi. Belum lagi soal apakah bootloader-nya bisa dibuka. Mengeluarkan 449 dolar untuk Pixel 10a baru masih berat

    • Mungkin tidak membantu untuk sekarang, tetapi GrapheneOS baru-baru ini mengumumkan kemitraan dengan Motorola, jadi mungkin sekitar setahun lagi dukungan untuk beberapa perangkat Motorola akan mulai hadir
      Sebagai referensi, saya membeli Pixel 10a saat peluncuran Google Fi dengan harga sekitar 300 dolar
    • Sebaiknya jangan beli Pixel 10a
      Pixel 9a hampir perangkat yang sama dan masih dijual baru
    • Seri Pixel 8 ke atas direkomendasikan
      Lebih aman membeli baru di toko umum atau Google Store, bukan toko operator
      Unit bekas nyaris seperti berjudi karena masalah penanganan OEM unlock, jadi pastikan kebijakan retur bagus dan verifikasi bahwa OEM unlock bisa diakses sebelum membeli
    • Saya menjawabnya di thread lain: https://news.ycombinator.com/item?id=48076522
      Pada dasarnya, beli perangkat Pixel 6 atau lebih baru yang dipastikan bisa unlock bootloader. Tapi karena Pixel 6 segera hanya mendapat dukungan minimum, saya merekomendasikan Pixel 7 atau lebih baru. Sebagian besar unit bekas tidak bisa unlock bootloader
      Jadi sebaiknya beli langsung dari Google, atau beli listing eBay yang sudah terpasang GrapheneOS/CalyxOS/LineageOS, atau beli perangkat yang penjualnya secara eksplisit menyatakan bootloader unlock memungkinkan
      Secara pribadi, jika penjual belum menyebutkannya, meminta mereka memeriksa status bootloader biasanya tidak banyak gunanya. Hampir tak ada yang mau melalui prosedur pengecekan, jawabannya biasanya “tidak bisa”, mereka juga bisa salah paham lalu sekadar menjawab “ponsel unlocked”, atau mungkin sudah lelah dengan pertanyaan seperti itu
    • Ada juga opsi menunggu sebentar
      Sedang ada pekerjaan untuk mendukung lebih banyak hardware ponsel, dan untuk sementara mereknya jadi bahan spekulasi
  • Saya membeli Pixel 6 bekas murah untuk mencoba GrapheneOS, tetapi saya kurang suka
    Pengalaman pengguna LineageOS terasa jauh lebih baik. Struktur package manager-nya terasa aneh seperti boneka Rusia. “App Store” bawaannya hanya berisi beberapa program dasar, salah satunya adalah package manager lain bernama Accrescent, yang jumlah aplikasinya masih sangat sedikit sehingga butuh package manager lain lagi. Pihak GrapheneOS tampaknya lebih menyukai Obtainium daripada F-Droid, dan itu juga terasa seperti keputusan yang aneh
    Saya jauh lebih suka package manager yang sepenuhnya open source, dan ada nilai nyata dalam membangun dari source di luar sana, idealnya secara reproducible, alih-alih sekadar mempercayai paket GitHub. Model keamanan GrapheneOS terasa agak terpusat secara aneh. Manfaat privasi dan keamanan yang dilaporkan juga sulit saya nilai sendiri

    • Tinggal unduh F-Droid sendiri
      Saya tidak paham kenapa harus ngotot bahwa app store deterministik dan pra-instal itu wajib ada
      Menjalankan app store itu hampir sama beratnya dengan memelihara fork Android, dan dengan sudah adanya pilihan seperti F-Droid, Play Store dan Aurora Store, Obtainium, dan lain-lain, sulit menyalahkan pengembang GrapheneOS karena tidak mencurahkan upaya besar ke sana
    • App Store lebih seperti titik awal minimal untuk memutuskan dari mana akan mengunduh aplikasi
      Dalam kondisi default hanya ada launcher dan OS minimum, dan bagi kaum minimalis itu sudah cukup
      Jika butuh lebih, pengguna tinggal memutuskan akan ke mana. Saya menyebut ini cara memberdayakan pengguna, sementara Anda tampaknya menyebutnya ketidaknyamanan. Kalau begitu mungkin OS itu memang tidak cocok untuk Anda
    • Hanya karena suatu perangkat lunak itu bebas dan open source bukan berarti secara inheren lebih aman atau lebih privat
      “Open source” pada dasarnya hanyalah istilah lisensi
      “App Store” GrapheneOS ada untuk menyediakan aplikasi paling mendasar yang dibutuhkan untuk penggunaan umum. Alasan Accrescent didistribusikan di sana adalah karena sebagai app repository nyata ia mengikuti baseline keamanan Android, sedangkan F-Droid dan Aurora Store tidak
      Saya tidak melihat banyak nilai dalam pendekatan pihak ketiga seperti F-Droid yang membangun aplikasi lalu memeriksa perilaku berbahaya. Pemeriksaan seperti itu tidak terlalu andal dan pernah berhasil dilewati. Itu juga salah satu alasan WireGuard tidak lagi ada di F-Droid. Jika Anda tidak cukup percaya pada aplikasi untuk menerimanya langsung dari pengembangnya, maka memang sebaiknya jangan dipakai
      Manfaat privasi dan keamanan GrapheneOS dirancang agar hampir tidak terlihat bagi pengguna rata-rata. Contohnya ada allocator memori yang diperkeras dan memory tagging extension untuk mencegah bug korupsi memori, serta kemampuan memasang Google Play yang disandbox agar tetap bisa memakai layanan Google tanpa memberi Google kendali atas seluruh perangkat
    • GrapheneOS mewarisi antarmuka pengguna dari Android Open Source Project, dan banyak fork Android lain dari berbagai vendor selain OS bawaan Pixel juga berdasar pada itu
      App Store GrapheneOS ada untuk mengisi peran primary app store yang diwajibkan AOSP. Ia juga berfungsi memperbarui aplikasi pihak pertama secara terpisah dari update OS, dan dalam beberapa kasus mencerminkan aplikasi
      Accrescent dicerminkan karena fokus pada privasi dan keamanan. Saat ini masih berstatus alpha dan pengiriman aplikasi masih ditutup, tetapi akan segera dibuka
      Google Play dicerminkan demi kompatibilitas dengan aplikasi yang memerlukan Google Play, dan juga untuk akses ke Play Store
      Alasan komunitas GrapheneOS menyukai Obtainium adalah karena ia bisa mengambil aplikasi yang ditandatangani pengembang dari tempat seperti GitHub. F-Droid menandatangani dan membangun hampir semua aplikasi di repositori utamanya dengan infrastruktur build yang usang dan sistem kurasi yang lemah
      Model keamanan GrapheneOS mewarisi model keamanan AOSP lalu memperkerasnya lebih lanjut
    • Senang sekali melihat CalyxOS kembali aktif
      GrapheneOS punya banyak implementasi teknis yang keren, tetapi Calyx tampaknya menangani banyak hal dengan cara yang lebih sederhana dan lebih mendekati Android murni
  • GrapheneOS katanya menonaktifkan optimasi registerQuicConnectionClosePayload untuk “memperbaiki kebocoran VPN” dan secara efektif meniadakan vektor serangan pada perangkat Pixel yang didukung
    Jadi GrapheneOS “memperbaiki” kebocoran itu dengan mematikan optimasinya
    Dulu di HN orang memuji QUIC, dan komentar yang bertanya QUIC paling menguntungkan siapa malah diberi penilaian rendah. Penggunaan QUIC mungkin sejalan dengan kepentingan pihak lain, tetapi bagi saya trade-off-nya tidak masuk akal sehingga trafik QUIC saya blokir
    QUIC pada perangkat lunak yang didistribusikan Google, seperti Android, kadang aktif secara default, dan dalam beberapa kasus tidak ada cara untuk mematikannya

    • Di GrapheneOS pun QUIC sendiri tetap berfungsi normal
      Yang dihapus GrapheneOS hanyalah cara bagi aplikasi untuk meminta OS menutup koneksi QUIC secara otomatis dalam situasi seperti aplikasi mati. Dari sudut pandang server ini adalah optimasi karena menghindari koneksi tetap terbuka, menahan resource, lalu baru melalui proses penutupan setelah batas idle tercapai, tetapi ini bukan optimasi dari sisi klien
      Selain itu GrapheneOS juga telah memperbaiki sekitar 5 kebocoran VPN lain dan masih ada perbaikan tambahan yang sedang dikerjakan. Implementasi VPN Android saat ini adalah VPN per profil, tetapi profil tersebut belum menggunakan network namespace sendiri, dan resolver DNS serta berbagai layanan terpusat harus menangani dukungan VPN dengan benar, sehingga rentan bocor
      Ke depan mereka berencana memperbaiki arsitektur VPN agar jauh lebih tahan terhadap kebocoran. Dukungan untuk menjalankan aplikasi atau grup aplikasi di mesin virtual juga akan hadir, yang bisa memberi perlindungan lebih kuat
    • Ini adalah jalur untuk menutup koneksi QUIC secara elegan yang diekspos melalui pemanggilan yang tidak semestinya atau bisa disalahgunakan, bukan berarti GrapheneOS menonaktifkan QUIC secara keseluruhan
      QUIC sendiri bagus, dan ini lebih merupakan fitur dari Google Android sebagai OS pengawasan daripada fitur protokolnya
      Lagi pula, saat diuji pada OS sebelum rilis terbaru pun itu tidak bekerja dengan benar
  • Android bawaan itu spyware sekaligus adware
    Dulu perangkat lunak seperti ini akan disebut berbahaya dan dihapus, tapi sekarang justru jadi default

    • Semua orang setuju, tetapi saya tidak tahu apa solusinya
      Karena kita tahu 99% pengguna tidak peduli, satu-satunya titik tekan adalah produsen ponsel. Rasanya tidak berdaya karena saya tidak punya kekuatan untuk memengaruhi siapa pun yang punya pengaruh berarti di bidang ini