Тафсилоти осебпазирии интиқодӣ дар Exim ошкор шуд

нашр шудааст озодкунии ислоҳӣ Эксим 4.92.2 бо бартараф намудани танкидй осебпазирӣ (CVE-2019-15846), ки дар конфигуратсияи пешфарз метавонад ба иҷроиши коди дурдаст аз ҷониби ҳамлакунанда бо имтиёзҳои реша оварда расонад. Мушкилот танҳо вақте пайдо мешавад, ки дастгирии TLS фаъол карда мешавад ва аз он тавассути додани сертификати муштарии махсус тарҳрезишуда ё арзиши тағирёфта ба SNI истифода мешавад. осебпазирӣ муайян карда шуд аз ҷониби Qualys.

проблема ҳозир дар коркардкунанда барои гурехтани аломатҳои махсус дар сатр (string_interpret_escape() аз string.c) ва аз сабаби тафсир шудани аломати '\' дар охири сатр пеш аз аломати нул ('\0') ва фирор аз он ба вуҷуд меояд. Ҳангоми гурехтан, пайдарпаии '\' ва коди нули охири сатр ҳамчун аломати ягона баррасӣ карда мешавад ва нишоннамо ба маълумоти берун аз сатр гузаронида мешавад, ки он ҳамчун идомаи сатр баррасӣ мешавад.

Рамзи даъваткунандаи string_interpret_escape() буферро барои дренаж дар асоси андозаи воқеӣ ҷудо мекунад ва нишоннамои фошшуда дар минтақаи берун аз ҳудуди буферӣ хотима меёбад. Мутаносибан, ҳангоми кӯшиши коркарди сатри воридотӣ, ҳангоми хондани маълумот аз минтақаи берун аз ҳудуди буфери ҷудошуда вазъият ба миён меояд ва кӯшиши навиштани сатри беруннашуда метавонад боиси навиштани берун аз ҳудуди буфер гардад.

Дар конфигуратсияи пешфарз осебпазириро тавассути фиристодани маълумоти махсус тарҳрезишуда ба SNI ҳангоми таъсиси пайвасти бехатар ба сервер истифода бурдан мумкин аст. Масъала инчунин метавонад тавассути тағир додани арзишҳои peerdn дар конфигуратсияҳое, ки барои тасдиқи сертификати муштарӣ ё ҳангоми воридоти сертификатҳо танзим карда шудаанд, истифода шавад. Ҳамла тавассути SNI ва peerdn аз озодшавӣ имконпазир аст Эксим 4.80, ки дар он функсияи string_unprinting () барои чопи мундариҷаи peerdn ва SNI истифода мешуд.

Прототипи эксплоит барои ҳамла тавассути SNI омода шудааст, ки дар меъмории i386 ва amd64 дар системаҳои Linux бо Glibc кор мекунад. Эксплоит қабати маълумотро дар майдони теппа истифода мебарад, ки дар натиҷа хотирае, ки дар он номи файли журнал нигоҳ дошта мешавад, дубора навишта мешавад. Номи файл бо "/../../../../../../../../etc/passwd" иваз карда мешавад. Баъдан, тағирёбанда бо суроғаи ирсолкунанда аз нав навишта мешавад, ки аввал дар гузориш сабт карда мешавад, ки ба шумо имкон медиҳад, ки корбари навро ба система илова кунед.

Навсозии бастаҳо бо ислоҳи осебпазирӣ, ки аз ҷониби дистрибюторҳо бароварда шудаанд Debian, Ubuntu, Федора, 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}}}}

Манбаъ: opennet.ru

Илова Эзоҳ