Kerentanan jarak jauh anu tiasa dieksploitasi dina server mail qmail

Panaliti kaamanan ti Qualys nunjukkeun kasempetan garapan kerentanan dina server mail qmail, kawéntar deui 2005 (CVE-2005-1513), tapi tetep unpatched sabab panulis qmail pamadegan yén éta unrealistic a nyieun mangpaatkeun gawé anu bisa dipaké pikeun nyerang sistem dina konfigurasi standar. Qualys éta bisa nyiapkeun hiji mangpaatkeun nu refutes asumsi ieu sareng ngamungkinkeun hiji initiate palaksanaan kode jauh dina server ku ngirim pesen dirancang husus.

Masalahna disababkeun ku ngabahekeun integer dina fungsi stralloc_readyplus (), nu bisa lumangsung nalika ngolah pesen anu kacida gedéna. Operasi merlukeun sistem 64-bit kalawan leuwih ti 4GB memori virtual. Nalika kerentanan asalna dianalisis dina 2005, Daniel J. Bernstein pamadegan yén asumsi dina kode nu ukuran tina Asép Sunandar Sunarya disadiakeun salawasna dina nilai 32-bit dumasar kana kanyataan yén euweuh hiji nyadiakeun gigabytes memori pikeun tiap prosés. Sapanjang 15 taun katukang, sistem 64-bit dina server parantos ngagentos sistem 32-bit, sareng jumlah mémori anu disayogikeun sareng rubakpita jaringan parantos ningkat sacara dramatis.

Pangurus pakét qmail nyandak catetan Bernstein sareng ngawatesan mémori anu sayogi nalika ngamimitian prosés qmail-smtpd (contona, dina Debian 10 watesna disetel ka 7MB). Tapi insinyur ti Qualys kapanggih yén ieu teu cukup jeung, sajaba qmail-smtpd, serangan jauh bisa dilumangsungkeun dina prosés qmail-lokal, nu tetep unrestricted dina sakabéh bungkusan dites. Salaku buktina, prototipe eksploitasi disiapkeun anu cocog pikeun nyerang pakét Debian nganggo qmail dina konfigurasi standar.
Pikeun ngatur palaksanaan kode jauh nalika serangan, server butuh 4GB rohangan disk bébas sareng 8GB RAM.
Eksploitasi ngamungkinkeun anjeun pikeun ngajalankeun sagala paréntah cangkang sareng hak-hak pangguna mana waé dina sistem, kecuali pikeun pangguna akar sareng sistem anu henteu gaduh subdirektori sorangan dina diréktori "/home" (prosés qmail-lokal diluncurkeun kalayan hak pamaké lokal ka saha pangiriman dilaksanakeun).

Serangan dilaksanakeun
ngaliwatan ngirim pesen surat anu kacida gedéna, kaasup sababaraha garis header, ukuranana kira 4GB na 576MB. Ngolah string misalna dina qmail-lokal hasilna integer ngabahekeun nalika nyobian pikeun ngirim pesen ka pamaké lokal. Integer ngabahekeun lajeng ngabalukarkeun panyangga mudal nalika nyalin data sarta kamungkinan overwriting kaca memori sareng kode libc. Ku manipulasi tata perenah data dikirimkeun, eta oge mungkin nulis ulang alamat tina fungsi "buka ()", ngaganti eta jeung alamat tina fungsi "sistem ()".

Salajengna, dina prosés nelepon qmesearch () di qmail-lokal, file ".qmail-extension" dibuka ngaliwatan fungsi kabuka (), nu ngabalukarkeun palaksanaan sabenerna fungsi.
sistem (".qmail-extension"). Tapi saprak bagian "extension" tina file dihasilkeun dumasar kana alamat panarima (contona, "localuser-extension@localdomain"), panyerang tiasa ngatur paréntah pikeun dikirim ka ngajalankeun ku nangtukeun pamaké "localuser-; paréntah. ;@localdomain" salaku panarima suratna.

Salila analisis kode, dua kerentanan ogé dicirikeun dina tambahan qmail-verifikasi patch, anu mangrupa bagian ti pakét pikeun Debian. Kerentanan munggaran (CVE-2020-3811) ngamungkinkeun anjeun ngaliwat verifikasi alamat email, sareng anu kadua (CVE-2020-3812) ngabalukarkeun leakage inpormasi lokal. Khususna, kerentanan munggaran ngamungkinkeun anjeun ngaliwat verifikasi kabeneran alamat anu dianggo dina eksploitasi pikeun ngirim paréntah (verifikasi henteu tiasa dianggo pikeun alamat tanpa domain, sapertos "localuser-; paréntah;"). The kerentanan kadua bisa dipaké pikeun mariksa ayana file na directories dina sistem, kaasup nu ngan bisa diasupan ka root (qmail-verify dijalankeun kalawan hak root), ngaliwatan panggero langsung ka Handler lokal.

Pikeun berpungsi dina masalah, Bernstein nyarankeun ngajalankeun prosés qmail kalayan wates total dina mémori anu sayogi ("softlimit -m12345678"), dimana masalahna diblokir. Salaku hiji metodeu alternatif panyalindungan, ngawatesan ukuran maksimum pesen olahan ngaliwatan "kontrol / databytes" file ogé disebutkeun (sacara standar teu dijieun kalawan setélan standar qmail tetep rentan). Sajaba ti éta, "kontrol / databytes" teu ngajaga ngalawan serangan lokal ti pamaké sistem, saprak wates ieu ngan dicokot kana akun ku qmail-smtpd.

Masalahna mangaruhan bungkusan netqmail, kaasup dina repositori Debian. Hiji set patch geus disiapkeun keur pakét ieu, ngaleungitkeun duanana vulnerabilities heubeul ti 2005 (ku nambahkeun wates memori teuas pikeun alloc () kode fungsi) jeung masalah anyar dina qmail-verifikasi. Papisah disiapkeun Vérsi diropéa tina patch qmail-verify. Pamekar dahan teuqmail disiapkeun patches sorangan pikeun meungpeuk masalah heubeul, sarta ogé dimimitian digawé pikeun ngaleungitkeun sagala kamungkinan overflows integer dina kode.

sumber: opennet.ru

Tambahkeun komentar