OpenSSH 9.2 dirilis dengan perbaikan kerentanan pra-otentikasi

Rilis OpenSSH 9.2 telah diterbitkan, implementasi terbuka klien dan server untuk bekerja menggunakan protokol SSH 2.0 dan SFTP. Versi baru ini menghilangkan kerentanan yang menyebabkan pembebasan memori ganda pada tahap pra-otentikasi. Hanya rilis OpenSSH 9.1 yang terpengaruh; masalah ini tidak muncul di versi sebelumnya.

Untuk menciptakan kondisi manifestasi kerentanan, cukup dengan mengubah spanduk klien SSH menjadi “SSH-2.0-FuTTYSH_9.1p1” untuk menyetel tanda “SSH_BUG_CURVE25519PAD” dan “SSH_OLD_DHGEX”, yang bergantung pada versi SSH klien. Setelah menyetel tanda ini, memori untuk buffer “options.kex_algorithms” dibebaskan dua kali - saat menjalankan fungsi do_ssh2_kex(), yang memanggil compat_kex_proposal(), dan saat menjalankan fungsi do_authentication2(), yang memanggil input_userauth_request(), mm_getpwnamallow( ), copy_set_server_options() sepanjang rantai, assemble_algorithms() dan kex_assemble_names().

Membuat eksploitasi yang berfungsi untuk kerentanan dianggap tidak mungkin, karena proses eksploitasi terlalu rumit - perpustakaan alokasi memori modern memberikan perlindungan terhadap pembebasan ganda memori, dan proses pra-authentikasi di mana terdapat kesalahan berjalan dengan hak istimewa yang dikurangi secara terisolasi lingkungan kotak pasir.

Selain kerentanan yang disebutkan, rilis baru ini juga memperbaiki dua masalah keamanan lainnya:

  • Terjadi kesalahan saat memproses pengaturan "PermitRemoteOpen", menyebabkan argumen pertama diabaikan jika berbeda dengan nilai "any" dan "none". Masalah muncul di versi yang lebih baru dari OpenSSH 8.7 dan menyebabkan pemeriksaan dilewati ketika hanya satu izin yang ditentukan.
  • Penyerang yang mengendalikan server DNS yang digunakan untuk menyelesaikan nama dapat melakukan substitusi karakter khusus (misalnya, “*”) ke dalam file unknown_hosts jika opsi CanonicalizeHostname dan CanonicalizePerownedCNAMEs diaktifkan dalam konfigurasi, dan penyelesai sistem tidak memeriksa kebenarannya tanggapan dari server DNS. Serangan ini dianggap tidak mungkin terjadi karena nama yang dikembalikan harus sesuai dengan ketentuan yang ditentukan melalui CanonicalizePermitCNAMEs.

Perubahan lainnya:

  • Pengaturan EnableEscapeCommandline telah ditambahkan ke ssh_config untuk ssh guna mengontrol apakah pemrosesan sisi klien dari urutan escape "~C" yang menyediakan baris perintah diaktifkan. Secara default, penanganan "~C" sekarang dinonaktifkan untuk menggunakan isolasi sandbox yang lebih ketat, yang berpotensi merusak sistem yang menggunakan "~C" untuk penerusan port saat runtime.
  • Arahan ChannelTimeout telah ditambahkan ke sshd_config untuk sshd untuk mengatur batas waktu ketidakaktifan saluran (saluran di mana tidak ada lalu lintas yang dicatat untuk waktu yang ditentukan dalam arahan akan ditutup secara otomatis). Batas waktu yang berbeda dapat diatur untuk sesi, X11, agen, dan pengalihan lalu lintas.
  • Direktif UnusedConnectionTimeout telah ditambahkan ke sshd_config untuk sshd, memungkinkan Anda menyetel batas waktu untuk mengakhiri koneksi klien yang tidak memiliki saluran aktif selama waktu tertentu.
  • Opsi “-V” telah ditambahkan ke sshd untuk menampilkan versinya, mirip dengan opsi serupa di klien ssh.
  • Menambahkan baris "Host" ke output "ssh -G", yang mencerminkan nilai argumen nama host.
  • Opsi "-X" telah ditambahkan ke scp dan sftp untuk mengontrol parameter protokol SFTP seperti ukuran buffer salinan dan jumlah permintaan yang tertunda.
  • ssh-keyscan memungkinkan pemindaian rentang alamat CIDR lengkap, misalnya "ssh-keyscan 192.168.0.0/24".

Sumber: opennet.ru

Tambah komentar