Алыскы жана жергиликтүү тамырга кирүү мүмкүнчүлүгүн берген 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-ЖАКШЫРТЫЛГАН STATUSCODES" жана "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/ каталогу менен бир файл тутумунда жайгашкан болсо, алсыздык башка колдонуучуга таандык файлдын бүт мазмунун окууга мүмкүнчүлүк берет. /proc/sys/fs/protected_hardlinks мааниси 1ге коюлган көптөгөн Linux дистрибьютерлеринде көйгөй колдонулбайт.

Маселе толук эмес жоюунун кесепети көйгөйлөр, 2015-жылы Qualys тарабынан жүргүзүлгөн аудит учурунда айтылган. Чабуулчу өзүнүн кодун “_smtpq” тобунун укуктары менен аткарууга “PATH=.” өзгөрмөсүн коюу менен жетише алат. жана учурдагы каталогго makemap деп аталган сценарийди жайгаштыруу (smtpctl утилитасы жолду так көрсөтпөстөн makemap иштетет). "_smtpq" тобуна кирүү мүмкүнчүлүгүн алуу менен, чабуулчу андан кийин жарыш шартын жаратышы мүмкүн (офлайн каталогдо чоң файл түзүп, SIGSTOP сигналын жөнөтөт) жана иштетүү аяктаганга чейин оффлайн каталогдогу файлды катуу файлга алмаштырат. мазмуну окулушу керек болгон максаттуу файлды көрсөткөн символдук шилтеме.

Белгилей кетчү нерсе, Fedora 31де алсыздык дароо тамыр тобунун артыкчылыктарына ээ болууга мүмкүндүк берет, анткени smtpctl процесси setgid smtpq желегинин ордуна setgid тамыр желеги менен жабдылган. Түпкү топко кирүү менен, сиз /var/lib/sss/mc/passwd мазмунунун үстүнөн жазып, системага толук тамыр мүмкүнчүлүгүн ала аласыз.

Source: opennet.ru

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