Kerentanan dalam implementasi soket AF_PACKET pada kernel Linux

Tiga tahun setelah gelombang kerentanan (1, 2, 3, 4, 5) di subsistem AF_PACKET kernel Linux diidentifikasi satu masalah lagi (CVE-2020-14386), memungkinkan pengguna lokal yang tidak memiliki hak istimewa untuk mengeksekusi kode sebagai root atau keluar dari wadah terisolasi jika mereka memiliki akses root.

Membuat soket AF_PACKET dan mengeksploitasi kerentanan memerlukan hak istimewa CAP_NET_RAW. Namun, izin yang ditentukan dapat diperoleh oleh pengguna yang tidak memiliki hak istimewa dalam wadah yang dibuat pada sistem dengan dukungan untuk namespace pengguna diaktifkan. Misalnya, ruang nama pengguna diaktifkan secara default di Ubuntu dan Fedora, tetapi tidak diaktifkan di Debian dan RHEL. Di Android, proses server media berhak membuat soket AF_PACKET, yang melaluinya kerentanan dapat dieksploitasi.

Kerentanan terdapat pada fungsi tpacket_rcv dan disebabkan oleh kesalahan dalam menghitung variabel netoff. Penyerang dapat membuat kondisi di mana variabel netoff ditulis ke nilai yang lebih kecil dari variabel maclen, yang akan menyebabkan overflow saat menghitung "macoff = netoff - maclen" dan selanjutnya salah menyetel penunjuk ke buffer untuk data yang masuk. Akibatnya, penyerang dapat memulai penulisan dari 1 hingga 10 byte ke area di luar batas buffer yang dialokasikan. Perlu dicatat bahwa eksploitasi sedang dalam pengembangan yang memungkinkan Anda mendapatkan hak root dalam sistem.

Masalahnya sudah ada di kernel sejak Juli 2008, yaitu. memanifestasikan dirinya dalam semua inti sebenarnya. Perbaikan saat ini tersedia sebagai tambalan. Anda dapat melacak ketersediaan pembaruan paket di distribusi di halaman berikut: Ubuntu, Fedora, SUSE, Debian, RHEL, Lengkungan.

Sumber: opennet.ru

Tambah komentar