Осебиятҳо дар OpenSMTPD, ки дастрасии дурдаст ва маҳаллии решаро фароҳам меоранд

Ширкати Qualys ошкор карда шуд осебпазирии дигари муҳими дурдаст (CVE-2020-8794) дар сервери почта OpenSMTPD, ки аз ҷониби лоиҳаи OpenBSD таҳия шудааст. Мисли он ки дар охири моҳи январ муайян карда шуд осебпазирӣ, масъалаи нав имкон медиҳад, ки аз фосилаи дур иҷро кардани фармонҳои ҷилди худсарона дар сервер бо ҳуқуқи корбари реша. осебпазирӣ бартараф карда шуд дар масъала OpenSMTPD 6.6.4p1.

Мушкилот аз хатогие дар код, ки почтаро ба сервери почтаи дурдаст мерасонад (на дар коде, ки пайвастҳои воридотӣ кор мекунад) ба вуҷуд омадааст. Ҳамла ҳам аз ҷониби муштарӣ ва ҳам дар тарафи сервер имконпазир аст. Дар тарафи муштарӣ, ҳамла дар конфигуратсияи пешфарзии OpenSMTPD имконпазир аст, ки дар он OpenSMTPD дархостҳоро танҳо дар интерфейси шабакаи дохилӣ (localhost) қабул мекунад ва паёмҳои почтаро ба серверҳои беруна мефиристад. Барои истифода аз осебпазирӣ, кофист, ки ҳангоми интиқоли мактуб OpenSMTPD сеансро бо сервери почтае, ки аз ҷониби ҳамлакунанда идора мешавад, таъсис диҳад ё ҳамлакунанда метавонад ба пайвасти муштарӣ пайваст шавад (MITM ё масир ҳангоми ҳамлаҳо тавассути DNS ё BGP) ).

Барои ҳамла аз ҷониби сервер, OpenSMTPD бояд барои қабул кардани дархостҳои шабакаи беруна аз дигар серверҳои почта ё хидматрасонии шахсони сеюм, ки ба шумо имкон медиҳад дархост ба почтаи электронии худсарона ирсол кунед (масалан, варақаҳои тасдиқи суроғаҳо дар вебсайтҳо) танзим карда шавад. Масалан, ҳамлакунанда метавонад ба сервери OpenSMTPD пайваст шавад ва номаи нодуруст (ба корбари мавҷуда) фиристад, ки ин боиси посухи фиристодани мактуб бо рамзи хато (паридан) ба сервери ҳамлагар мегардад. Вақте ки OpenSMTPD барои расонидани огоҳинома ба сервери ҳамлакунанда пайваст мешавад, ҳамлакунанда метавонад осебпазириро истифода барад. Фармонҳои ҷилди ҳангоми ҳамла воридшуда дар файле ҷойгир карда мешаванд, ки ҳангоми аз нав оғоз кардани OpenSMTPD бо ҳуқуқи реша иҷро карда мешавад, бинобар ин ҳамлакунанда бояд интизор шавад, ки OpenSMTPD аз нав оғоз кунад ё суқути OpenSMTPD-ро ба анҷом расонад.

Мушкилот дар функсияи mta_io() дар коди таҳлили посухи чандсатрӣ, ки сервери дурдаст пас аз барқарор шудани пайваст бармегардад (масалан, "250-ENHANCEDSTATUSCODES" ва "250 HELP") мавҷуд аст. OpenSMTPD ҳисоб мекунад, ки сатри аввал рақами се рақам ва матни бо аломати "-" ҷудошударо дар бар мегирад ва сатри дуюм рақами се рақам ва матни бо фосила ҷудошударо дар бар мегирад. Агар пас аз рақами серақама фосила ва матн дар сатри дуюм набошад, нишондиҳандае, ки барои муайян кардани матн истифода мешавад, пас аз аломати '\0' ба байт гузошта мешавад ва кӯшиш карда мешавад, ки маълумот пас аз анҷоми он нусхабардорӣ карда шавад. аз хати ба буфер.

Бо дархости лоиҳаи OpenBSD, нашри тафсилот дар бораи истифодаи осебпазирӣ то 26 феврал ба таъхир гузошта шуд, то ба корбарон имкон диҳад, ки системаҳои худро нав кунанд. Мушкилот дар базаи кодҳо аз моҳи декабри соли 2015 вуҷуд дорад, аммо истисмор пеш аз иҷрои код бо имтиёзҳои реша аз моҳи майи соли 2018 имконпазир аст. Муҳаққиқон як прототипи кории истисморро омода карданд, ки дар сохторҳои OpenSMTPD барои OpenBSD 6.6, OpenBSD 5.9, Debian 10, Debian 11 (озмоиш) ва Fedora 31 бомуваффақият санҷида шуд.

Дар OpenSMTPD низ муайян карда шуд Боз як осебпазирии (CVE-2020-8793), ки ба корбари маҳаллӣ имкон медиҳад, ки сатри якуми ҳама гуна файлро дар система хонад. Масалан, шумо метавонед сатри аввали /etc/master.passwd-ро хонед, ки дар он хэш пароли корбари реша мавҷуд аст. Ин осебпазирӣ инчунин ба шумо имкон медиҳад, ки тамоми мундариҷаи файли ба корбари дигар тааллуқдоштаро хонед, агар ин файл дар як системаи файлӣ бо директорияи /var/spool/smtpd/ ҷойгир бошад. Мушкилот дар бисёре аз дистрибюторҳои Linux, ки арзиши /proc/sys/fs/protected_hardlinks ба 1 муқаррар шудааст, истифода намешавад.

Мушкилот натиљаи бартарафсозии нопурра аст мушкилот, дар ҷараёни аудити Qualys дар соли 2015 садо дод. Ҳамлагар метавонад ба иҷрои рамзи худ бо ҳуқуқҳои гурӯҳи "_smtpq" тавассути гузоштани тағирёбандаи "PATH=." ноил шавад. ва ҷойгир кардани скрипт бо номи makemap дар директорияи ҷорӣ (утилитаи smtpctl makemap-ро бидуни мушаххас кардани роҳ иҷро мекунад). Бо ба даст овардани дастрасӣ ба гурӯҳи "_smtpq", ҳамлакунанда метавонад пас аз он метавонад ҳолати мусобиқаро ба вуҷуд орад (файли калон дар директорияи офлайнӣ эҷод кунад ва сигнали SIGSTOP фиристад) ва пеш аз анҷоми коркард, файлро дар директорияи офлайнӣ бо файли сахт иваз кунад. symlink ба файли мавриди ҳадаф, ки мундариҷаи он бояд хонда шавад, ишора мекунад.

Қобили зикр аст, ки дар Fedora 31 осебпазирӣ ба шумо имкон медиҳад, ки фавран имтиёзҳои гурӯҳи решаро ба даст оред, зеро раванди smtpctl ба ҷои парчами setgid smtpq, бо парчами решаи setgid муҷаҳҳаз шудааст. Бо ба даст овардани дастрасӣ ба гурӯҳи реша, шумо метавонед мундариҷаи /var/lib/sss/mc/passwdро аз нав нависед ва дастрасии пурраи решаро ба система ба даст оред.

Манбаъ: opennet.ru

Илова Эзоҳ