Dirty Pipe, salah satu kerentanan paling serius selama bertahun-tahun di Linux

Baru-baru ini berita itu dirilis di internet tentang penemuan kerentanan baru di Linux yang terdaftar sebagai "Keparahan Tinggi" yang memengaruhi semua kernel sejak versi 5.8, serta turunannya, termasuk Android.

Dikenal sebagai Dirty Pipe memungkinkan data ditimpa dalam file hanya-baca dan dapat menyebabkan peningkatan hak istimewa dengan menyuntikkan kode ke dalam proses "root".

Meskipun telah ditambal ke kernel Linux arus utama, bug tersebut dapat dijadikan senjata dalam bentuk eksploitasi eskalasi hak istimewa pada semua perangkat yang menjalankan kernel Linux versi 5.8 atau yang lebih baru.

Ini juga berarti bahwa banyak smartphone Android yang baru dirilis, seperti Samsung Galaxy S22 dan Google Pixel 6, juga rentan, hingga setiap perangkat menerima patch kernel yang sesuai dari OEM masing-masing.

Tentang Pipa Kotor

Kerentanannya adalah diungkapkan oleh peneliti keamanan Max Kellerman dan dikatalogkan sebagai (CVE-2022-0847), butuh beberapa bulan untuk menemukan eksploitasi proof-of-concept.

Kerentanan memungkinkan pengguna yang tidak memiliki hak istimewa untuk menyuntikkan dan menimpa data dalam file hanya-baca, termasuk proses SUID yang berjalan sebagai root. Julukan sehari-hari tampaknya merupakan permainan dari bug yang terkenal Sapi Kotor dan mekanisme Linux yang disebut pipelining untuk pengiriman pesan antarproses, karena yang terakhir digunakan selama rutinitas eksploit.

Semuanya dimulai setahun yang lalu dengan tiket dukungan yang terkait dengan file yang rusak. Seorang pelanggan mengeluh bahwa log akses yang diunduh tidak dapat dibongkar. Dan memang, ada file log yang rusak di salah satu server log; itu bisa tidak terkompresi, tetapi gzip melaporkan kesalahan CRC. Saya tidak dapat menjelaskan mengapa itu rusak, tetapi saya berasumsi bahwa proses pemisahan malam telah macet dan menghasilkan file yang rusak. Saya secara manual mengoreksi CRC file, menutup tiket dan segera melupakan masalahnya.

Setelah berbulan-bulan analisis, peneliti akhirnya menemukan bahwa file klien yang rusak adalah hasil dari bug di kernel Linux. Dia menemukan cara untuk mengeksploitasi Dirty Pipe untuk mengizinkan siapa pun yang memiliki akun, termasuk akun "tidak ada" yang memiliki hak istimewa, untuk menambahkan kunci SSH ke akun pengguna root.

Untuk memicu kerentanan, Kellerman membagikan bukti konsepnya, penyerang harus memiliki izin baca. Selain itu, pengguliran tidak boleh berada pada batas halaman, penulisan tidak dapat melewati batas halaman, dan ukuran file tidak dapat diubah.

Untuk mengeksploitasi kerentanan ini, Anda harus: membuat pipa, mengisi pipa dengan data arbitrer (dengan menyetel flag PIPE_BUF_FLAG_CAN_MERGE pada semua entri di ring), mengosongkan pipa (membiarkan flag disetel pada semua instance struktur pipe_buffer dalam struktur dari ring pipe_inode_info), gabungkan data dari file target (dibuka dengan O_RDONLY) ke dalam pipa tepat sebelum offset target, dan tulis data arbitrer ke pipa.

Dirty Pipe juga memengaruhi versi Android apa pun yang didasarkan pada salah satu versi kernel Linux yang rentan. Karena Android sangat terfragmentasi, model perangkat yang terpengaruh tidak dapat dilacak secara seragam.

Menurut Kellerman, Google menggabungkan perbaikan bug dengan kernel Android bulan lalu, tepat setelah diperbaiki dengan rilis kernel Linux versi 5.16.11, 5.15.25 dan 5.10.102.

Karena itu, kami mungkin harus menunggu sebentar sebelum OEM mulai meluncurkan pembaruan Android yang berisi perbaikan. Pixel 6 Google, misalnya, masih rentan, tetapi pengguna tingkat lanjut dapat mengurangi kekurangannya dengan memasang kernel aftermarket yang ditambal khusus sebagai opsi alternatif.

Pengembang kernel Linux merilis perbaikan (5.16.11, 5.15.25, 5.10.102) pada 23 Februari, sementara Google menambal kernel Android pada 24 Februari. Kellermann dan pakar lainnya membandingkan kerentanan dengan CVE-2016-5195 “Sapi Kotor” dan mereka mengatakan itu lebih mudah untuk dieksploitasi.

Terakhir, jika Anda tertarik untuk mengetahuinya lebih lanjut, Anda bisa melihat detailnya Di tautan berikut.


Tambahkan sebagai sumber pilihan di Google