Kerentanan dina OpenSMTPD anu ngamungkinkeun aksés root jauh sareng lokal

Perusahaan Qualys diungkabkeun kerentanan kritis jauh sejen (CVE-2020-8794) dina server mail OpenSMTPD, dikembangkeun ku proyék OpenBSD. Siga anu diidentifikasi dina ahir Januari karentanan, masalah anyar ngamungkinkeun jarak jauh ngaéksekusi paréntah cangkang sawenang dina server anu gaduh hak pamaké root. Karentanan ngaleungitkeun dina masalah OpenSMTPD 6.6.4p1.

Masalahna disababkeun ku bug dina kode nu delivers mail ka server mail jauh (teu dina kode nu handles sambungan asup). Serangan kasebut mungkin di sisi klien sareng di sisi server. Di sisi klien, serangan kasebut mungkin dina konfigurasi standar OpenSMTPD, dimana OpenSMTPD ngan ukur nampi pamundut dina antarmuka jaringan internal (localhost) sareng ngirim pesen surat ka server éksternal. Pikeun ngamangpaatkeun kerentanan, cukup yén, nalika ngirim surat, OpenSMTPD ngadamel sési sareng server mail anu dikontrol ku panyerang, atanapi yén panyerang tiasa ngaganjel kana sambungan klien (MITM atanapi alihan nalika serangan via DNS atanapi BGP. ).

Pikeun serangan sisi server, OpenSMTPD kudu ngonpigurasi pikeun nampa requests jaringan éksternal ti server mail sejenna atawa ngalayanan jasa pihak katilu nu ngidinan Anjeun pikeun ngirim pamundut ka email sawenang (contona, formulir konfirmasi alamat dina situs web). Salaku conto, panyerang tiasa nyambung ka server OpenSMTPD sareng ngirim surat anu salah (ka pangguna anu henteu aya), anu bakal ngakibatkeun réspon ngirim surat kalayan kode kasalahan (mumbul) ka server panyerang. Panyerang tiasa ngamangpaatkeun kerentanan nalika OpenSMTPD nyambung pikeun ngirimkeun béwara ka server panyerang. Paréntah cangkang anu disuntik nalika serangan disimpen dina file anu dieksekusi kalayan hak akar nalika OpenSMTPD di-restart, janten panyerang kedah ngantosan OpenSMTPD ngamimitian deui atanapi ngamimitian kacilakaan OpenSMTPD pikeun ngarengsekeun serangan.

Masalahna hadir dina fungsi mta_io () dina kode pikeun parsing respon multiline dipulangkeun ku server jauh sanggeus sambungan dijieun (Contona, "250-ENHANCEDSTATUSCODES" jeung "250 HELP"). OpenSMTPD ngitung yén baris kahiji ngawengku angka tilu-angka jeung téks dipisahkeun ku karakter "-", sarta baris kadua ngandung angka tilu-angka jeung téks dipisahkeun ku spasi. Lamun angka tilu-angka teu dituturkeun ku spasi jeung téks dina baris kadua, pointer dipaké pikeun nangtukeun téks disetel ka bait handap karakter '\0' sarta usaha dilakukeun pikeun nyalin data sanggeus tungtung. tina garis kana panyangga.

Dina paménta proyék OpenBSD, publikasi rinci ngeunaan eksploitasi kerentanan parantos ditunda dugi ka 26 Pebruari pikeun ngamungkinkeun para pangguna ngapdet sistemna. Masalahna parantos aya dina basis kode ti saprak Désémber 2015, tapi eksploitasi sateuacan palaksanaan kode kalayan hak-hak akar parantos tiasa dilaksanakeun saprak Méi 2018. Panaliti nyiapkeun prototipe anu tiasa dianggo, anu parantos diuji dina OpenSMTPD ngawangun pikeun OpenBSD 6.6, OpenBSD 5.9, Debian 10, Debian 11 (uji coba) sareng Fedora 31.

Dina OpenSMTPD ogé dicirikeun Kerentanan sejen (CVE-2020-8793) anu ngamungkinkeun pamaké lokal maca baris kahiji tina sagala file dina sistem. Contona, Anjeun bisa maca baris kahiji /etc/master.passwd, nu ngandung hash sandi pamaké root. Kerentanan ogé ngidinan Anjeun pikeun maca sakabéh eusi file milik pamaké séjén lamun file ieu lokasina di sistem file sarua jeung /var/spool/smtpd/ diréktori. Masalahna henteu tiasa dieksploitasi dina seueur distribusi Linux dimana nilai /proc/sys/fs/protected_hardlinks disetel ka 1.

Masalahna mangrupikeun akibat tina ngaleungitkeun anu teu lengkep masalah, disuarakeun nalika audit anu dilakukeun ku Qualys di 2015. Panyerang tiasa ngahontal palaksanaan kodena kalayan hak-hak grup "_smtpq" ku netepkeun variabel "PATH =.". sareng nempatkeun skrip anu disebut makemap dina diréktori ayeuna (utilitas smtpctl ngajalankeun makemap tanpa sacara eksplisit netepkeun jalurna). Ku kéngingkeun aksés ka grup "_smtpq", panyerang teras tiasa nyababkeun kaayaan balapan (nyieun file ageung dina diréktori offline sareng ngirim sinyal SIGSTOP) sareng, sateuacan pamrosésan réngsé, gentos file dina diréktori offline ku hard drive. symlink nunjuk kana file target anu eusina kedah dibaca.

Catet yén dina Fedora 31 kerentanan ngamungkinkeun anjeun langsung kéngingkeun hak istimewa tina grup akar, sabab prosés smtpctl dilengkepan ku bandéra akar setgid, tibatan bandéra setgid smtpq. Ku kéngingkeun aksés kana grup akar, anjeun tiasa nimpa eusi /var/lib/sss/mc/passwd sareng kéngingkeun aksés root pinuh kana sistem.

sumber: opennet.ru

Tambahkeun komentar