Kerentanan pada subsistem eBPF kernel Linux

Dalam subsistem eBPF, yang memungkinkan Anda menjalankan handler untuk pelacakan, analisis operasi subsistem, dan manajemen lalu lintas, dieksekusi di dalam kernel. Linux Sebuah kerentanan (CVE-2021-29154) ditemukan pada mesin virtual khusus dengan JIT, yang memungkinkan pengguna lokal untuk mengeksekusi kode mereka sendiri pada tingkat kernel. Masalah ini berlanjut hingga rilis 5.11.12 dan belum diperbaiki dalam distribusi (Debian, Ubuntu(RHEL, Fedora, SUSE, Arch). Perbaikan tersebut tersedia sebagai patch.

Menurut para peneliti yang menemukan kerentanan tersebut, mereka telah mengembangkan prototipe eksploitasi yang berfungsi untuk sistem x86 32- dan 64-bit yang dapat digunakan oleh pengguna tanpa hak istimewa. Red Hat mencatat bahwa tingkat keparahan masalah ini bergantung pada apakah pengguna memiliki akses ke panggilan sistem eBPF. Misalnya, di RHEL dan sebagian besar distribusi lainnya Linux Dalam konfigurasi default, kerentanan dapat dieksploitasi jika BPF JIT diaktifkan dan pengguna memiliki hak akses CAP_SYS_ADMIN. Sebagai solusi sementara, disarankan untuk menonaktifkan BPF JIT menggunakan perintah: echo 0 > /proc/sys/net/core/bpf_jit_enable

Masalah ini disebabkan oleh kesalahan dalam perhitungan offset untuk instruksi percabangan selama proses pembuatan kode mesin oleh kompiler JIT. Khususnya, saat membuat instruksi percabangan, fakta bahwa offset dapat berubah setelah tahap optimasi tidak diperhitungkan. Cacat ini dapat dimanfaatkan untuk menghasilkan kode mesin yang anomali dan mengeksekusinya di tingkat kernel.

Perlu dicatat bahwa ini bukan satu-satunya kerentanan dalam subsistem eBPF yang baru-baru ini ditemukan. Pada akhir Maret, dua kerentanan lainnya (CVE-2020-27170 dan CVE-2020-27171) ditemukan di kernel, yang memungkinkan eBPF digunakan untuk menerobos perlindungan terhadap kerentanan kelas Spectre, yang memungkinkan isi memori kernel ditentukan dengan menciptakan kondisi untuk eksekusi spekulatif operasi tertentu. Serangan Spectre membutuhkan keberadaan urutan instruksi tertentu dalam kode istimewa yang mengarah pada eksekusi instruksi spekulatif. Beberapa metode telah ditemukan dalam eBPF untuk menghasilkan instruksi tersebut dengan memanipulasi program BPF yang dikirimkan untuk dieksekusi.

Kerentanan CVE-2020-27170 disebabkan oleh manipulasi pointer dalam verifier BPF, yang menyebabkan akses di luar batas yang spekulatif. Kerentanan CVE-2020-27171 terkait dengan kesalahan underflow integer saat menangani pointer, yang menyebabkan akses di luar batas yang spekulatif. Masalah-masalah ini telah diperbaiki dalam rilis kernel 5.11.8, 5.10.25, 5.4.107, 4.19.182, dan 4.14.227, dan juga disertakan dalam pembaruan kernel untuk sebagian besar distribusi. LinuxPara peneliti telah mengembangkan prototipe eksploitasi yang memungkinkan pengguna tanpa hak akses untuk mengekstrak data dari memori kernel.

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