Kenapa Satu Paket TCP Bisa Memberi Akses Root di Linux?
CVE-2026-98432 adalah bug use-after-free di handshake TCP kernel Linux dengan skor 9,8. Claude membuktikan exploit root jarak jauh, dan patch belum merata.
Bayangkan sebuah server Linux menerima satu paket TCP biasa. Tidak ada login, tidak ada kata sandi yang ditebak, tidak ada lampiran yang diklik. Namun paket itu cukup untuk membuka jalan bagi penyerang untuk menjalankan perintah sebagai root.
Itulah CVE-2026-98432, sebuah bug use-after-free di handshake TCP kernel Linux yang dinilai 9,8 dari 10 oleh tim CVE kernel. Pada 27 Oktober 2026, Anthropic mengungkapkan bahwa model riset Claude berhasil menulis exploit yang bekerja untuk bug ini di laboratorium mereka.

Artikel ini menjelaskan cara kerja bug tersebut, kenapa exploit Claude bisa berhasil, siapa saja yang terdampak, dan apa yang harus kamu periksa hari ini.
Apa Itu CVE-2026-98432?
Saat server Linux menerima koneksi TCP, kernel mencatat handshake yang belum selesai di sebuah request socket, lalu membuat soket penuh setelah handshake rampung. Kalau paket awal membawa opsi IPv4, kernel menyimpan opsi itu untuk dipakai di balasan.
Bugnya ada di langkah penyerahan itu. Fungsi tcp_v4_syn_recv_sock() menyerahkan opsi IP dari request socket ke soket baru tanpa menyalinnya, lalu membebaskan memori itu segera setelah koneksi ditutup.
Sementara itu, CPU lain masih bisa membaca memori yang sama untuk membangun balasan handshake. Membaca memori yang sudah dibebaskan inilah yang disebut use-after-free.
Penyerang tidak butuh login, dan semua terjadi di dalam kernel sebelum aplikasi apa pun melihat koneksi. Menurut catatan skor CVE, data yang sudah dibebaskan itu bisa membocorkan isi heap kernel, merusak memori, atau membuat mesin crash. Bug ini memengaruhi kernel sejak versi 4.4.
Bug ini dilaporkan oleh Xinyang Ge dari Anthropic dan diperbaiki oleh Eric Dumazet lewat commit e3f33b0 yang mengubah dua pemanggilan kfree() menjadi kfree_rcu(). Perubahan empat baris itu menunda pembebasan memori sampai semua pembaca selesai. Rekaman CVE diterbitkan pada 15 Oktober 2026.
Bagaimana Claude Mengubah Bug Ini Menjadi Root Jarak Jauh?

