Kerentanan jarak jauh di tumpukan OpenBSD IPv6

Dalam proses latar belakang slaacd, yang bertanggung jawab atas konfigurasi otomatis alamat IPv6 (Konfigurasi Otomatis Alamat IPv6 Stateless, RFC 4862) di OpenBSD, kerentanan telah diidentifikasi yang menyebabkan buffer overflow ketika menerima iklan router IPv6 yang dirancang khusus (RA, Iklan Router) .

Awalnya, fungsionalitas konfigurasi otomatis alamat IPv6 diimplementasikan pada tingkat kernel, namun mulai OpenBSD 6.2, fungsionalitas tersebut dipindahkan ke proses slaacd terpisah yang tidak memiliki hak istimewa. Proses ini bertanggung jawab untuk mengirimkan pesan RS (Router Solicitation) dan mengurai respons RA (Router Advertisement) dengan informasi tentang router dan parameter koneksi jaringan.

Pada bulan Februari, slaacd memperbaiki bug yang menyebabkan crash jika 7 server ditentukan dalam daftar RDNSS (Recursive DNS Servers). Pengawasan ini menarik perhatian peneliti independen yang mencoba memeriksa kode slaacd untuk kesalahan lain yang terjadi saat menguraikan bidang dalam pesan RA. Analisis menunjukkan bahwa ada masalah lain dalam kode yang muncul saat memproses bidang DNSSL (Daftar Pencarian DNS), yang mencakup daftar nama domain dan templat host untuk DNS.

Setiap nama dalam daftar DNSSL dikodekan menggunakan pembatas nol dan tag satu byte intervensi yang menentukan ukuran data berikutnya. Kerentanan ini disebabkan oleh fakta bahwa dalam kode penguraian daftar, bidang dengan ukuran disalin ke dalam variabel dengan tipe bilangan bulat bertanda (β€œlen = data[pos]”). Oleh karena itu, jika suatu nilai ditentukan dalam bidang dengan kumpulan bit paling signifikan, nilai ini akan dianggap dalam operator kondisional sebagai angka negatif dan pemeriksaan untuk ukuran maksimum yang diijinkan (β€œif (len > 63 || len + pos + 1 > datalen) {β€œ) tidak akan berfungsi, yang akan menyebabkan panggilan ke memcpy dengan parameter yang ukuran data yang disalin melebihi ukuran buffer.

Kerentanan jarak jauh di tumpukan OpenBSD IPv6
Kerentanan jarak jauh di tumpukan OpenBSD IPv6


Sumber: opennet.ru

Tambah komentar