Mendapati kelemahan dalam subsistem tty kernel Linux

Penyelidik daripada pasukan Google Project Zero dikeluarkan baru-baru ini melalui catatan blog kaedah baharu untuk mengeksploitasi kelemahan (CVE-2020-29661) dalam pelaksanaan pengendali ioctl TIOCSPGRP Subsistem tty kernel Linux, serta mekanisme perlindungan terperinci yang boleh menyekat kelemahan ini.

Disebutkan dalam jawatan itu masalah ini disebabkan oleh ralat dalam tetapan kunci, membawa kepada keadaan perlumbaan dalam kod /tty/tty_jobctrl.c, yang digunakan untuk mencipta keadaan untuk mengakses memori selepas pelancaran (guna-selepas-bebas), dieksploitasi oleh ruang pengguna melalui manipulasi dengan ioct- dengan memanggil TIOCSPGRP.

Selain maklumat yang diterbitkan, juga demo eksploitasi berfungsi telah dilakukan untuk peningkatan keistimewaan dalam Debian 10 dengan kernel 4.19.0-13-amd64 dan yang juga tidak menolak bahawa ia boleh menjejaskan pelbagai pengedaran, antaranya sudah tentu adalah yang berasaskan dan berasal daripada Debian.

Banyak teknik eksploitasi individu dan pilihan mitigasi yang saya huraikan di sini bukanlah sesuatu yang baru. Walau bagaimanapun, saya fikir ia berbaloi untuk menulisnya bersama-sama untuk menunjukkan bagaimana pelbagai mitigasi berinteraksi dengan eksploitasi selepas bebas yang agak normal.

Coretan kod dalam catatan blog ini yang berkaitan dengan eksploitasi diambil daripada versi sebelumnya 4.19.160, kerana itulah inti sasaran Debian berdasarkan; beberapa coretan kod lain adalah daripada talian utama Linux.

Pada masa yang sama, dalam artikel yang diterbitkan, penekanan tidak begitu banyak pada teknik mencipta eksploitasi berfungsi, tetapi pada alat yang mana ada dalam kernel untuk melindungi diri anda terhadap kelemahan tersebut.

Kesimpulannya mengecewakan, seperti yang dinyatakan bahawa kaedah seperti membahagikan memori dalam timbunan dan mengawal akses kepada memori selepas ia dibebaskan tidak digunakan dalam amalan kerana ia membawa kepada kemerosotan prestasi dan perlindungan berdasarkan CFI (Control Flow Integrity), yang menyekat eksploitasi di kemudian hari. peringkat serangan, memerlukan penambahbaikan.

Jenis peranti terminal khas ialah pseudo-terminal, yang digunakan apabila, sebagai contoh, anda membuka aplikasi terminal dalam persekitaran grafik atau menyambung ke mesin jauh melalui SSH. Walaupun peranti terminal lain disambungkan kepada beberapa jenis perkakasan, kedua-dua hujung pseudo-terminal dikawal oleh ruang pengguna, dan pseudo-terminal boleh dicipta secara bebas oleh ruang pengguna (tanpa keistimewaan).

Setiap kali / dev / ptmx dibuka (singkatan untuk "pemultipleks terminal pseudo"), deskriptor fail yang terhasil mewakili bahagian peranti (dirujuk dalam dokumentasi dan sumber kernel sebagai "terminal pseudo induk") peranti. pseudo baharu terminal.

 Peranti terminal yang sepadan (yang biasanya disambungkan oleh shell) dibuat secara automatik oleh kernel di bawah / dev / pts / .

Apabila melihat perkara yang boleh membuat perbezaan dalam jangka masa panjang, penekanan adalah pada menggunakan penghurai statik lanjutan atau menggunakan bahasa selamat ingatan seperti dialek Rust dan C dengan anotasi lanjutan (seperti terbukti C) untuk membina penyemak status, kunci, objek dan penunjuk. Kaedah perlindungan juga menyebut mendayakan mod panic_on_oops, menjadikan struktur kernel baca sahaja dan menyekat akses kepada panggilan sistem melalui mekanisme seperti seccomp.

Ralat yang menyebabkan masalah ia telah ditetapkan dalam kernel Linux pada 3 Dis tahun lepas. Masalah menunjukkan dirinya dalam kernel sebelum versi 5.9.13, tetapi kebanyakan pengedaran telah membetulkan masalah dalam kemas kini pakej kernel yang ditawarkan tahun lepas.

Kerentanan serupa juga disebut (CVE-2020-29660) yang ditemui serentak dalam pelaksanaan panggilan ioctl TIOCGSID, tetapi juga telah dialih keluar di mana-mana.

Akhirnya Sekiranya anda berminat untuk mengetahui lebih lanjut mengenainya, anda boleh menyemak butirannya Dalam pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.