Mendeteksi kerentanan di sudo yang memengaruhi Linux Mint dan Elementary OS

Recientemente kerentanan diungkapkan dalam utilitas sudo (digunakan untuk mengatur pemberian hak administrasi untuk satu program atau eksekusi perintah atas nama pengguna lain) yang dikatalogkan sebagai "CVE-2019-18634", yang memungkinkan Anda meningkatkan hak istimewa Anda pada sistem untuk pengguna root.

Masalahnya terdeteksi sejak rilis sudo versi 1.7.1 hingga versi 1.8.29 yang itu dapat dieksploitasi hanya ketika menggunakan opsi "pwfeedback" di file / etc / sudoers, yang dinonaktifkan secara default, di versi sudo yang lebih baru, tetapi diaktifkan di beberapa distribusi seperti Linux Mint dan Elementary OS.

Opsi "pwfeedback" memungkinkan tampilan karakter "*" setelah setiap karakter dimasukkan saat memasukkan kata sandi.

Karena kesalahan dalam implementasi fungsi getln () didefinisikan dalam file tgetpass.c, di bawah urutan input standar (stdin), baris yang terlalu panjang dengan sandi mungkin tidak muat dalam buffer yang dialokasikan dan menimpa data lain di stack. Overflow terjadi saat menjalankan kode sudo dengan hak akses root.

Inti dari masalahnya adalah saat itu digunakan karakter khusus ^ U selama proses input (penghapusan baris) dan ketika operasi tulis gagal, kode yang bertanggung jawab untuk menghapus karakter keluaran "*" menyetel ulang data pada ukuran buffer yang tersedia, tetapi tidak mengembalikan pointer ke posisi nilai semula saat ini dalam buffer.

Faktor lain yang berkontribusi pada operasi ini adalah kurangnya pematian otomatis mode pwfeedback. ketika data diterima bukan dari terminal tetapi melalui aliran input (cacat ini memungkinkan untuk membuat kondisi untuk kesalahan perekaman, misalnya, dalam sistem dengan saluran searah yang tidak disebutkan namanya, kesalahan terjadi saat mencoba merekam Akhir saluran untuk dibaca).

Sejak penyerang dapat sepenuhnya mengontrol penimpaan data di tumpukan, tidaklah sulit untuk membuat eksploitasi yang memungkinkan Anda meningkatkan hak istimewa Anda untuk pengguna root.

Masalahnya bisa dieksploitasi oleh pengguna manapun, terlepas dari hak untuk menggunakan sudo dan keberadaan pengaturan khusus pengguna di sudoers.

Seorang pengguna dengan hak sudo dapat memeriksa apakah «pwfeedback»Diaktifkan dengan menjalankan:

  sudo -l

Iya "pwfeedback»Muncul di output« Matching Default Value Entries », konfigurasi sudoers dia terlihat terpengaruh. Dalam contoh berikut, konfigurasi sudoers rentan:

 sudo -l

Matching Defaults entries for “USER” on linux-build:

insults, pwfeedback, mail_badpass, mailerpath=/usr/sbin/sendmail

Pengguna USER dapat menjalankan perintah berikut di linux-build:

         (ALL: ALL) ALL

Tentang bug dijelaskan bahwa error tersebut dapat dieksploitasi tanpa perlu izin sudo, hanya membutuhkannya saja pwfeedback diaktifkan. Kesalahan dapat direproduksi dengan mengirimkan input besar ke sudo melalui pipa ketika meminta kata sandi.

Sebagai contoh:

perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id

Password: Segmentation fault

Ada dua kekurangan yang berkontribusi pada kerentanan ini:

  • Opsi "pwfeedback" tidak diabaikan, sebagaimana mestinya, saat membaca dari sesuatu selain dari perangkat terminal. Karena kurangnya terminal, versi yang disimpan dari karakter penghapusan baris tetap pada nilai awal 0.

  • Kode yang menghapus garis tanda bintang tidak mengatur ulang posisi buffer dengan benar jika ada kesalahan penulisan, tetapi mengatur ulang sisa panjang buffer. Hasilnya, fungsi getln () bisa menulis melewati akhir buffer.

Akhirnya, masalah ini dilaporkan telah diperbaiki dalam versi sudo 1.8.31, diterbitkan beberapa jam yang lalu. Meskipun dalam distribusi, kerentanan tetap tidak terkoreksi jadi pengguna distribusi yang terpengaruh ditanyai atau bahwa mereka mendeteksi bahwa konfigurasi pwfeedback ada di dalam file / etc / sudoers, perbarui ke versi baru sudo.

Disebutkan itu untuk memblokir masalah, yang paling penting adalah Anda harus memverifikasi bahwa konfigurasi /pwfeedback tidak masuk / etc / sudoers dan jika perlu, itu harus dinonaktifkan.

sumber: https://www.openwall.com


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.