Dirty Frag: Root Exploit Linux via Page Cache Corruption, Penerus Copy Fail - Ethical Hacking Indonesia

Ethical Hacking Indonesia Mei 08, 2026

Dirty Pipe sempat dianggap sebagai salah satu bug Linux kernel paling berbahaya karena memungkinkan overwrite terhadap page cache tanpa hak akses root. Namun munculnya Dirty Frag menunjukkan bahwa class vulnerability tersebut belum benar-benar teratasi dengan sempurna. Yang berubah hanya jalur masuknya.

Dirty Frag bukan sesuatu yang hanya baru tetapi dari Dirty Pipe. Vulnerability ini memperlihatkan bahwa Linux kernel masih memiliki pola logic flaw serupa pada jalur fast-path networking tertentu, khususnya di subsystem XFRM ESP dan RxRPC. Dampaknya jauh lebih serius dibanding sekadar local file corruption karena primitive yang dihasilkan dapat dipakai untuk memperoleh root privilege secara stabil di hampir seluruh distribusi Linux modern.

Yang membuat kasus ini menarik bukan hanya exploitability-nya, tetapi fakta bahwa vulnerability ini bersifat deterministic. Tidak ada race condition. Tidak ada timing attack rumit. Tidak ada kernel panic ketika gagal. Exploit berjalan konsisten karena masalahnya berasal dari kesalahan logika ownership memory pada page cache.

Secara teknis, inti masalah berada pada bagaimana Linux menangani fragment page (frag) dalam struct sk_buff saat proses dekripsi packet di jalur fast-path. Pada kondisi tertentu, kernel melakukan operasi in-place decryption terhadap page yang sebenarnya masih direferensikan oleh user space melalui mekanisme seperti splice(), sendfile(), atau MSG_SPLICE_PAGES.

Masalah muncul karena kernel menganggap page tersebut aman untuk dimodifikasi langsung, padahal ownership-nya bukan eksklusif milik kernel. Akibatnya, proses dekripsi justru menulis ulang data ke page cache yang masih dapat diakses oleh unprivileged process.

Secara sederhana, alurnya terlihat seperti ini:

  1. User space membuat page-backed buffer menggunakan mekanisme zero-copy seperti splice()
  2. Buffer tersebut masuk ke networking stack
  3. Kernel melakukan dekripsi packet langsung pada frag page tanpa Copy-on-Write
  4. Data pada page cache berubah
  5. User space mendapatkan akses terhadap hasil modifikasi kernelv
Ini menciptakan primitive write terhadap page cache. Pada xfrm-ESP variant, primitive tersebut berupa arbitrary 4-byte STORE yang sangat mirip dengan Copy Fail.

Baca Juga Tentang: Copy Fail - CVE-2026-31431

Masalah fundamentalnya bukan hanya memory corruption biasa, tetapi kegagalan boundary ownership antara kernel dan user-controlled pages.

Yang membuat Dirty Frag berbahaya adalah chaining antar dua vulnerability berbeda untuk menutup blind spot satu sama lain.

Variant pertama berasal dari subsystem IPSec/XFRM (esp4 dan esp6). Exploit ini powerful karena tersedia hampir di seluruh distro Linux modern dan menghasilkan primitive write yang sangat stabil. Namun terdapat satu kendala: attacker memerlukan kemampuan membuat unprivileged user namespace.

Di Ubuntu modern, AppArmor sering memblokir namespace creation bagi user biasa. Ini membuat exploit ESP gagal dijalankan. 

Di titik inilah RxRPC digunakan sebagai fallback path.

RxRPC variant tidak memerlukan namespace privilege sama sekali. Tetapi modul rxrpc.ko justru tidak tersedia di sebagian besar distribusi enterprise seperti RHEL default installation.

Hasil akhirnya :

  • Pada distro yang mengizinkan user namespace -- gunakan xfrm-ESP
  • Pada Ubuntu yang memblokir namespace tetapi memuat RxRPC -- gunakan RxRPC
Artinya attacker tidak perlu peduli terhadap hardening spesifik distro. Mereka cukup memilih jalur exploit yang tersedia.

Pendekatan ini memperlihatkan pola modern Linux exploitation: bukan lagi single bug exploitation, melainkan exploit orchestration antar subsystem kernel.

