Penggodaman hodoh dalam kernel Linux yang telah berada dalam talian utama selama lebih tiga tahun telah dipanggil keluar. Disebabkan oleh Pelayan X.Org buggy/xf86-video-modesetting DDX, kernel Linux telah mengenakan gelagat berbeza sama ada sesuatu proses bermula dengan”X”dan seterusnya melumpuhkan sokongan tetapan mod atom.
Penyelidik keselamatan Linux Jason Donenfeld (yang juga terkenal kerana menghasilkan WireGuard), terjumpa penggodaman kod hodoh ini dalam kernel.
Donenfeld mengulas hujung minggu ini pada senarai mel kernel:
Ini mengembalikan 26b1d3b527e7 (“drm/atomic: Ambil mainan atom dari X”), kludge seperti rootkit yang tidak mempunyai perniagaan di dalam kernel tujuan umum. Ia adalah jenis penggodaman penyahpepijatan yang saya akan gunakan seketika tetapi tidak pernah melakukan, atau sejenis helah perisian hasad babies-first-process-hider.
Kisah belakangnya ialah beberapa kod ruang pengguna–xorg-server–mempunyai DDX penyelarasan yang tidak dikodkan dengan betul. Dengan tiada siapa yang mahu mengekalkan X11 lagi, daripada membetulkan kod buggy, kernel telah dilaraskan untuk mengelakkan daripada menyentuh X11. Mengecewakan, tetapi cukup adil: jika kernel tidak mahu menyokong beberapa API ruang pengguna lagi, perkara yang betul untuk dilakukan ialah mengatur langkah mundur yang anggun di mana ruang pengguna berpendapat ia tidak tersedia dengan cara yang boleh diurus.
Walau bagaimanapun, *cara* yang dilakukannya ialah dengan memeriksa `current->comm[0]==’X’`, dan melumpuhkannya untuk kes itu sahaja. Jadi ini bermakna *bukan* semata-mata masalah kernel tidak mahu menyokong API ruang pengguna tertentu lagi, tetapi kernel tidak mahu menyokong xorg-server, secara teori, tetapi sebenarnya, ternyata, itu semua proses yang mulakan dengan’X’.
Bermain permainan dengan semasa->kom seperti ini jelas salah, dan agak mengejutkan bahawa perkara ini pernah dilakukan.
commit pada kernel ini dengan semakan aksara pertama”X”telah dibuat pada September 2019. Hujah dalam komit kernel Linux pada masa itu ialah:
Dddx-modesetting mempunyai idea yang benar-benar rosak tentang cara atom berfungsi:
-tidak melumpuhkan penyambung lama, dengan mengandaikan ia mendapat auto nyahdaya seperti dengan setcrtc warisan
-menganggap ASYNC_FLIP berwayar melalui untuk ioctl atom
-tiada satu pun panggilan ke TEST_ONLY[Dalam erti kata lain] pelaksanaannya ialah terjemahan 1:1 daripada ioctl warisan kepada atom, iaitu a) rosak b) sia-sia.
Kami sudah mempunyai pepijat dalam kedua-dua i915 dan amdgpu-DC di mana ini menghalang kami daripada mendayakan ciri yang kemas.
Sekiranya sesiapa mengambil berat tentang atom dalam X, kita boleh menambah tahap atom baharu (req->nilai==2) dengan mudah untuk X mendapatkan semula mainan berkilat itu.
Memandangkan versi rosak-modesetting ini telah dihantar, sebenarnya tiada cara lain untuk keluar dari ikatan ini.
Berita”baik”ialah sejak itu pada bahagian ruang pengguna pada tahun 2019, kod modset video xf86 diteruskan dan melumpuhkan sokongan atom secara lalai. Jadi secara teknikalnya jika menjalankan timbunan X.Org yang dikemas kini dalam tempoh tiga tahun yang lalu, penggodaman kernel ini tidak diperlukan lagi kerana ruang pengguna pada ketika itu mengelakkan API atom.
Kita akan lihat sama ada Linus Torvalds baik-baik saja dengan penggodaman ini dialih keluar kerana ia bertentangan dengan prinsipnya”tidak memecahkan ruang pengguna”dengan kemudian mengundurkan sistem jika berpegang pada timbunan Pelayan X.Org yang sudah lapuk dan ingin berjalan dengan versi kernel masa hadapan. Kita akan lihat tetapi menghairankan ia mengambil masa tiga tahun untuk kod kotor ini dikritik.