Pada 27 Oktober 2026, Frontier Red Team Anthropic memublikasikan riset berjudul Discovering and exploiting vulnerabilities in critical, real-world software with Claude. Model riset internal mereka, yang belum dirilis ke publik, menemukan lima rantai exploit di Chrome, Safari, Android, Windows, dan Linux. Rantai Linux adalah yang paling berat.
Exploit itu bekerja dalam dua tahap. Pertama, race condition membuat kernel mengirim balasan berisi byte ekstra, dan salah satu balasan itu bisa memuat alamat kernel.
Alamat itu dipakai untuk mengalahkan KASLR, pengacakan alamat memori kernel. Tahap ini memakan waktu sekitar 48 menit dalam uji coba Anthropic.
Kedua, bug yang sama dipakai untuk menimpa sebuah callback pointer dengan alamat payload yang sudah disiapkan penyerang di memori kernel. Saat kernel memanggil pointer itu, perintah penyerang berjalan sebagai root. Tahap ini memakan waktu sekitar lima menit.
Bagian yang membuat bug ini berbahaya adalah sifat racenya. Kalau penyerang kalah dalam race, handshake itu hanya gagal tanpa membuat sistem crash, sehingga percobaan bisa diulang tanpa henti sampai berhasil. Anthropic tidak memublikasikan kode exploitnya, dan memberi vendor waktu 90 hari untuk menambal sebelum membahas detail lebih jauh.
Ada satu syarat penting. Exploit yang didemonstrasikan Anthropic membutuhkan server dengan listener multipath TCP, atau MPTCP. Itu bukan syarat kecil, seperti yang terlihat di bagian berikut.
Kenapa Banyak Server Tanpa Sadar Memenuhi Syarat Itu?
Pada 29 Oktober 2026, Go Security Team mengumumkan bahwa sejak Go 1.24, program Go membuka listener MPTCP secara default di Linux. Artinya, banyak server yang ditulis dengan Go sudah memenuhi syarat exploit Anthropic tanpa pemiliknya sadar.
Tim Go menambahkan bahwa bugnya sendiri tidak khusus MPTCP, dan sistem tanpa listener MPTCP mungkin rentan terhadap serangan serupa. Catatan CVE juga tidak menyebut MPTCP sama sekali, sehingga keterkaitan pastinya masih bertumpu pada klaim Anthropic.
Kamu bisa memeriksa sendiri. Perintah ss -M hanya menampilkan soket MPTCP, jadi hasil kosong berarti tidak ada listener MPTCP.
Perintah uname -r menunjukkan versi kernel yang sedang berjalan. Ingat, container memakai kernel host, jadi memeriksa di dalam container tidak ada gunanya.
Siapa Sudah Patch dan Siapa yang Belum?
Perbaikan sudah ada di kernel stabil 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56, dan 7.2.10, lalu di rilis 7.3 pada 18 Oktober. Di sisi distribusi, Debian, Oracle Linux, Amazon Linux, dan sebagian SUSE sudah merilis kernel yang diperbaiki.
Dua nama besar justru belum. Per 31 Oktober, Ubuntu masih mencatat kernelnya sebagai rentan di semua rilis, dengan perbaikan yang masih dikerjakan. Red Hat mencatat RHEL 8, 9, dan 10 sebagai terdampak tanpa perbaikan, lalu pada 30 Oktober menaikkan penilaiannya menjadi Critical 9,8 dan menerbitkan buletin RHSB-2026-016 berisi mitigasi sementara.
AlmaLinux menaruh kernel yang sudah diperbaiki di repositori testing sejak 30 Oktober, sebelum RHEL sendiri. Perbedaan ini penting karena kernel distribusi memakai nomor versi sendiri, jadi bandingkan statusmu dengan tracker distribusi, bukan dengan nomor versi upstream.
Satu hal yang tidak boleh dilupakan adalah reboot. Update kernel tidak aktif sampai mesin booting ke kernel baru, termasuk host container dan node Kubernetes.
Apa yang Harus Kamu Lakukan Hari Ini?
Pertama, periksa versi kernel dan listener MPTCP dengan perintah di atas, lalu pasang kernel yang sudah diperbaiki dari distribusimu dan reboot. Itu satu-satunya perbaikan yang benar-benar menutup bug ini.
Kalau kamu belum bisa patch, Red Hat dan AlmaLinux memublikasikan aturan nftables yang membuang paket TCP IPv4 yang membawa opsi IP. Aturan itu bekerja sebelum connection tracking dan hampir tidak mengganggu lalu lintas normal, karena TCP nyaris tidak pernah membawa opsi IPv4 secara sah. Versi iptables dengan match u32 juga tersedia.
Kamu juga bisa mematikan MPTCP bila tidak memakainya, lewat sysctl net.mptcp.enabled=0. Untuk satu program Go, variabel lingkungan GODEBUG=multipathtcp=0 menonaktifkan default itu, meski tim Go menyebut cara ini rapuh bila diterapkan program per program.
Kabar baiknya, sampai 31 Oktober belum ada laporan eksploitasi di dunia nyata, dan CVE ini belum masuk katalog Known Exploited Vulnerabilities milik CISA. Kabar buruknya, pada tanggal yang sama sudah ada 36 repositori GitHub yang merujuk CVE ini, dan sedikitnya enam di antaranya berisi pemicu race atau proof of concept. Jendela untuk menambal sebelum ada yang mencoba tidak akan lama.
Bug ini adalah pengingat bahwa satu baris kode di lapisan jaringan bisa mengguncang seluruh server. Periksa kernelmu hari ini, sebelum orang lain memeriksanya untukmu. Saya menulis soal keamanan dan AI di blog ini, dan proyek yang saya kerjakan bisa kamu lihat di /projects.

Dimas Febriyanto
Fullstack & Mobile Developer specializing in Golang & Flutter. Aktif sebagai Junior Mobile Developer di Sagara Technology & asisten lab di Universitas Gunadarma. Passionate about building scalable algorithms & high-impact applications.
Lihat Portofolio