Kerentanan dalam XFS yang membolehkan data peranti blok mentah dibaca

Kerentanan (CVE-2021-4155) telah dikenal pasti dalam kod sistem fail XFS yang membenarkan pengguna tempatan yang tidak mempunyai hak untuk membaca data blok yang tidak digunakan terus daripada peranti blok. Semua versi utama kernel Linux yang lebih lama daripada 5.16 yang mengandungi pemacu XFS dipengaruhi oleh isu ini. Pembaikan telah disertakan dalam versi 5.16, serta dalam kemas kini kernel 5.15.14, 5.10.91, 5.4.171, 4.19.225, dsb. Status kemas kini yang dijana untuk menyelesaikan masalah dalam pengedaran boleh dijejaki pada halaman ini: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch.

Kerentanan ini disebabkan oleh tingkah laku yang tidak betul bagi dua ioctl(XFS_IOC_ALLOCSP) dan ioctl(XFS_IOC_FREESP) khusus XFS, yang merupakan analog berfungsi bagi panggilan sistem fallocate() seluruh kernel. Apabila meningkatkan saiz fail yang tidak diselaraskan dengan blok, ioctls XFS_IOC_ALLOCSP/XFS_IOC_FREESP tidak menetapkan semula bait ekor kepada sifar sehingga sempadan blok seterusnya. Oleh itu, pada XFS dengan saiz blok standard 4096 bait, penyerang boleh membaca sehingga 4095 bait data bertulis sebelumnya daripada setiap blok. Kawasan ini mungkin mengandungi data daripada fail yang dipadamkan, fail dinyahfragmen dan fail dengan blok nyahduplikasi.

Anda boleh menguji sistem anda untuk masalah menggunakan prototaip eksploitasi mudah. Jika, selepas melaksanakan urutan arahan yang dicadangkan, adalah mungkin untuk membaca teks Shakespeare, maka pemandu FS terdedah. Pada mulanya memasang partition XFS untuk demonstrasi memerlukan keistimewaan root.

Memandangkan ioctl(XFS_IOC_ALLOCSP) dan ioctl(XFS_IOC_FREESP) boleh dikatakan sama dalam kefungsian seperti fallocate() standard, dan satu-satunya perbezaannya ialah kebocoran data, kehadirannya adalah serupa dengan pintu belakang. Walaupun dasar am untuk tidak menukar antara muka sedia ada dalam kernel, atas cadangan Linus, ia telah memutuskan untuk mengalih keluar sepenuhnya ioctl ini dalam versi seterusnya.

Sumber: opennet.ru

Tambah komen