Dari perspektif offensive security, ini lebih dekat ke konsep “capability chaining” dibanding eksploitasi tradisional.

Yang lebih mengkhawatirkan adalah lifetime vulnerability ini.

xfrm-ESP variant berasal dari commit tahun 2017. Artinya bug tersebut hidup hampir 9 tahun di production kernel tanpa terdeteksi. Bahkan commit yang sama juga menjadi akar dari CVE-2022-27666 beberapa tahun lalu.

Ini menunjukkan sesuatu yang lebih kompleks: fast-path optimization di networking stack Linux memiliki attack surface yang jauh lebih besar dibanding yang selama ini diasumsikan.

Fast-path biasanya dibuat untuk performa tinggi:

  • zero-copy networking
  • splice optimization
  • sendfile acceleration
  • page reuse
  • no-COW operations

Namun seluruh optimasi ini sangat sensitif terhadap ownership tracking. Sedikit kesalahan validasi reference counter atau COW handling dapat berubah menjadi privilege escalation primitive.

Dirty Frag memperlihatkan bahwa performa dan security isolation sering kali berada dalam konflik langsung di level kernel architecture.

Dalam skenario realistis, exploit ini sangat relevan untuk post-exploitation cloud environment.

Misalnya:

  • attacker memperoleh low-privilege shell melalui vulnerable web application
  • container escape tidak tersedia
  • SELinux/AppArmor aktif
  • kernel terbaru dianggap aman
Pada kondisi normal, privilege escalation modern biasanya memerlukan exploit race condition yang tidak stabil.

Dirty Frag mengubah situasi itu.

Karena exploit bersifat deterministic dan tidak membutuhkan race timing, attacker dapat memperoleh root secara konsisten tanpa menghasilkan crash yang menarik perhatian monitoring system.

Pada environment CI/CD atau shared-hosting Linux, dampaknya bahkan lebih serius karena:

  • local user dapat memperoleh full root
  • namespace isolation dapat dilewati
  • credential host dapat dicuri
  • container breakout menjadi lebih mudah

Kasus ini juga memperlihatkan kelemahan pendekatan mitigasi parsial.

Sebelumnya banyak administrator memitigasi Copy Fail dengan mem-blacklist algif_aead.

Namun Dirty Frag tetap bekerja walaupun mitigasi tersebut diterapkan karena sink vulnerability berada pada jalur berbeda.

Ini insight penting bagi defender: blacklist berbasis symptom sering kali gagal ketika bug class dasarnya belum benar-benar dipahami.

Selama page cache ownership flaw masih ada di subsystem lain, exploit baru akan terus muncul dengan primitive serupa.

Sampai patch resmi tersedia, mitigasi paling realistis saat ini adalah memblokir module terkait:

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

printf 'install esp4 /bin/false
install esp6 /bin/false
install rxrpc /bin/false
' > /etc/modprobe.d/dirtyfrag.conf

rmmod esp4 esp6 rxrpc

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

Mitigasi ini memang mengurangi attack surface, tetapi memiliki konsekuensi operasional:

  • IPSec tertentu dapat berhenti bekerja
  • fitur RxRPC tidak tersedia
  • beberapa workload networking mungkin terdampak
Bagi security engineer, prioritas utama saat ini bukan hanya patching, tetapi visibility.

Hal yang perlu dipantau:

  • penggunaan splice() abnormal
  • namespace creation oleh unprivileged user
  • loading module networking tidak biasa
  • aktivitas local privilege escalation setelah foothold awal
  • proses yang memanfaatkan MSG_SPLICE_PAGES

Dirty Frag kemungkinan bukan vulnerability terakhir dari family ini.

Karena akar masalahnya berada pada interaksi page cache, zero-copy optimization, dan ownership validation, masih sangat mungkin terdapat sink lain di networking stack Linux yang belum ditemukan.

Dan itu yang membuat vulnerability class seperti Dirty Frag jauh lebih penting dibanding sekadar satu CVE individual: ia membuka pola eksploitasi baru terhadap kernel modern.

Benediktus Sava – Security Researcher

Sumber:

Github

Openwall

Copy Fail - Ethical Hacking Indonesia

Share this

Add Comments


EmoticonEmoticon