Sebuah teknik untuk mengeksploitasi kerentanan pada subsistem tty dari kernel Linux telah terungkap

Peneliti dari tim Google Project Zero menerbitkan metode untuk mengeksploitasi kerentanan (CVE-2020-29661) dalam implementasi handler ioctl TIOCSPGRP dari subsistem tty kernel Linux, dan juga memeriksa secara rinci mekanisme perlindungan yang dapat memblokir hal tersebut. kerentanan.

Bug yang menyebabkan masalah telah diperbaiki di kernel Linux pada 3 Desember tahun lalu. Masalahnya muncul di kernel hingga versi 5.9.13, tetapi sebagian besar distribusi telah memperbaiki masalah tersebut dalam pembaruan paket kernel yang ditawarkan tahun lalu (Debian, RHEL, SUSE, Ubuntu, Fedora, Arch). Kerentanan serupa (CVE-2020-29660) secara bersamaan ditemukan dalam implementasi panggilan ioctl TIOCGSID, tetapi juga telah diperbaiki di semua tempat.

Masalahnya disebabkan oleh kesalahan saat menyetel kunci, yang menyebabkan kondisi balapan di kode driver/tty/tty_jobctrl.c, yang digunakan untuk membuat kondisi penggunaan setelah bebas yang dieksploitasi dari ruang pengguna melalui manipulasi ioct dengan memanggil TIOCSPGRP. Eksploitasi yang berfungsi telah ditunjukkan untuk peningkatan hak istimewa di Debian 10 dengan kernel 4.19.0-13-amd64.

Pada saat yang sama, artikel yang diterbitkan tidak terlalu berfokus pada teknik membuat eksploitasi yang berfungsi, melainkan pada alat apa yang ada di kernel untuk melindungi dari kerentanan tersebut. Kesimpulannya tidak menyenangkan; metode seperti segmentasi memori di heap dan kontrol akses memori setelah dibebaskan tidak digunakan dalam praktik, karena menyebabkan penurunan kinerja, dan perlindungan berbasis CFI (Control Flow Integrity), yang memblokir eksploitasi pada tahap akhir serangan, perlu perbaikan.

Saat mempertimbangkan apa yang akan membuat perbedaan dalam jangka panjang, salah satu yang menonjol adalah penggunaan penganalisis statis tingkat lanjut atau penggunaan bahasa yang aman untuk memori seperti dialek Rust dan C dengan anotasi yang kaya (seperti Checked C) untuk memeriksa status selama fase pembuatan.kunci, objek, dan penunjuk. Metode perlindungan juga mencakup aktivasi mode panik_on_oops, mengalihkan struktur kernel ke mode read-only, dan membatasi akses ke panggilan sistem menggunakan mekanisme seperti seccomp.

Sumber: opennet.ru

Tambah komentar