The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск Exim 4.90.1 с устранением уязвимости, не исключающей выполнение кода на сервере

11.02.2018 08:53

Опубликован внеплановый выпуск почтового сервера Exim 4.90.1 в котором устранена критическая уязвимость (CVE-2018-6789), потенциально позволяющая организовать удалённое выполнение кода на сервере при обработке сообщений со специально оформленными блоками в формате BASE64.

Исправление доступно в виде патча. Обновления пакетов пока сформированы только для Debian и FreeBSD. Проблема остаётся неисправленной в Ubuntu, Fedora, openSUSE, SUSE, RHEL/EPEL. Изначально информацию о проблеме планировалось раскрыть через неделю, но скоординированному выпуску обновлений помешало нарушение эмбарго одним из дистрибутивов, досрочно опубликовавшем исправление.

Проблема вызвана ошибкой в функции base64d(), которую можно использовать для инициирования переполнения буфера. По мнению разработчиков Exim уязвимость достаточно трудна для эксплуатации, но выявивший уязвимость исследователь заявил, что у него уже есть работающий эксплоит. В выпуске Exim 4.90.1 также устранено несколько ошибок, в том числе переполнение буфера в коде верификации DKIM, которое явно не помечено как уязвимость.

Дополнение: Опубликованы подробности об организации работы эксплоита.

  1. Главная ссылка к новости (http://seclists.org/oss-sec/20...)
  2. OpenNews: Новая версия почтового сервера Exim 4.90
  3. OpenNews: Уязвимость в Exim, позволяющая выполнить код на сервере
  4. OpenNews: Новая версия почтового сервера Exim 4.88 с устранением уязвимостей
  5. OpenNews: Критическая локальная уязвимость в Exim
  6. OpenNews: В почтовом сервере Exim 4.82.1 устранена критическая уязвимость
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: exim
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (78) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, Аноним (-), 09:33, 11/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Немного огорчает, но исправляют же.
    Интересно, как давно эта ошибка есть в коде?
    Какой дистрибутив оказался впереди планеты всей?
     
     
  • 2.41, Аноним (-), 02:57, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Какой дистрибутив оказался впереди планеты всей?

    "Обновления пакетов пока сформированы только для Debian и FreeBSD.", что как-бы намекает.

     

  • 1.2, Аноним (-), 09:34, 11/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    > переполнения буфера

    классика сишного жанра

     
     
  • 2.3, Аноним (-), 09:53, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    а ты зачем такой толстый?
     
     
  • 3.4, Аноним (-), 10:00, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    то есть это не только у сишных прог такая болезнь? назови мне реализацию base64d на любом другом языке, где бы наблюдалось переполнение буфера с потенциальной возможностью выполнить код на сервере. Хотя бы одну назови.
     
     
  • 4.5, Аноним (-), 10:05, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    В Postfix с этим проблем нету, а для макак которые используют Си как хотят есть Rust,
     
     
  • 5.9, Аноним (-), 10:35, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    то есть хочешь сказать, Exim писали макаки?
     
     
  • 6.20, Аноним (-), 12:48, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да естественно, не OpenBSD же.
     
  • 6.21, anonymous (??), 12:52, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +8 +/
    >то есть хочешь сказать, Exim писали макаки?

    Вы код то его видели? Пример из spool_in.c:

    if (Ufgets(big_buffer, big_buffer_size, f) == NULL) goto SPOOL_READ_ERROR;

    p = big_buffer + Ustrlen(big_buffer);
    while (p > big_buffer && isspace(p[-1])) p--;
    *p = 0;
    if (!isdigit(p[-1])) goto SPOOL_FORMAT_ERROR;
    while (p > big_buffer && (isdigit(p[-1]) || '-' == p[-1])) p--;
    gid = Uatoi(p);
    if (p <= big_buffer || *(--p) != ' ') goto SPOOL_FORMAT_ERROR;
    *p = 0;
    if (!isdigit(p[-1])) goto SPOOL_FORMAT_ERROR;
    while (p > big_buffer && (isdigit(p[-1]) || '-' == p[-1])) p--;
    uid = Uatoi(p);
    if (p <= big_buffer || *(--p) != ' ') goto SPOOL_FORMAT_ERROR;
    *p = 0;

    В postfix код намного читаемее и чище.

     
     
  • 7.23, anonymous (??), 12:53, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Форматирование оригинальное, неиспорченное.
     
     
  • 8.52, Аноним (-), 12:09, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Что тебе не нравится Учился чел указатели использовать Заодно закоммитил вот ... текст свёрнут, показать
     
  • 7.35, Аноним (-), 18:39, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Заодно приведите, пожалуйста, вариант, который вы лично сочли бы более читабельным
     
     
  • 8.40, Ordu (ok), 02:55, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Вот так https pastebin com dc82ZNKB Примерно так Этот код будет работать не ... текст свёрнут, показать
     
     
  • 9.42, НяшМяш (ok), 04:04, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Exim похоже пишут те, кто процессоров быстрее 33 МГц и памяти за 640КБ не видели... текст свёрнут, показать
     
     
  • 10.61, _ (??), 22:36, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    А дык ты с Больших Дрыщей только чтоприехал Exim написал чувак который половину... текст свёрнут, показать
     
     
  • 11.72, Ordu (ok), 06:02, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Оу, действительно Заглянул в википедию -- это ведь такое старпёрище, что у меня... текст свёрнут, показать
     
     
  • 12.73, Andrey Mitrofanov (?), 09:55, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Big Brother Patches You ... текст свёрнут, показать
     
  • 12.75, Аноним 80_уровня (ok), 11:37, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    То есть писать быстрый и компактный код теперь уже не модно, я правильно понял о... текст свёрнут, показать
     
     
  • 13.76, xm (ok), 12:26, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Во-во Облака же Безразмерные Нафига быстрый код Надо красивый и понятный ... текст свёрнут, показать
     
  • 13.79, Ordu (ok), 16:06, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Нет не правильно Сегодня как раз модно писать быстрый и компактный код, но сего... текст свёрнут, показать
     
     
  • 14.82, Аноним 80_уровня (ok), 19:36, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Был такой чудо-процессор Itanium, вся архитектура которого планировалась исходя ... текст свёрнут, показать
     
     
  • 15.84, Ordu (ok), 21:48, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты передёргиваешь Сдох процессор, а не идея Спорим, что мой код быстрее, чем к... текст свёрнут, показать
     
  • 15.85, Ordu (ok), 23:28, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Я сравнил из любопытства Отказ от оптимизации в старпёрском стиле сократил врем... текст свёрнут, показать
     
     
  • 16.87, Ordu (ok), 23:42, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кстати, если сделать du -b version, то 12720 asm-version 12784 c-version Моя в... текст свёрнут, показать
     
  • 15.88, Michael Shigorin (ok), 23:44, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Жаль, что Вы чайник, который никогда ничего _реально_ не сможет оптимизировать р... текст свёрнут, показать
     
     
  • 16.92, Аноним 80_уровня (ok), 17:10, 14/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да я вообще не программист Скорее тыжпрограммист ... текст свёрнут, показать
     
  • 14.94, xm (ok), 21:39, 14/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Красиво пишете Вот ещё бы взяли, и сделали с Exim то, что описали - вообще вам ... текст свёрнут, показать
     
  • 6.86, Michael Shigorin (ok), 23:41, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > то есть хочешь сказать, Exim писали макаки?

    хуже -- прохвессура; в результате не новость, а "скучно, девочки".

     
  • 5.50, yet another anonymous (?), 11:07, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В Postfix с этим проблем нету, а для макак которые используют Си
    > как хотят есть Rust,

    http://cglab.ca/~abeinges/blah/everyone-poops/

     
     
  • 6.51, AMDGPUi915 (?), 11:51, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    unsafe для дурачков
     
     
  • 7.62, _ (??), 22:37, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Поэтому от во __всех__ ржавых программах :)
     
  • 4.8, ram_scan (?), 10:35, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    На pascal без проблем реализуется Он средствами самого языка имеет тип LString ... текст свёрнут, показать
     
     
  • 5.10, Аноним (-), 10:37, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > если программист хочет стрелять себе в ногу, то это уже его проблемы.

    Суть в том, что если ни один программист не захочет выстрелить себе в ногу, то сишники все равно стреляют. Только сишники. Исключительно сишники.

    Предвосхищая твой аргумент от макак, -- см. комментом выше.

     
     
  • 6.11, ram_scan (?), 11:11, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +8 +/
    > Суть в том, что если ни один программист не захочет выстрелить себе в ногу, то сишники все равно стреляют. Только сишники. Исключительно сишники.

    Язык располагает. Си хорошо ложился на PDPшную архитектуру. Там имел смысл всех этих сишных трюкачеств. Фактически си тогда был относительно несложным препроцессором к макроассемблеру, и все эти затейливые автоинкрементные и автодекрементные косвенные адресации, выражения с чудовыми значениями и прочие затейливости, которые ныне несутся в свет как достижения мало того что первородный смысл потеряли, так еще и выросли в лютейший геморрой, когда всю эту легаси на другие архитектуры потащили.

     
     
  • 7.14, xm (ok), 11:59, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Именно. Приятно видеть здесь понимающего человека.
     
     
  • 8.18, angra (ok), 12:24, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ой, аж два человека понимающих отличие PDP-11 от x86 Ну может хоть на этот раз ... текст свёрнут, показать
     
     
  • 9.29, SysA (?), 15:11, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Для наглядности могу привести наиболее яркое принципиальное отличие у PDP-11 в ... текст свёрнут, показать
     
     
  • 10.32, cat666 (ok), 15:43, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ты бредишь ... текст свёрнут, показать
     
  • 9.33, xm (ok), 16:30, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Принципиальное Эк вас забрало Вот практическое могу В PDP-11 возможна адресац... текст свёрнут, показать
     
     
  • 10.54, angra (ok), 12:11, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Адекватное требование в ответ на тот пафос про жуткую завязку С на архитектуру P... текст свёрнут, показать
     
     
  • 11.69, xm (ok), 00:01, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Единые команды как для работы с регистрами, так и с памятью и, конечно, двойная ... текст свёрнут, показать
     
     
  • 12.70, angra (ok), 05:28, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вот это уже интересно Спасибо Просматривая набор инструкций PDP-11 я больше о... текст свёрнут, показать
     
     
  • 13.78, xm (ok), 12:42, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Я не являюсь экспертом в сях, но действительно ряд конструкций выглядят как насл... текст свёрнут, показать
     
     
  • 14.80, angra (ok), 17:32, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это понятно Но есть огромная разница архитектура pdp оказала некоторое влияние... текст свёрнут, показать
     
  • 10.77, Аноним (-), 12:27, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Да мультиплексируемая шина адреса данных много где использовалась Например, лок... текст свёрнут, показать
     
     
  • 11.81, xm (ok), 19:02, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Хм, ну не знаю По мне очевидно что система машинных команд растёт из архитектур... текст свёрнут, показать
     
  • 9.34, пох (?), 18:17, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    это верный признак того, что тебе - повые а не разницу то что тут понаписали... текст свёрнут, показать
     
     
  • 10.56, angra (ok), 12:17, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, мне действительно интересно Но пока ничего такого не увидел Вот и мне та... текст свёрнут, показать
     
     
  • 11.57, пох (?), 13:27, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    интересно - ищешь эмулятор и мировскую книжку по язык ассемблера или ее ориги... текст свёрнут, показать
     
     
  • 12.60, angra (ok), 22:25, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Я не сказал, что мне интересно на нем программировать, мне интересно понять прич... текст свёрнут, показать
     
     
  • 13.71, angra (ok), 05:31, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Прошу прощения у xm, на момент написания предыдущего комментария его ответа с ко... текст свёрнут, показать
     
  • 13.83, пох (?), 20:48, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    если ты не программист - что ты надеешься там понять чтобы понять - надо прог... текст свёрнут, показать
     
  • 6.53, Аноним (-), 12:11, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Суть в том, что если ни один программист не захочет выстрелить себе
    > в ногу, то сишники все равно стреляют. Только сишники. Исключительно сишники.

    Странно, почему же тогда основной объем взломов через дырявую вебню идет? Ее вроде на си редко пишут. Хоть это и можно иногда.

     
     
  • 7.58, пох (?), 14:13, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Странно, почему же тогда основной объем взломов через дырявую вебню идет?

    дай угадаю: потому что вебня чаще всего имеет интересное свойство торчать в интернет.
    И при этом штука достаточно массовая (дырявых вордпрессов в мире явно поболее будет чем дырявых exim, да и вообще каких бы то ни было доступных извне mta), а проблемы в ней двадцать лет не меняются - injections/xss/mitm.

     
     
  • 8.89, Michael Shigorin (ok), 23:54, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    в отличие от сишного веб-сервера - ... текст свёрнут, показать
     
  • 4.15, angra (ok), 12:00, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > назови мне реализацию base64d на любом другом языке, где бы наблюдалось переполнение буфера с потенциальной возможностью выполнить код на сервере. Хотя бы одну назови.

    Легко, C++ подходит под любой другой.
    https://android.googlesource.com/platform/frameworks/av/+/552a3b5df2a6876d10da

    А вообще http://lmgtfy.com/?q=base64+buffer+overflow

     
  • 2.12, Аноним (-), 11:34, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А ты на чем пишешь, если не секрет?
     
     
  • 3.13, Аноним (-), 11:50, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    любопытная тактика: выпросить язык у оппонента, чтобы переключить внимание с чисто сишной ошибки "переполнение буфера с выполнением кода на сервере" на проблему абсолютно другого языка.

    Ну хорошо, я пишу на хаскеле. Критикуй хаскель.

     
     
  • 4.16, angra (ok), 12:11, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты пишешь на Хаскеле и не знаешь, что в нем можно легко получить buffer overflow, segfault и прочие прелести?
     
     
  • 5.17, Аноним (-), 12:21, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Пока слабо. Нужна разгромная критика, такая, чтобы все забыли о си и переполнении буфера с возможностью выполнения кода на сервере.
     
     
  • 6.19, angra (ok), 12:25, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Кому нужна? Одному толстячку? Пусть худеет.
     
     
  • 7.25, Аноним (-), 13:25, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А вот и переходы на личности. Но я тебя понимаю: куда интереснее обсуждать, кто кого траллирует, чем исключительно сишные переполнения буфера и выполнение кода на сервере.
     
     
  • 8.63, _ (??), 22:51, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ой, да тут всё ешё проще - покахи мне SMTP сервер класса Exim a на Haskell e ... текст свёрнут, показать
     

  • 1.6, Аноним (-), 10:17, 11/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И что за дистр слил первым?
     
     
  • 2.7, . (?), 10:34, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Скорее всего OpenWall
     
     
  • 3.39, solardiz (ok), 02:32, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Понимаю желание нас троллить после анонса такого спорного (в том числе на наш же взгляд) проекта как LKRG (мы знали на что шли), знаю что кормить не положено, но ведь кто-то может и всерьез воспринять. ;-) На исходный вопрос: я не знаю какой дистрибутив нарушил эмбарго, Exim'овцы это аккуратно умалчивают. В Openwall информации об уязвимости (кроме самого факта ее наличия, что было известно публично) не было за ненадобностью (мы не распространяем Exim).
     
     
  • 4.90, Michael Shigorin (ok), 23:57, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > мы не распространяем Exim

    Да уж, мне даже стало интересно, насколько развесистому лопуху из того комментария это было неочевидно...

     

  • 1.22, Hellraiser (??), 12:52, 11/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > но скоординированному выпуску обновлений помешало нарушение эмбарго одним из дистрибутивов, досрочно опубликовавшем исправление

    огласите имя этого мерзавца

     
  • 1.24, тфне (?), 13:12, 11/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    О, опять exim, который весь такой правильный и умеет делать все, что захочешь. Postfix-админы в очередной раз запасаются попкорном.
     
     
  • 2.26, Аноним (-), 13:36, 11/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    там все пять ссылок под основной ссылкой, как раз о дырах в этом решете
     

  • 1.47, Клыкастый (ok), 10:34, 12/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    а здесь холивар постфикса и экзима. ну офигеть теперь.

    > С того времени все население Лилипутии разделилось на два лагеря - тупоконечников и остроконечников. Тупоконечники не захотели подчиниться указу императора и бежали за море, в соседнюю империю Блефуску. Лилипутский император потребовал, чтобы блефускуанский император казнил беглых тупоконечников. Однако император Блефуску не только не казнил их, но даже взял к себе на службу. С тех пор между Лилипутией и Блефуску идет непрерывная война...

    Джонатан Свифт, 1726 год

     
     
  • 2.49, Crazy Alex (ok), 10:55, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Да он тут годами в КАЖДОЙ новости про exim или postfix как бы
     
     
  • 3.95, xm (ok), 16:15, 15/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Да как-то не забористо.
    Наверное, надо что-то про FreeBSD вставить эдакое. Что б попёрло :-)
     
  • 2.91, KonstantinB (ok), 03:10, 14/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > а здесь холивар постфикса и экзима. ну офигеть теперь.

    Я за sendmail. Безо всяких новомодных m4, sendmail.cf. Ручками, с нуля.

    :-)

     

  • 1.48, ALex_hha (ok), 10:45, 12/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > О, опять exim, который весь такой правильный и умеет делать все, что захочешь. Postfix-админы в очередной раз запасаются попкорном.

    за гибкость приходится чем то платить :)

     
     
  • 2.55, кэп (?), 12:11, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Главное что бы авиационная отрасль не платила безопасностью
     
     
  • 3.64, _ (??), 22:53, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    У павлина же ыксчеёнж ... они 100% булетпруФФ! :-)
     
     
  • 4.66, Аноним (-), 22:59, 12/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Exim и над ним putty.exe и windows defender!??
    Тогда там все точно в безопасности!
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру