Lewati ke konten utama
linux cve privilege-escalation kernel lpe threat-intelligence

Copy Fail: Celah Kernel Linux yang Berikan Akses Root ke Semua Pengguna Lokal (CVE-2026-31431)

Tim Sevarity

Satu skrip Python. 732 byte. Tanpa root. Tanpa race condition. Tanpa fitur kernel khusus. Di sistem Linux mana pun yang dibangun sejak 2017, Ubuntu, RHEL, Amazon Linux, SUSE, skrip itu memberikan akses root.

Itulah Copy Fail.

Poin Utama

  • CVE-2026-31431 (CVSS 7.8) adalah privilege escalation lokal di modul kriptografi authencesn kernel Linux, diperkenalkan pada Agustus 2017.
  • Pengguna lokal tanpa hak akses bisa menulis 4 byte terkontrol ke page cache file mana pun yang bisa dibaca, lalu mengeksekusi binary yang dimodifikasi untuk mendapatkan root.
  • Eksploit berupa skrip Python 732 byte yang bekerja identik di Ubuntu 24.04 LTS, Amazon Linux 2023, RHEL 10.1, dan SUSE 16, tanpa offset per-distro.
  • Patch: commit kernel a664bf3d603d. Mitigasi sementara: nonaktifkan algif_aead via modprobe.

Apa Itu Copy Fail dan Mengapa Berbahaya?

CVE-2026-31431, dijuluki Copy Fail, adalah celah privilege escalation lokal yang kritis di subsistem kriptografi kernel Linux, khususnya modul authencesn, dan memengaruhi semua distribusi besar yang menjalankan kernel yang tersentuh oleh commit optimasi 2017 (Xint Code, 2026). Berbeda dengan sebagian besar LPE yang bergantung pada race condition, rantai use-after-free, atau fitur kernel debugging, ini bersifat deterministik: selalu berhasil, setiap saat, tanpa manipulasi waktu.

Celah ini memungkinkan pengguna lokal tanpa hak akses menulis empat byte terkontrol ke page cache file mana pun yang bisa dibaca di sistem. Empat byte sudah cukup. Suntikkan shellcode ke salinan cache dari /usr/bin/su, eksekusi, dan Anda mendapat root. Kernel tidak pernah menyentuh disk. Alat pengecekan integritas yang memindai file di disk tidak akan menemukan apa pun.

Ini bukan celah teoritis. Kode eksploit yang berfungsi sudah ada. 732 byte Python standar.

CVE-2026-31431 memungkinkan pengguna lokal tanpa hak akses menulis empat byte terkontrol ke page cache kernel Linux dari file mana pun yang bisa dibaca, lalu mengeksekusi binary cache yang dimodifikasi untuk mendapatkan akses root. Eksploit ini bekerja tanpa race condition atau fitur kernel debugging, portabel ke berbagai distribusi, dan selesai melalui skrip Python 732 byte (The Hacker News, 2026).

Apa Akar Penyebab CVE-2026-31431?

Tiga perubahan kernel independen, diperkenalkan antara 2011 dan 2017, berkumpul menciptakan Copy Fail, dan tidak ada satu perubahan pun yang merupakan kerentanan tersendiri (Xint Code, 2026). Inilah yang membuatnya tidak terdeteksi selama hampir satu dekade.

Perubahan 1 (2011): Implementasi authencesn asli menggunakan buffer tujuan sebagai ruang scratch sementara selama operasi enkripsi terautentikasi. Ini adalah detail implementasi internal, bukan batas keamanan.

Perubahan 2 (2015): Antarmuka AF_ALG menambahkan dukungan splice(), memungkinkan userspace meneruskan halaman page cache sebagai input ke operasi kriptografi kernel. Ini adalah optimasi performa yang sah.

Perubahan 3 (2017): Optimasi lebih lanjut mengubah authencesn dari operasi out-of-place (sumber dan tujuan terpisah) ke operasi in-place (buffer yang sama untuk keduanya). Inilah commit yang menciptakan kerentanan.

Hasilnya: ketika authencesn memproses permintaan enkripsi terautentikasi secara in-place, ia menulis melampaui batas output yang sah ke halaman page cache yang berdekatan. Userspace dapat membuat permintaan yang menempatkan halaman cache file target di jalur penulisan. Kernel menulis byte yang dikontrol penyerang ke dalamnya.

pemicu userspace →
  socket AF_ALG → splice() → operasi in-place authencesn →
    penulisan out-of-bounds → korupsi page cache →
      halaman cache /usr/bin/su dimodifikasi →
        eksekusi shellcode → root

Modul kernel algif_aead menjembatani antarmuka userspace AF_ALG dan template authencesn. Ini adalah titik paparan, dan dimuat secara default di semua distribusi yang terpengaruh.

Sistem Mana yang Terpengaruh?

Sistem Linux mana pun yang menjalankan kernel yang menyertakan optimasi in-place 2017 rentan (copy.fail, 2026). Distribusi yang dikonfirmasi terpengaruh:

DistribusiVersi
Ubuntu24.04 LTS dan rilis sebelumnya dengan kernel 2017+
Amazon Linux2023
Red Hat Enterprise Linux10.1
SUSE Linux Enterprise16

Skrip eksploit tidak perlu dimodifikasi antar-distribusi. Python 732 byte yang sama berjalan di semuanya tanpa offset kernel per-distro, properti yang secara eksplisit diuji dan diverifikasi oleh peneliti.

Tidak rentan: Sistem yang menjalankan kernel yang telah di-patch dengan commit a664bf3d603d, atau sistem di mana algif_aead telah dinonaktifkan secara manual.

Lingkungan container: Page cache yang dibagi bersama berarti batas container tidak membantu. Proses di dalam container dapat mengkorupsi halaman page cache yang dapat diakses oleh proses di luar container. Ini adalah vektor container escape.

Bagaimana Eksploit Bekerja?

Rantai eksploitasi memiliki empat langkah (The Hacker News, 2026):

  1. Pengaturan socket: Buka socket AF_ALG dan bind ke pengaturan cipher tertentu yang akan mengaktifkan jalur in-place authencesn yang rentan.

  2. Konstruksi payload: Bangun payload shellcode yang akan ditulis ke entri page cache file target.

  3. Pemicu penulisan: Gunakan splice() untuk meneruskan referensi ke halaman page cache file target (misalnya /usr/bin/su) ke operasi kriptografi. Penulisan in-place authencesn menempatkan shellcode ke halaman tersebut.

  4. Eksekusi: Panggil su (atau binary mana pun yang ditargetkan). Kernel mengeksekusi versi yang telah disuntik shellcode di memori. Shellcode berjalan sebagai UID efektif binary, root untuk binary SUID.

Eksploit tidak menghasilkan error, peringatan, dan tidak menyentuh disk. Pencatatan proses dan log audit file menunjukkan eksekusi su normal. Modifikasi page cache sepenuhnya di memori dan hilang saat reboot.

Eksploit Copy Fail menggunakan operasi socket AF_ALG dikombinasikan dengan splice() untuk memicu penulisan out-of-bounds in-place modul kernel authencesn, mengkorupsi salinan page cache dari binary SUID target. Seluruh operasi selesai dalam urutan deterministik tunggal tanpa race condition, membuat deteksi dan pencegahan melalui pertahanan berbasis timing menjadi tidak efektif (Xint Code, 2026).

Siapa yang Menghadapi Risiko Tertinggi?

Copy Fail memerlukan akun lokal tanpa hak akses, tetapi batasan itu mencakup permukaan serangan yang luas di infrastruktur modern (copy.fail, 2026):

Lingkungan berisiko tinggi:

  • Server Linux multi-tenant, pengguna co-tenant mana pun dapat melakukan eskalasi
  • Cluster Kubernetes, container escape layak dilakukan via page cache bersama
  • CI/CD runner, terutama yang mengeksekusi kode dari pull request atau kontributor eksternal
  • Platform SaaS cloud, sistem apa pun di mana pengguna memiliki akses shell
  • Mesin developer, akun developer yang dikompromikan (via phishing, misalnya) langsung mengarah ke root

Lingkungan berisiko lebih rendah:

  • Workstation pengguna tunggal di mana pengguna lokal sudah memiliki akses sudo
  • Sistem dengan mandatory access control (SELinux/AppArmor) dalam mode enforcing, meskipun tingkat cakupan kebijakan MAC pada jalur eksploit spesifik bervariasi

Portabilitas eksploit, tanpa modifikasi per-distro, tanpa offset kernel, berarti serangan yang sama bekerja terhadap kumpulan target seluas mungkin. Ini bukan kerentanan yang mengharuskan penyerang menyesuaikan alat mereka.

