Pembaruan Exim 4.94.2 dengan perbaikan untuk 10 kerentanan yang dapat dieksploitasi dari jarak jauh

Rilis server email Exim 4.94.2 telah diterbitkan dengan penghapusan 21 kerentanan (CVE-2020-28007-CVE-2020-28026, CVE-2021-27216), yang diidentifikasi oleh Qualys dan disajikan dengan nama kode 21Kuku. 10 masalah dapat dieksploitasi dari jarak jauh (termasuk mengeksekusi kode dengan hak root) melalui manipulasi perintah SMTP saat berinteraksi dengan server.

Semua versi Exim, yang riwayatnya telah dilacak di Git sejak 2004, terpengaruh oleh masalah ini. Prototipe eksploitasi yang berfungsi telah disiapkan untuk 4 kerentanan lokal dan 3 masalah jarak jauh. Eksploitasi kerentanan lokal (CVE-2020-28007, CVE-2020-28008, CVE-2020-28015, CVE-2020-28012) memungkinkan Anda meningkatkan hak istimewa Anda ke pengguna root. Dua masalah jarak jauh (CVE-2020-28020, CVE-2020-28018) memungkinkan kode dieksekusi tanpa otentikasi sebagai pengguna Exim (Anda kemudian dapat memperoleh akses root dengan mengeksploitasi salah satu kerentanan lokal).

Kerentanan CVE-2020-28021 memungkinkan eksekusi kode jarak jauh langsung dengan hak root, tetapi memerlukan akses yang diautentikasi (pengguna harus membuat sesi yang diautentikasi, setelah itu mereka dapat mengeksploitasi kerentanan melalui manipulasi parameter AUTH dalam perintah MAIL FROM). Masalahnya disebabkan oleh fakta bahwa penyerang dapat mencapai substitusi string di header file spool dengan menulis nilai authenticated_sender tanpa keluar dari karakter khusus dengan benar (misalnya, dengan meneruskan perintah “MAIL FROM:<> AUTH=Raven+0AReyes ”).

Selain itu, diketahui bahwa kerentanan jarak jauh lainnya, CVE-2020-28017, dapat dieksploitasi untuk mengeksekusi kode dengan hak pengguna “exim” tanpa autentikasi, tetapi memerlukan memori lebih dari 25 GB. Untuk 13 kerentanan lainnya, eksploitasi berpotensi juga dipersiapkan, namun upaya ke arah ini belum dilakukan.

Pengembang Exim diberitahu tentang masalah ini pada bulan Oktober tahun lalu dan menghabiskan lebih dari 6 bulan untuk mengembangkan perbaikan. Semua administrator disarankan untuk segera memperbarui Exim di server email mereka ke versi 4.94.2. Semua versi Exim sebelum rilis 4.94.2 telah dinyatakan usang. Publikasi versi baru ini dikoordinasikan dengan distribusi yang secara bersamaan menerbitkan pembaruan paket: Ubuntu, Arch Linux, FreeBSD, Debian, SUSE dan Fedora. RHEL dan CentOS tidak terpengaruh oleh masalah ini, karena Exim tidak disertakan dalam repositori paket standarnya (EPEL belum memiliki pembaruan).

Kerentanan yang dihapus:

  • CVE-2020-28017: Integer meluap dalam fungsi receiver_add_recipient();
  • CVE-2020-28020: Integer meluap dalam fungsi receiver_msg();
  • CVE-2020-28023: Pembacaan di luar batas di smtp_setup_msg();
  • CVE-2020-28021: Substitusi baris baru di header file spool;
  • CVE-2020-28022: Menulis dan membaca di area di luar buffer yang dialokasikan dalam fungsi ekstrak_option();
  • CVE-2020-28026: Pemotongan dan substitusi string di spool_read_header();
  • CVE-2020-28019: Crash saat mengatur ulang penunjuk fungsi setelah terjadi kesalahan BDAT;
  • CVE-2020-28024: Buffer underflow di fungsi smtp_ungetc();
  • CVE-2020-28018: Gunakan akses buffer setelah bebas di tls-openssl.c
  • CVE-2020-28025: Pembacaan di luar batas dalam fungsi pdkim_finish_bodyhash().

Kerentanan lokal:

  • CVE-2020-28007: Serangan tautan simbolis di direktori log Exim;
  • CVE-2020-28008: Serangan direktori spool;
  • CVE-2020-28014: Pembuatan file sewenang-wenang;
  • CVE-2021-27216: Penghapusan file secara sewenang-wenang;
  • CVE-2020-28011: Buffer meluap di queue_run();
  • CVE-2020-28010: Penulisan di luar batas di main();
  • CVE-2020-28013: Buffer overflow dalam fungsi parse_fix_phrase();
  • CVE-2020-28016: Penulisan di luar batas dalam parse_fix_phrase();
  • CVE-2020-28015: Substitusi baris baru di header file spool;
  • CVE-2020-28012: Bendera close-on-exec tidak ada untuk pipa tanpa nama yang memiliki hak istimewa;
  • CVE-2020-28009: Integer overflow dalam fungsi get_stdinput().



Sumber: opennet.ru

Tambah komentar