- CopyFail, kerentanan eskalasi hak akses lokal di kernel Linux, termasuk salah satu kerentanan “make-me-root” (yang membuat pengguna biasa menjadi root) paling serius di kernel dalam beberapa waktu terakhir
- Kerentanan ini diperkenalkan dalam commit tertentu pada kernel versi 4.14, dan bertepatan dengan waktu ditambahkannya optimisasi in-place pada modul
authencesnyang dieksploitasi oleh CopyFail - Perbaikannya telah diterapkan ke kernel 6.18.22, 6.19.12, dan 7.0, dan 6.18.22 serta 6.19.12 dirilis pada 11 April dengan perbaikan yang sudah di-backport (menerapkan patch dari versi yang lebih tinggi ke versi yang lebih rendah)
- Namun, perbaikan tersebut masih belum disertakan di kernel Longterm yang masih banyak digunakan (6.12, 6.6, 6.1, 5.15, 5.10), dan juga belum terlihat di upstream stable queue
- Karena masalah ini diperkenalkan pada 2017, perlu dipastikan apakah kernel Longterm lama tersebut juga terdampak
- Patch perbaikannya tidak clean apply (dapat diterapkan dengan rapi tanpa konflik kode) ke kernel lama, dan karena beberapa perubahan API, situasinya membuat upaya backport sulit dilakukan dengan keyakinan penuh
- Untuk lingkungan yang membutuhkan respons segera, sebagai langkah sementara dapat diterapkan patch yang menonaktifkan modul
authencesnpada IPSec, dan bahkan bagi yang bukan ahli IPSec, ini termasuk pilihan yang “tidak sempurna, tetapi lebih baik daripada alternatif yang lebih buruk” - Artinya, masalah strukturalnya ada pada proses pengungkapan kerentanan kernel Linux itu sendiri:
- Kerentanan kernel Linux tidak memiliki mekanisme yang otomatis menyampaikan pemberitahuan awal ke tiap distro kecuali pelapor kerentanan sendiri memberi tahu mailing list linux-distros (kanal tertutup tempat tim keamanan distro berkumpul)
- Pada kasus CopyFail ini juga tidak ada peringatan awal (heads-up) melalui linux-distros ML
- Artinya, tim keamanan distro utama seperti Ubuntu, RHEL, dan SUSE tidak mendapat kesempatan menyiapkan patch sebelum kerentanannya dipublikasikan
2 komentar
Tulisan blognya memang agak kekanak-kanakan, tetapi saya rasa kelemahan sistemiknya lebih besar sehingga sulit menilai kesalahannya lebih dari sekadar menjengkelkan.
Komentar Hacker News
Sam James, penulis tulisan yang ditautkan, adalah pengembang Gentoo
Bagaimanapun, ini nyaris seperti bencana, dan merilis exploit sebelum distro sempat mendistribusikan perbaikannya adalah tindakan yang sangat tidak bertanggung jawab
Tidak jelas berapa banyak penyedia shared hosting yang mungkin diretas gara-gara ini
Juga mengkhawatirkan bahwa tampaknya tidak ada komunikasi antara kernel security team dan maintainer distro
Orang mungkin berharap pihak pertama akan memberi tahu pihak kedua, tetapi kenyataannya tampak seperti orang yang menemukan kerentananlah yang harus memikul tanggung jawab itu
Sebagai referensi, Google Project Zero juga memakai kebijakan serupa, “90+30”: https://projectzero.google/vulnerability-disclosure-policy.h...
Masalah yang sebenarnya adalah tidak adanya saluran komunikasi antara kernel security team dan maintainer distro
Orang yang menemukan kerentanan seharusnya tidak dibebani tanggung jawab untuk melapor secara terpisah ke semua downstream
Tim kernel seharusnya memberi tahu daftar petugas keamanan distro tentang tingkat pentingnya patch dan jadwal pengungkapan 30 hari kemudian
Di halaman pengungkapannya bahkan ada frasa seperti “Is your software AI-era safe?”, “Copy Fail was surfaced by Xint Code about an hour of scan time against the Linux crypto/ subsystem”, “[Try Xint Code]”
Ini cara yang membuat produk terlihat lebih menarik ketika kekacauan makin besar
Ungkapan Responsible Disclosure adalah istilah yang secara linguistik dirancang dengan baik, seperti “Secure Boot”, dan dalam praktiknya tampak lebih untuk menjaga reputasi organisasi perantara perusahaan/fondasi antara saya dan komputer saya
Mereka lebih peduli mencegah orang berkata “RHEL rentan”, “Ubuntu rentan” daripada apakah komputer pribadi saya rentan
Kerentanannya tetap ada bagaimanapun juga, jadi menurut saya lebih baik punya kesempatan mengetahui risikonya dan menguranginya daripada hanya menunggu perbaikan diam-diam masuk
Dengan kata lain, saya menganggap pengungkapan segera adalah satu-satunya pilihan yang tidak tidak bertanggung jawab
Menjalankan workload tenant yang saling tidak percaya di bawah single shared kernel bukanlah ide yang baik
Kernel LPE bukan hal langka, dan kasus ini hanya sangat sederhana serta mudah dipindahkan, sementara capability mentahnya sendiri nyaris merupakan CNE commodity
Jika ingin melakukan shared hosting tanpa diretas, perlu memakai sarana lain seperti gVisor atau Firecracker VM
Mungkin Android adalah satu-satunya sistem penting yang memakai ini sebagai batas keamanan, dan itu pun dimitigasi dengan persetujuan pengguna untuk pemasangan APK, kebijakan SELinux dan seccomp yang ketat, serta hardening GrapheneOS
Dalam kasus ini pun mitigasinya berhasil: https://discuss.grapheneos.org/d/35110-grapheneos-is-protect...
Saya tidak mengerti alasan mengatakan hal seperti “untuk kerentanan Linux kernel, distro tidak mendapat pemberitahuan awal kecuali reporter sendiri yang membawanya langsung ke linux-distros ML”
Mengharapkan reporter untuk berkoordinasi langsung dengan distro mengandaikan tingkat pengetahuan yang sangat tinggi tentang proyek Linux
Pelapor kerentanan seharusnya tidak bertanggung jawab bekerja langsung dengan semua konsumen downstream Linux kernel
Kalau begitu, apakah mereka juga harus menghubungi semua produsen perangkat yang memakai Linux di peralatannya?
Menurut saya, pelapor sudah cukup bertanggung jawab dengan mengungkapkannya ke Linux dan menunggu sampai patch masuk
Seharusnya ada orang di dalam proyek Linux yang punya wewenang dan tanggung jawab atas kerentanan keamanan, dan merekalah yang harus memberi tahu distro downstream
https://docs.kernel.org/process/security-bugs.html
As such, the kernel security team strongly recommends that as a reporter of a potential security issue you DO NOT contact the “linux-distros” mailing list UNTIL a fix is accepted by the affected code’s maintainers and you have read the distros wiki page above and you fully understand the requirements that contacting “linux-distros” will impose on you and the kernel community.Paling tidak, memberi tahu tim keamanan distro-distro itu tampak seperti tindakan yang bertanggung jawab
Tampaknya mustahil mereka tidak tahu bahwa distro-distro itu adalah downstream dari tim kernel
Cukup cari di Google: https://share.google/aimode/eihDKXZJy94Z5lC1p
Sulit dipahami bagaimana hal ini tidak terpikirkan lalu semua orang justru dipaparkan ke exploit, dan saya tidak akan heran jika di beberapa yurisdiksi itu tergolong kejahatan berat
Pertukaran paling menarik terkait disclosure ada di tautan ini
https://www.openwall.com/lists/oss-security/2026/05/01/3
Ini adalah jawaban greg k-h: “Kami tidak bisa memberi tahu siapa pun sebelumnya, karena kalau begitu kami harus memberi tahu semua orang untuk semuanya. Itu satu-satunya kebijakan yang disetujui oleh lembaga hukum/pemerintah agar kami bisa beroperasi”
Kita seharusnya berhenti menyalahkan reporter dan menuntut agar proses kernel diperbaiki
Linux kernel bukan lagi proyek main-main, dan ada pegawai penuh waktu yang dipekerjakan oleh berbagai perusahaan
Mereka, bukan individu acak, yang seharusnya menangani pemberitahuan ke distro
Jika mereka tidak memasukkan penyebutan seperti RHEL 14, mungkin mereka tidak akan dikritik separah ini
Ini bukan situasi peneliti keamanan independen atau akademik, melainkan perusahaan keamanan dengan departemen komunikasi profesional yang menunjuk-nunjuk maintainer distro
Tetapi karena reporter tidak menunggu itu terjadi, orang sungguhan mungkin dirugikan, dan tanggung jawab atas itu ada pada reporter
Melepaskannya ke dunia tanpa lebih dulu memberi tahu distro-distro utama adalah tindakan yang tidak bertanggung jawab
Untuk orang yang memakai kernel dengan AF_ALG yang ditautkan langsung ke kernel, bukan sebagai modul, ada workaround berbasis eBPF di sini: https://github.com/Dabbleam/CVE-2026-31431-mitigation
Saat ini saya menjalankannya di production, ini memitigasi serangan, dan sejauh ini belum terlihat efek samping tak terduga
Menurut saya
nosuiddan mungkinnodevseharusnya menjadi filesystem mount option bawaan/devsudah berupa devtmpfs khusus, dan/devminimal dari initrd kalau diperlukan bisa didapat dengan me-mount initrd tmpfs rootfs secara eksplisit dengandevdansuidMembiarkan binary SUID bisa “ada” di mana saja adalah risiko keamanan besar
Saat me-mount media penyimpanan eksternal, bagaimana kita bisa memverifikasi bahwa binary SUID di block device itu tidak berbahaya?
Selain itu, exploit ini tampaknya hanya bekerja jika pengguna yang menjalankan binary SUID juga bisa membaca binary tersebut
Tidak ada alasan bagi pengguna non-root untuk memiliki izin baca atas binary SUID
NixOS menangani ini dengan benar
Direktori instalasi paket biasa,
/nix/store, tidak memiliki SUID, dan karena paket tidak bocor keluar dari sana, mountpoint lain bisa aman memakainosuidSatu-satunya pengecualian hanyalah direktori tujuan tunggal
/run/wrappers.$hash, yang aman menyimpan wrapper SUID executable-onlyBug yang dieksploitasi pada dasarnya memungkinkan page cache poisoning sewenang-wenang
Pada titik itu permainan pada dasarnya sudah selesai, dan menargetkan program suid mungkin memang cara termudah untuk mendapatkan root shell, tetapi bukan satu-satunya cara
Ada banyak cara lain
Jika tujuannya hanya memblokir exploit bukti konsep, metode yang lebih mudah seperti blacklist juga bisa dipakai, tetapi itu tidak membuat keadaan lebih aman
Kerentanan ini memungkinkan manipulasi terhadap page cache
Anda bisa memanipulasi
ld.sountuk memasang hook pada system call arbitrer, mengubah uid menjadi 0, atau menaikkan hak akses dengan berbagai cara lainMount point tidak ada hubungannya dengan masalah ini
Tentu saja, mencegah suid di area yang bisa ditulis pengguna dan mencegah pembacaan file suid selalu ide bagus, tetapi itu karena alasan lain
NixOS juga tidak bisa memperbaiki kerentanan ini dan tetap rentan seperti distro lainnya
Untuk mengeksekusi binary, isinya harus dibaca dari disk dan dimuat ke memori
Bahkan, jika suatu binary tertentu punya izin baca tetapi tidak punya izin executable, Anda masih bisa menjalankannya dengan memanggil linker secara langsung
Misalnya, jika Anda memanggil
/bin/ld.so.1 /path/to/binary, linker akan membaca dan memuat binary lalu melompat ke entry point tanpa memanggilexec()Tautan Bleeping Computer di bawah memuat langkah-langkah mitigasi potensial sampai patch siap
https://www.bleepingcomputer.com/news/security/new-linux-cop...
RHEL, Fedora, dan Gentoo semuanya dikonfigurasi untuk membangun kode ini langsung ke dalam kernel
Tanpa patch atau perubahan konfigurasi, seperti yang diisyaratkan Sam soal Gentoo, distro-distro itu akan tetap rentan
NixOS juga tidak menerima pemberitahuan
https://discourse.nixos.org/t/is-nixos-affected-by-copy-fail...
Hyperbola GNU aman karena alasan politik dan stabilitas masih memakai Python 3.8
Ubuntu sudah merilis patch, dan pengujian juga telah selesai sebelum dan sesudah patch