Eximдеги критикалык алсыздыктын чоо-жайы ачылды

жарыяланган түзөтүүчү чыгаруу Exim 4.92.2 сынды жоюу менен алсыздыктар (CVE-2019-15846), демейки конфигурацияда тамыр артыкчылыктары бар чабуулчу тарабынан коддун алыстан аткарылышына алып келиши мүмкүн. Көйгөй TLS колдоосу иштетилгенде гана пайда болот жана атайын иштелип чыккан кардар сертификатын же өзгөртүлгөн маанини SNIге өткөрүү менен пайдаланылган. Аялуу аныкталган Qualys тарабынан.

маселе азыркы саптагы атайын белгилерден качуу үчүн иштеткичте (string_interpret_escape() string.c) жана саптын аягындагы '\' символунун нөл белгисинен ('\0') алдында чечмелениши жана андан качышы менен шартталган. Качып жатканда '\' ырааттуулугу жана кийинки нөл саптын аягындагы код бир символ катары каралат жана көрсөткүч саптын уландысы катары каралуучу сызыктан тышкаркы маалыматтарга жылдырылат.

string_interpret_escape() чакырган код иш жүзүндөгү өлчөмдүн негизинде дренаж үчүн буферди бөлөт жана ачык көрсөткүч буфердин чегинен тышкаркы аймакта аяктайт. Демек, киргизүү сапты иштетүүгө аракет кылып жатканда, бөлүнгөн буфердин чегинен тышкаркы аймактан маалыматтарды окууда кырдаал келип чыгат жана качпаган сапты жазуу аракети буфердин чегинен тышкары жазууга алып келиши мүмкүн.

Демейки конфигурацияда, серверге коопсуз туташууну орнотууда SNIге атайын иштелип чыккан маалыматтарды жөнөтүү аркылуу аялуу пайдаланылышы мүмкүн. Маселе ошондой эле кардар сертификатынын аныктыгын текшерүү үчүн конфигурацияланган конфигурациялардагы peerdn маанилерин өзгөртүү аркылуу же сертификаттарды импорттоодо пайдаланылышы мүмкүн. SNI жана peerdn аркылуу кол салуу бошотулгандан баштап мүмкүн Exim 4.80, мында string_unprinting() функциясы peerdn жана SNI мазмунун басып чыгаруу үчүн колдонулган.

Glibc менен Linux системаларында i386 жана amd64 архитектурасында иштеген SNI аркылуу чабуулга эксплоиттин прототиби даярдалган. Эксплуатация үймөк аймагындагы маалыматтардын катмарын колдонот, натыйжада журнал файлынын аты сакталган эстутумдун үстүнө жазылат. Файлдын аты "/../../../../../../../../etc/passwd" менен алмаштырылган. Андан кийин, жөнөтүүчүнүн дареги бар өзгөрмөнүн үстүнө жазылат, ал алгач журналда сакталат, бул системага жаңы колдонуучуну кошууга мүмкүндүк берет.

Пакет жаңыртуулары, бөлүштүрүүлөр тарабынан чыгарылган аялуу жерлерди оңдоолор Debian, Ubuntu, Fedora, SUSE/openSUSE и FreeBSD. RHEL жана CentOS көйгөйү сезгич эмес, анткени Exim алардын кадимки пакет репозиторийине кирбейт ( ЖЫЛУУ өзгөртүү буга чейин түзүлгөн, бирок азырынча коюлган эмес коомдук репозиторийге). Exim кодунда көйгөй бир лайнер менен чечилет жамаачы, эгерде ал саптын аягында болсо, арткы сызыктын качуу эффектин өчүрөт.

Алсыздыкты бөгөттөө үчүн, сиз TLS колдоосун өчүрүп же кошсоңуз болот
ACL бөлүмү "acl_smtp_mail":

шартты жокко чыгаруу = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
шартты жокко чыгаруу = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Source: opennet.ru

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