Kernel Linux Telah Memaksa Perilaku Berbeda Untuk Proses Dimulai Dengan “X”

  • Post author:
  • Post category:Linux

Peretasan buruk di dalam kernel Linux yang telah ada di jalur utama selama lebih dari tiga tahun telah dipanggil. Karena X.Org Server / xf86-video-modesetting DDX yang bermasalah, kernel Linux telah menerapkan perilaku yang berbeda pada apakah suatu proses dimulai dengan “X” dan pada gilirannya menonaktifkan dukungan pengaturan mode atom.
Peneliti keamanan Linux Jason Donenfeld (yang juga terkenal dengan WireGuard), menemukan peretasan kode jelek ini di dalam kernel.

Donenfeld berkomentar akhir pekan ini di milis kernel:
Ini mengembalikan 26b1d3b527e7 (“drm/atomic: Ambil mainan atom dari X”), kludge seperti rootkit yang tidak memiliki urusan di dalam kernel tujuan umum. Ini adalah jenis peretasan debugging yang akan saya gunakan sebentar tetapi tidak pernah komit, atau semacam trik malware babbies-first-process-hider.
Latar belakangnya adalah bahwa beberapa kode ruang pengguna — xorg-server — memiliki pengaturan mode DDX yang tidak benar-benar dikodekan dengan benar. Karena tidak ada lagi yang ingin memelihara X11, daripada memperbaiki kode buggy, kernel disesuaikan agar tidak perlu menyentuh X11. Menyedihkan, tetapi cukup adil: jika kernel tidak ingin mendukung beberapa API ruang pengguna lagi, hal yang benar untuk dilakukan adalah mengatur fallback yang anggun di mana ruang pengguna menganggapnya tidak tersedia dengan cara yang dapat dikelola.
Namun, *cara* yang dilakukan adalah dengan memeriksa `current->comm[0] == `X“, dan menonaktifkannya hanya untuk kasus itu. Jadi itu berarti *bukan* hanya masalah kernel yang tidak ingin mendukung API ruang pengguna tertentu lagi, melainkan kernel yang tidak ingin mendukung server xorg, secara teori, tetapi sebenarnya, ternyata, itu semua proses yang dimulai dengan `X`.
Bermain game dengan current->comm seperti ini jelas salah, dan cukup mengejutkan bahwa ini pernah dilakukan. Komitmen ke kernel ini dengan pemeriksaan karakter pertama “X” dibuat kembali pada September 2019. Argumen di Linux itu komit kernel pada saat itu adalah:
-modesetting ddx memiliki gagasan yang benar-benar rusak tentang cara kerja atom:
– tidak menonaktifkan konektor lama, dengan asumsi konektor tersebut dinonaktifkan secara otomatis seperti dengan setcrtc lama
– mengasumsikan ASYNC_FLIP ditransfer untuk atom ioctl
– tidak ada satu panggilan pun ke TEST_ONLY
[Dengan kata lain] implementasinya adalah terjemahan 1: 1 dari ioctls lawas ke atom, yang a) rusak b) tidak ada gunanya.
Kami sudah memiliki bug di i915 dan amdgpu-DC di mana ini mencegah kami mengaktifkan fitur yang rapi.
Jika ada yang peduli tentang atom di X, kita dapat dengan mudah menambahkan level atom baru (req->nilai == 2) untuk X untuk mendapatkan kembali mainan mengkilap.
Karena versi -modesetting yang rusak ini telah dikirimkan, benar-benar tidak ada cara lain untuk keluar dari ikatan ini. Kabar “baik” adalah sejak saat itu di sisi ruang pengguna pada tahun 2019 kode xf86-video-modesetting pergi depan dan menonaktifkan dukungan atom secara default. Jadi secara teknis jika menjalankan tumpukan X.Org yang diperbarui dalam tiga tahun terakhir, peretasan kernel ini tidak diperlukan lagi karena ruang pengguna saat itu menghindari API atom.
Kami akan melihat apakah Linus Torvalds baik-baik saja dengan peretasan ini dihapus karena bagaimanapun juga itu bertentangan dengan prinsipnya “tidak melanggar ruang pengguna” dengan kemudian melakukan regresi sistem jika menempel pada tumpukan Server X.Org yang sudah ketinggalan zaman dan ingin dijalankan dengan versi kernel yang akan datang. Kita lihat saja, tapi mengejutkan butuh waktu tiga tahun untuk mengkritisi kode kotor ini.

Itulah berita seputar Kernel Linux Telah Memaksa Perilaku Berbeda Untuk Proses Dimulai Dengan “X”, semoga bermanfaat. Disadur dari Phoronix.com.