Yang Harus Dilakukan Sekarang

Prioritas 1, Patch. Terapkan pembaruan kernel dari distribusi Anda yang menyertakan commit mainline a664bf3d603d. Semua distribusi yang terpengaruh (Ubuntu, RHEL, Amazon Linux, SUSE) telah merilis advisory keamanan dan kernel yang telah di-patch.

Prioritas 2, Mitigasi sementara (jika patching ditunda):

# Cegah algif_aead dimuat
echo "install algif_aead /bin/false" >> /etc/modprobe.d/disable-algif-aead.conf

# Jika sudah dimuat, hapus
rmmod algif_aead

Prioritas 3, Nilai paparan. Periksa apakah sistem di lingkungan Anda:

  • Memiliki akun pengguna lokal selain pemilik sistem
  • Adalah sistem multi-tenant atau bersama
  • Menjalankan pipeline CI/CD dengan eksekusi kode eksternal
  • Adalah node Kubernetes atau host container

Prioritas 4, Verifikasi status patch:

# Cek apakah algif_aead dimuat (dimuat = belum di-patch + rentan)
lsmod | grep algif_aead

# Cek versi kernel, verifikasi terhadap advisory distro Anda
uname -r

Yang TIDAK boleh dilakukan: Jangan jadikan isolasi container sebagai mitigasi. Page cache dibagi bersama di seluruh batas container pada kernel host. Mempatch kernel host adalah satu-satunya perbaikan yang andal untuk beban kerja yang dikontainerisasi.

Indikator Eksploitasi

Copy Fail meninggalkan jejak forensik minimal, tetapi sinyal-sinyal ini patut dipantau:

Indikator perilaku:

  • Eksekusi binary SUID yang tidak terduga (terutama su, sudo, newgrp) oleh proses non-interaktif
  • Pembuatan socket AF_ALG diikuti syscall splice() dari proses non-kriptografi
  • Proses mendapatkan hak akses yang lebih tinggi tanpa entri log sudo yang sesuai
  • Modifikasi file di memori saja yang terdeteksi melalui alat inspeksi page cache

Audit kernel:

# Pantau penggunaan socket AF_ALG via auditd
auditctl -a always,exit -F arch=b64 -S socket -F a0=38 -k alg_socket

Nomor family AF_ALG adalah 38 (AF_ALG = PF_ALG). Aturan audit ini menangkap semua event pembuatan socket AF_ALG, yang seharusnya jarang terjadi di luar aplikasi kriptografi tertentu.

Pertanyaan yang Sering Diajukan

Apakah ini bisa dieksploitasi dari jaringan?

Tidak. Copy Fail memerlukan akun pengguna lokal di sistem target. Tidak bisa dieksploitasi dari jarak jauh. Model ancaman adalah: penyerang sudah memiliki akses lokal tanpa hak akses (via phishing, kredensial yang dicuri, kompromi supply chain, dll.) dan menggunakan ini untuk eskalasi ke root.

Apakah menonaktifkan container atau namespace dapat memitigasi ini?

Tidak. Kerentanan ada di page cache kernel host, yang dibagi bersama di semua container. Eksploit bekerja identik di dalam dan di luar container. Mempatch kernel host adalah satu-satunya perbaikan yang andal.

Apakah SELinux atau AppArmor memblokir eksploit?

Tergantung pada kebijakan spesifik yang diterapkan. Kebijakan SELinux enforcing default di RHEL mungkin membatasi beberapa jalur eksploitasi, tetapi vendor tetap mengeluarkan patch dan advisory, jangan andalkan kebijakan MAC sebagai mitigasi utama.

Bagaimana kerentanan ini ditemukan?

Kerentanan ditemukan melalui penelitian berbantuan AI oleh Xint Code, dengan penelitian awal oleh Taeyang Lee di Xint. Timeline pengungkapan mengikuti praktik responsible disclosure, dengan distribusi yang terpengaruh menerima pemberitahuan sebelum pengungkapan publik.

Apakah ada eksploit publik yang berfungsi?

Ya. Eksploit Python 732 byte ada dan telah didemonstrasikan oleh peneliti. Eksploit ini hanya menggunakan modul pustaka standar Python dan tidak memerlukan kompilasi.

Referensi

Amankan Operasi Anda

Siap mengidentifikasi critical vulnerability sebelum threat actor menemukannya?

Minta Penawaran