qmail почта сервериндеги алыстан колдонулуучу аялуу

Qualys коопсуздук изилдөөчүлөрү көрсөтүү мүмкүнчүлүк иштеп жаткан qmail почта сервериндеги кемчиликтер, атактуу кайра 2005-жылы (CVE-2005-1513), бирок патчсыз калган, анткени qmail автору демейки конфигурацияда системаларга чабуул жасоо үчүн колдонула турган жумушчу эксплуатацияны түзүү реалдуу эмес деп ырастаган. Qualys бул божомолду жокко чыгарган жана атайын иштелип чыккан билдирүүнү жөнөтүү аркылуу серверде алыстан коддун аткарылышын баштоого мүмкүндүк берген эксплойт даярдай алды.

Көйгөй stralloc_readyplus() функциясындагы бүтүн сандардын ашып кетишинен келип чыгат, ал өтө чоң билдирүүнү иштетүүдө пайда болушу мүмкүн. Иштетүү үчүн 64 ГБ ашык виртуалдык эс тутуму бар 4 биттик система талап кылынат. Алсыздык алгач 2005-жылы талданганда, Даниел Дж. Бернштейн коддогу бөлүнгөн массивдин өлчөмү ар дайым 32 биттик мааниде болот деген божомол эч ким ар бир процесске гигабайт эстутумду бербегендигине негизделет деп ырастаган. Акыркы 15 жылдын ичинде серверлердеги 64 биттик системалар 32 биттик системаларды алмаштырды жана берилген эс тутумдун көлөмү жана тармак өткөрүү жөндөмдүүлүгү кескин өстү.

qmail пакетинин тейлөөчүлөрү Бернштейндин эскертүүсүн эске алып, qmail-smtpd процессин баштаганда жеткиликтүү эстутумду чектешкен (мисалы, Debian 10до чек 7МБга коюлган). Бирок Qualys инженерлери бул жетишсиз экенин жана qmail-smtpd тышкары, qmail-локалдык процесске алыстан чабуул жасаса болот, ал бардык текшерилген пакеттерде чектөөсүз калган. Далил катары, демейки конфигурацияда qmail менен Debian пакетине кол салууга ылайыктуу болгон эксплоиттин прототиби даярдалды.
Кол салуу учурунда коддун алыстан аткарылышын уюштуруу үчүн серверге 4 ГБ бош диск мейкиндиги жана 8 ГБ оперативдүү эс керек.
Эксплуатация тутумдагы каалаган колдонуучунун укуктары менен каалаган кабык буйруктарын иштетүүгө мүмкүндүк берет, “/home” каталогунда өзүнүн подкаталогу жок түпкү жана тутумдук колдонуучулардан башкасы (qmail-локалдык процесс укуктар менен ишке киргизилген). жеткирүү жүзөгө ашырылган жергиликтүү колдонуучунун).

Кол салуу ишке ашырылат
болжол менен 4 ГБ жана 576 МБ өлчөмүндөгү бир нече баш сызыктарды камтыган өтө чоң почта билдирүүсүн жөнөтүү аркылуу. Мындай сапты qmail-local ичинде иштетүү жергиликтүү колдонуучуга билдирүү жеткирүү аракетинде бүтүн сандын ашып кетишине алып келет. Андан кийин бүтүн сандын ашып кетиши маалыматтарды көчүрүү учурунда буфердин толуп кетишине жана эстутум баракчаларын libc коду менен кайра жазуу мүмкүнчүлүгүнө алып келет. Өткөрүлүп жаткан маалыматтардын жайгашуусун манипуляциялоо менен, ошондой эле “open()” функциясынын дарегин кайра “система()” функциясынын дареги менен алмаштырууга болот.

Андан кийин, qmesearch() qmail-local ичинде чалуу процессинде open() функциясы аркылуу “.qmail-extension” файлы ачылат, бул функциянын иш жүзүндө аткарылышына алып келет.
system(".qmail-кеңейтүү"). Бирок файлдын “кеңейтүү” бөлүгү алуучунун дарегинин негизинде түзүлгөндүктөн (мисалы, “localuser-extension@localdomain”), чабуулчулар “localuser-;command” колдонуучуну көрсөтүү менен буйрукту иштетүү үчүн жөнөтүүнү уюштура алышат. ;@localdomain” билдирүүнү алуучу катары.

Кодду талдоо учурунда, Debian үчүн пакеттин бир бөлүгү болгон кошумча qmail-verify патчында да эки алсыздык аныкталган. Биринчи алсыздык (CVE-2020-3811) электрондук почтанын дарегин текшерүүдөн өтүүгө мүмкүндүк берет, ал эми экинчиси (CVE-2020-3812) жергиликтүү маалыматтын чыгып кетишине алып келет. Атап айтканда, биринчи алсыздык команданы жөнөтүү үчүн эксплуатацияда колдонулган даректин тууралыгын текшерүүнү кыйгап өтүүгө мүмкүндүк берет (текшерүү домени жок даректер үчүн иштебейт, мисалы “локал колдонуучу-; команда;”). Экинчи алсыздык системада файлдардын жана каталогдордун бар-жоктугун текшерүү үчүн колдонулушу мүмкүн, анын ичинде root үчүн гана жеткиликтүү болгондор (qmail-verify тамыр укуктары менен иштейт), жергиликтүү иштетүүчүгө түз чакыруу аркылуу.

Көйгөйдү чечүү үчүн Бернштейн жеткиликтүү эстутумда жалпы чектөө менен qmail процесстерин иштетүүнү сунуштады («softlimit -m12345678»), бул учурда көйгөй бөгөттөлөт. Коргоонун альтернативалуу ыкмасы катары “контролдук/датабайттар” файлы аркылуу иштелип чыккан билдирүүнүн максималдуу өлчөмүн чектөө да айтылган (демейки боюнча ал демейки жөндөөлөр менен түзүлгөн эмес qmail аялуу бойдон калууда). Кошумчалай кетсек, "контролдоо/датабайттар" системанын колдонуучуларынын жергиликтүү чабуулдарынан коргобойт, анткени чектөө qmail-smtpd тарабынан гана эске алынат.

Көйгөй пакетке таасирин тийгизет netqmail, Debian репозиторийлерине киргизилген. Бул топтом үчүн 2005-жылдагы эски кемчиликтерди (alloc() функциялык кодуна катуу эстутум чектөөлөрүн кошуу менен) жана qmail-verifyдеги жаңы көйгөйлөрдү жок кылуучу патчтардын топтому даярдалды. Өзүнчө даярдалган qmail-verify патчынын жаңыртылган версиясы. Иштеп чыгуучулар бутактары notqmail эски көйгөйлөрдү бөгөттөө үчүн өздөрүнүн патчтарын даярдашкан, ошондой эле коддогу мүмкүн болгон бүтүн сандардын ашып кетишин жоюу үчүн иштей башташты.

Source: opennet.ru

Комментарий кошуу