Kerentanan yang dapat dieksploitasi dari jarak jauh pada tumpukan TCP kernel. Linux

Anthropic telah mengungkapkan kerentanan kritis (CVE-2026-98432) pada tumpukan TCP kernel. Linux, yang memungkinkan eksekusi kode jarak jauh dengan mengirimkan paket yang dirancang khusus. Sebuah eksploitasi yang berfungsi telah dilaporkan, memungkinkan eksekusi kode pada tingkat kernel dan mendapatkan hak akses root dari jarak jauh pada sistem. Eksploitasi ini cocok untuk menyerang sistem dengan proses server yang menerima koneksi melalui soket jaringan yang mendukung protokol Multipath TCP (MPTCP). Dukungan MPTCP dapat diaktifkan per soket jaringan, yang merupakan pengaturan default di pustaka standar Go, dimulai dengan Go 1.24 (Februari 2025).

Eksploitasi yang telah disiapkan dapat digunakan dengan aplikasi server apa pun yang ditulis dalam Go, termasuk server HTTP Caddy, selama aplikasi tersebut dapat mengirim paket jaringan ke soket pendengar yang dibuatnya. Karena kerentanan tersebut ada langsung di tumpukan IPv4 dan tidak spesifik untuk MPTCP, dimungkinkan untuk membuat eksploitasi yang berfungsi tanpa bergantung pada MPTCP, tetapi eksploitasi semacam itu belum pernah didemonstrasikan. Misalnya, dimungkinkan untuk mengeksploitasi kerentanan saat memproses permintaan migrasi soket, yang tersedia dalam konfigurasi dengan parameter net.ipv4.tcp_migrate_req=1 atau saat menggunakan program eBPF dengan opsi BPF_SK_REUSEPORT_SELECT_OR_MIGRATE.

Kerentanan ini disebabkan oleh kondisi race yang terjadi selama pemrosesan simultan permintaan SYN yang dikirim ulang selama pembentukan koneksi TCP. Karena fungsi tcp_v4_syn_recv_sock() meneruskan parameter dari struktur ireq->ireq_opt ke soket anak melalui referensi dan bukan menyalinnya, dalam keadaan tertentu muncul situasi di mana memori untuk struktur inet_opt dan ireq_opt yang berisi parameter soket telah dibebaskan, tetapi opsi soket terkait terus digunakan (use-after-free).

Eksploitasi jarak jauh dilakukan dengan mengirimkan serangkaian permintaan jaringan yang disinkronkan waktu. Eksploitasi ini berhasil diterapkan pada kernel yang menggunakan pengacakan alamat (KASLR), tetapi mencapai jendela kondisi persaingan membutuhkan waktu yang cukup lama dan memerlukan banyak percobaan ulang. Eksploitasi disederhanakan oleh fakta bahwa melewatkan jendela kondisi persaingan hanya menghasilkan jabat tangan, bukan kerusakan kernel, sehingga memungkinkan upaya yang tak terbatas. Dalam prototipe eksploitasi, serangan tersebut membutuhkan waktu sekitar satu jam—48 menit untuk menentukan tata letak memori dan 5 menit lagi untuk mengatur eksekusi kode.

Belum ada solusi sementara yang menjamin perbaikan kerentanan ini—menginstal pembaruan kernel adalah satu-satunya pilihan yang dapat diandalkan. Masalah ini mulai muncul dari kernel. Linux 4.4 dan telah diperbaiki pada rilis 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56, 7.2.10 dan 7.3. Status perbaikan kerentanan dalam distribusi dapat dinilai pada halaman-halaman ini: Debian, UbuntuSUSE/openSUSE, RHEL, Gentoo, Arch,
fedora.

Rekomendasi untuk menangkal metode eksploitasi spesifik yang tidak memblokir kerentanan secara umum meliputi menonaktifkan dukungan MPTCP dan mengatur parameter sysctl kernel net.ipv4.tcp_migrate_req ke 0:

sysctl -w net.mptcp.enabled=0
sysctl -w net.ipv4.tcp_migrate_req=0

Untuk menentukan apakah ada proses dalam sistem yang menggunakan soket dengan
MPTCP, Anda dapat menggunakan perintah:

ip mptcp endpoint show
batas ip mptcp ditampilkan

Untuk menonaktifkan dukungan MPTCP dalam program Go, gunakan flag "multipathtcp=0", yang dapat diatur dengan menetapkan variabel lingkungan "GODEBUG=multipathtcp=0". Untuk menonaktifkan dukungan MPTCP pada saat kompilasi, tambahkan "godebug multipathtcp=0" ke file go.mod. Dalam kode aplikasi Anda, Anda dapat menonaktifkan MPTCP menggunakan fungsi net.Dialer.SetMultipathTCP dan net.ListenConfig.SetMultipathTCP.

Selain masalah yang dibahas, Anthropic juga mengumumkan serangkaian kerentanan yang dapat dieksploitasi secara lokal di kernel. Linux, OpenBSD, dan FreeBSD yang memungkinkan akses root ke sistem dan keluar dari kontainer terisolasi; kerentanan di Chrome dan Safari yang menyebabkan eksekusi kode pada sistem saat membuka halaman web yang dirancang khusus; kerentanan pada kernel. Windows, yang menyebabkan kerusakan; kerentanan platform Android, yang memungkinkan Anda untuk melewati kunci layar dan mengakses informasi pribadi serta foto tanpa membuka kunci perangkat (serangan ini didemonstrasikan pada ponsel pintar Google Pixel 9).

Tambahan:

  • Di nginx, kemampuan untuk mengaktifkan opsi IPPROTO_MPTCP untuk soket jaringan yang sedang mendengarkan telah ada sejak versi 1.29.7, tetapi tidak digunakan secara default.
  • Di Lighttpd, opsi untuk mengaktifkan MPTCP tersedia sejak rilis 1.4.76.
  • Di Apache httpd, patch untuk mendukung MPTCP ditambahkan ke cabang Apache httpd 2.5-HEAD pada tahun 2024.
  • Di systemd, dukungan untuk mengaktifkan MPTCP saat diaktifkan melalui soket ditambahkan pada versi 257.
  • Di Apache Traffic Server, opsi untuk mengaktifkan MPTCP didukung sejak versi 9.2.4.
  • Di HAProxy, mulai dari versi 3.1.0, opsi "mptcp{,4,6}@" tersedia. ".
  • Di Traefik, pengaturan flag IPPROTO_MPTCP diaktifkan secara default sejak rilis 2.11.26, 3.4.2 dan v3.5.0-rc1.
  • Pada DBMS Valkey, mulai dari versi 9.0.0, opsi "--mptcp" dan pengaturan "mptcp yes" dan "repl-mptcp yes" tersedia.

Sumber: opennet.ru

Beli hosting yang andal untuk situs dengan perlindungan DDoS, server VPS VDS šŸ”„ Beli hosting website andal dengan perlindungan DDoS, server VPS VDS | ProHoster