Kerentanan ini terdapat pada subsistem RDS (Reliable Datagram Sockets) di kernel Linux. RDS adalah protokol jaringan yang biasanya dipakai dalam lingkungan berperforma tinggi, misalnya cluster InfiniBand atau sistem komputasi terdistribusi.
Masalahnya muncul di jalur pengiriman RDS zerocopy, sebuah mekanisme optimasi yang memungkinkan kernel mengirim data langsung dari memori pengguna tanpa melakukan penyalinan tambahan. Walaupun efisien, teknik ini membuat pengelolaan memori menjadi lebih kompleks.
Di dalam fungsi kernel rds_message_zcopy_from_user(), kernel akan “mem‑pin” halaman memori pengguna satu per satu sebelum mengirimkannya. Jika kemudian terjadi page fault, jalur penanganan error mencoba melepaskan halaman yang sudah dipin sebelumnya. Dalam kondisi tertentu, proses ini membebaskan halaman yang masih direferensikan, sehingga terjadi double‑free atau kerusakan reference count.
Kesalahan inilah yang menjadi dasar eksploitasi PinTheft.
Para peneliti menunjukkan bahwa bug di RDS dapat digabungkan dengan fitur I/O modern Linux untuk mengubah kesalahan manajemen memori menjadi teknik eskalasi hak akses yang stabil.
Penyerang yang sudah memiliki akses lokal memicu jalur RDS zerocopy yang rentan. Ketika terjadi page fault saat proses pinning memori, logika pembersihan membebaskan halaman yang seharusnya masih digunakan, sehingga kernel berada dalam kondisi referensi memori yang tidak konsisten.
Selanjutnya eksploit memanfaatkan io_uring fixed buffers, fitur Linux untuk I/O asinkron berperforma tinggi.
Dengan manipulasi buffer yang terdaftar di io_uring, penyerang dapat mengalokasikan kembali halaman memori fisik yang sebelumnya telah dibebaskan secara terkontrol. Ini memberi penyerang pengaruh terhadap lokasi memori yang sebelumnya terkena bug RDS.
Halaman memori yang rusak bisa saja merupakan bagian dari page cache—cache kernel yang menyimpan data file yang sering diakses.
Dengan teknik ini, penyerang dapat mengubah konten file yang disajikan oleh kernel dari cache, meskipun file asli di disk tidak diubah sama sekali.
Eksploit yang dipublikasikan menargetkan binary SUID‑root yang berada di page cache. Ketika kernel menjalankan file tersebut dari cache yang telah dimodifikasi, kode berbahaya milik penyerang akan dijalankan dengan hak akses root.
Secara teori, kerentanan ini dapat memengaruhi berbagai distribusi Linux, tetapi tingkat risikonya sangat bergantung pada konfigurasi sistem.
Beberapa laporan keamanan menyoroti Arch Linux sebagai lingkungan yang paling terekspos karena:
Distribusi Linux apa pun berpotensi terdampak jika:
Laporan keamanan menyebutkan bahwa instalasi standar Ubuntu, Debian, RHEL, dan AlmaLinux kemungkinan lebih aman karena modul RDS biasanya tidak aktif secara default. Meski demikian, administrator tetap disarankan memeriksa konfigurasi kernel masing‑masing.
CloudLinux melaporkan bahwa setelah menguji PoC pada berbagai versi platformnya, sistem mereka tidak terpengaruh oleh kerentanan ini.
Eksploit PinTheft umumnya memerlukan beberapa kondisi berikut:
Jika salah satu syarat tersebut tidak terpenuhi, eksploitasi akan jauh lebih sulit atau bahkan tidak mungkin dilakukan.
Administrator sistem dapat mengurangi risiko dengan beberapa langkah berikut.
Pengelola kernel telah merilis patch untuk jalur kode RDS yang rentan. Memasang pembaruan kernel terbaru dari vendor distribusi merupakan langkah mitigasi utama.
Karena pembaruan kernel membutuhkan restart, sistem harus direboot setelah patch dipasang.
Jika infrastruktur Anda tidak menggunakan RDS, sebaiknya mencegah modul rds dimuat, misalnya dengan:
rdsKarena eksploit memanfaatkan io_uring fixed buffers, membatasi atau menonaktifkan penggunaan io_uring untuk pengguna non‑privileged dapat mengurangi permukaan serangan.
Tahap akhir eksploit menargetkan binary SUID‑root, sehingga mengaudit file SUID yang tidak diperlukan dan menghapus bit SUID yang tidak penting dapat mengurangi risiko eskalasi hak akses.
Karena eksploit membutuhkan akses lokal, sistem multi‑user seperti server shared hosting, runner CI/CD, atau mesin pengembangan bersama harus diprioritaskan untuk patching dan hardening.
PinTheft menunjukkan bagaimana eksploit kernel modern sering muncul dari kombinasi beberapa subsistem kompleks—dalam kasus ini modul jaringan RDS dan framework I/O asinkron io_uring.
Bug yang tampak kecil dalam modul kernel yang jarang digunakan dapat berubah menjadi kerentanan serius ketika digabungkan dengan fitur performa modern. Karena itu, praktik keamanan dasar seperti memperbarui kernel secara rutin dan menonaktifkan modul yang tidak diperlukan tetap menjadi pertahanan paling efektif terhadap eksploit tingkat kernel.
Comments
0 comments