The OpenNET Project / Index page

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

07.03.2018 22:26  Опубликован метод эксплуатации уязвимости в коде разбора блоков BASE64 в Exim

Раскрыты детали техники эксплуатации уязявимости CVE-2018-6789, приводящей к однобайтовому переполнению в реализации декодировщика данных в формате BASE64, которая была устранена в начале февраля в выпуске Exim 4.90.1. Проблема проявляется при обработке данные в формате BASE64, размер которых не кратен 4 (4n+3). Рабочий эксплоит подготовлен для пакетов с Exim из состава Debian 9 и Ubuntu 17.04.

Изначально разработчики Exim скептически отнеслись к возможности практической эксплуатации проблемы, но выявивший уязвимость исследователь показал, что на основе данной уязвимости можно подготовить рабочий эксплоит, позволяющий выполнить код на сервере на стадии до прохождения аутентификации, отправив в качестве аргумента в команде "AUTH" специально оформленные данные в формате BASE64 и при помощи манипуляции с именем хоста отправителя в команде EHLO подготовив нужное смещение в куче для переопределения указателя на следующий блок памяти.

В итоге передачи определённой последовательности данных в командах "AUTH" и "EHLO" указатель на следующий блок хранения можно поменять и перенаправить на блок со строкой ACL. Таким образом, поступающие после команды AUTH данные будут записаны не в блок хранения, а в строку с ACL. Так как в ACL допускается использование конструкции "${run{cmd}}" для выполнения произвольных команд, можно переписать строку c ACL и организовать выполнение любой команды в момент проверки ACL.

По оценке исследователя около 400 тысяч почтовых серверов на базе Exim подвержены риску быть атакованными. Всем администраторам рекомендуется убедиться, что на их системах используется Exim 4.90.1 или установлено обновление пакета с Exim от разработчиков дистрибутивов (Debian, FreeBSD, Ubuntu, Fedora, Arch Linux, openSUSE, SUSE, RHEL/EPEL).

  1. Главная ссылка к новости (https://devco.re/blog/2018/03/...)
  2. OpenNews: Выпуск Exim 4.90.1 с устранением уязвимости, не исключающей выполнение кода на сервере
  3. OpenNews: Уязвимость в Exim, позволяющая выполнить код на сервере
  4. OpenNews: Новая версия почтового сервера Exim 4.88 с устранением уязвимостей
  5. OpenNews: Критическая локальная уязвимость в Exim
  6. OpenNews: Доступен почтовый сервер Exim 4.83 с устранением уязвимости
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: exim, exploit
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, xm (ok), 23:21, 07/03/2018 [ответить] [показать ветку] [···]    [к модератору]
  • +3 +/
    Красиво
     
  • 1.3, Аноним (-), 00:08, 08/03/2018 [ответить] [показать ветку] [···]    [к модератору]
  • +13 +/
    Погладил свой Postfix за ушком.
     
     
  • 2.6, cat666 (ok), 00:44, 08/03/2018 [^] [ответить]    [к модератору]
  • –7 +/
    Гладь дальше. То, что Postfix такой весь "идеальный", повод насторожится и если про уязвимости и исправления в нём не пишут это не значит, что их нет.
     
     
  • 3.13, нах (?), 05:39, 08/03/2018 [^] [ответить]     [к модератору]
  • +2 +/
    да не, в поцфиксе число возможных уязвимостей действительно сильно меньше потом... весь текст скрыт [показать]
     
     
  • 4.37, amonymous (?), 10:55, 08/03/2018 [^] [ответить]    [к модератору]  
  • –3 +/
    > через промежуточные прокладки (и огребай последствия рассинхронизаций)

    Рассинхронизаций? В постфиксе? Это каг??? 0_о Что вы такое аццкое там лепите/курите?

     
  • 4.43, Аноним (-), 12:41, 08/03/2018 [^] [ответить]    [к модератору]  
  • +/
    > ну а если тебе надо что нестандартное - посиди-подожди, пока то же самое приспичит и автору

    … ведь написать патч самому/нанять человека не вариант…

     
     
  • 5.55, angra (ok), 17:04, 08/03/2018 [^] [ответить]     [к модератору]  
  • +/
    А потом поддерживать этот патч для каждой версии postfix, пока его не примут в u... весь текст скрыт [показать]
     
  • 3.56, Michael Shigorin jolla (?), 17:38, 08/03/2018 [^] [ответить]    [к модератору]  
  • –4 +/
    > Гладь дальше. То, что Postfix такой весь "идеальный", повод насторожится и если
    > про уязвимости и исправления в нём не пишут это не значит,
    > что их нет.

    предъявите.

     
  • 2.8, Аноним (-), 03:17, 08/03/2018 [^] [ответить]    [к модератору]  
  • +5 +/
    Погладил opensmtpd, раз уж так.
     
  • 2.62, D (?), 00:39, 09/03/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    На это он и годен.

    Когда exim на порядок конфигурировованее. Но не все умеют, это да!

     
  • 1.4, Аноним (-), 00:22, 08/03/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +2 +/
    Поставил iRedMail и не парюсь.
     
     
  • 2.5, Crazy Alex (ok), 00:25, 08/03/2018 [^] [ответить]    [к модератору]  
  • +/
    Кхм, при всей моей любви к iRedMail обновлять его - то ещё удовольствие. Работаешь скриптом...
     
     
  • 3.44, Аноним (-), 12:42, 08/03/2018 [^] [ответить]    [к модератору]  
  • +/
    А скрипт не может работать скриптом?
     
     
  • 4.51, Crazy Alex (ok), 13:58, 08/03/2018 [^] [ответить]    [к модератору]  
  • +/
    Может, но готовых нет, а писать скрипт для однократного применения на одном хосте особого смысла нет
     
  • 2.41, Миклуха (?), 12:27, 08/03/2018 [^] [ответить]    [к модератору]  
  • +/
    Юзаю nixos-mailserver - включил и забыл.
     
     
  • 3.63, D (?), 00:41, 09/03/2018 [^] [ответить]    [к модератору]  
  • +/
    > Юзаю nixos-mailserver - включил и забыл.

    Так это сборка на основе чужих продуктов.

    А он юзеров в бд умеет хранить?

     
  • 3.67, Crazy Alex (ok), 03:36, 09/03/2018 [^] [ответить]    [к модератору]  
  • +/
    nixos - штука сильно на любителя...
     
  • 1.7, Аноним (-), 00:54, 08/03/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –4 +/
    > однобайтовому переполнению в реализации декодировщика данных в формате BASE64

    сишники за работой с буфером - то же, что и женщины за рулем. Всех женщин и сишников с 8 марта!

     
     
  • 2.9, Аноним7 (?), 03:21, 08/03/2018 [^] [ответить]    [к модератору]  
  • +/
    Postfix тоже на C.
     
     
  • 3.34, fi (ok), 10:22, 08/03/2018 [^] [ответить]    [к модератору]  
  • +/
    а у него есть секретный не С-ный MTA и он ого-ого  )))))))))))
     
  • 2.52, Нет ты (?), 14:54, 08/03/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    Надо было его под Rust-ом писать, не было бы проблем с буфером. Под Rust-ом также нет проблем с лицезрением женщин за рулём.
     
  • 1.10, Аноним7 (?), 03:22, 08/03/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    А Exim, похоже, метит на лавры sendmail по дырявости.
    Ну как в XXI  веке можно написать дырявый base64? Кому не лень, проверьте, может у них и криптография самописная?
     
     
  • 2.46, Ordu (ok), 12:53, 08/03/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    > Ну как в XXI веке можно написать дырявый base64?

    Их дырявый base64 был написан в XX веке. Узнали о дыре в XXI -- это да.

     
  • 1.11, KonstantinB (ok), 05:13, 08/03/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    Ай, ну классика жанра же, off-by-one error. Со всеми случается.

    Странно только, что так долго никто не заметил.

     
  • 1.12, qsdg (ok), 05:29, 08/03/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –9 +/
    Такие штуки нужно на Rust писать, по крайней мере разбор входных данных.
     
     
  • 2.14, KonstantinB (ok), 06:40, 08/03/2018 [^] [ответить]    [к модератору]  
  • +10 +/
    Действительно, почему автор Exim в 1995-м году не написал его на Rust?
     
     
  • 3.27, Аноним (-), 07:15, 08/03/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Но сейчас то уже можно
     
     
  • 4.42, Аноним (-), 12:39, 08/03/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    Да, приступай.
     
  • 4.45, Аноним (-), 12:43, 08/03/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    s/можно/модно/
     
  • 2.36, amonymous (?), 10:52, 08/03/2018 [^] [ответить]    [к модератору]  
  • +4 +/
    Напишете свой MTA со сходной функциональностью - приходите.

    Но я вам секрет открою: у 99% хипста на это яиц/терпения не хватит.

     
     
  • 3.39, Имя (?), 12:08, 08/03/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    ты так говоришь, буд-то это что-то очень сложное.. но там основная сложность - это чтение документации.. в остальном, SMTP мало чем отличается от HTTP
     
     
  • 4.47, XoRe (ok), 12:57, 08/03/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    > ты так говоришь, буд-то это что-то очень сложное.. но там основная сложность
    > - это чтение документации.. в остальном, SMTP мало чем отличается от
    > HTTP

    exim - это не только парсер smtp.

     
     
  • 5.50, Аноним (-), 13:31, 08/03/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    > exim - это, к сожалению, не только парсер smtp.

    вот так-то лучше

     
     
  • 6.84, XoRe (ok), 15:21, 13/03/2018 [^] [ответить]     [к модератору]  
  • +/
    Для кого как Я на exim интересные и сложные вещи реализовывал А кому нужен про... весь текст скрыт [показать]
     
  • 4.54, KonstantinB (ok), 15:30, 08/03/2018 [^] [ответить]     [к модератору]  
  • +2 +/
    Exim хорош тем, что в его конфигурации можно сделать что угодно по сути это даж... весь текст скрыт [показать]
     
     
  • 5.58, лютый жабист__ (?), 18:09, 08/03/2018 [^] [ответить]    [к модератору]  
  • –3 +/
    Что конкретно нельзя сделать постфиксом? Я уже с 2003 года не слежу за новыми фичами постфикса, ибо почту он исправно принимает. Чё ещё от мта надо-то?
     
     
  • 6.59, Аноним (-), 20:15, 08/03/2018 [^] [ответить]    [к модератору]  
  • +/
    А теперь попробуй ее форвадить.
     
     
  • 7.60, _ (??), 20:46, 08/03/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    И? В чём прикол?
     
     
  • 8.66, SubGun (ok), 01:03, 09/03/2018 [^] [ответить]     [к модератору]  
  • +/
    В том, что он это не умеет Банальное принять почту, если пользователь есть в E... весь текст скрыт [показать]
     
     
  • 9.70, Alex_hha (?), 15:29, 09/03/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    ну такое то он умеет кстати, банальный relay_domains relay_recipient_maps А ... весь текст скрыт [показать]
     
  • 6.61, ALex_hha (ok), 23:34, 08/03/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    Сколько раз фанбои постфикс сливали в подобных спорах. Из коробки без внешних фильтров он мало что умеет, от слова совсем
     
     
  • 7.68, Crazy Alex (ok), 03:37, 09/03/2018 [^] [ответить]    [к модератору]  
  • +/
    Э... А должен? linux way, single responcibility там всякие...
     
     
  • 8.71, Alex_hha (?), 15:31, 09/03/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    это все равно, что в iptables выкинуть все модули и сказать single way все дела ... весь текст скрыт [показать]
     
  • 8.74, KonstantinB (ok), 19:09, 09/03/2018 [^] [ответить]     [к модератору]  
  • +2 +/
    Ну вот qmail написан прямо по этому вашему linux way, на каждый пук по процессу ... весь текст скрыт [показать]
     
     
  • 9.76, _ (??), 19:19, 09/03/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Правда вашей почты там так и осталось - пятая часть :)
     
     
  • 10.80, KonstantinB (ok), 22:46, 09/03/2018 [^] [ответить]    [к модератору]  
  • +/
    Это было еще в те времена, когда gmail-а не было даже в планах. Сейчас там, скорее всего, вообще ничего не осталось :-)
     
  • 6.73, KonstantinB (ok), 19:05, 09/03/2018 [^] [ответить]    [к модератору]  
  • +/
    Например, per user rate limit в соответствии со значением, прописанным в sqlite/mysql/pgsql.

    Не, я понимаю, что можно написать внешний policy service, но зачем так сложно, если можно просто :-)

     
     
  • 7.77, _ (??), 19:21, 09/03/2018 [^] [ответить]    [к модератору]  
  • +/
    Красота по китайски вс красота по японски.
     
  • 7.81, anomymous (?), 17:43, 10/03/2018 [^] [ответить]    [к модератору]  
  • +/
    Ну если policy service - это сложно, то я даже не знаю.
     
     ....нить скрыта, показать (24)

  • 1.32, EuPhobos (ok), 08:47, 08/03/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    > Изначально разработчики Exim скептически отнеслись к возможности практической эксплуатации проблемы

    Зачем так много букв, это всё можно было заменить четырьмя буквами - "лень" =)

     
  • 1.35, amonymous (?), 10:51, 08/03/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Лишний раз убедился в правильности выбора связки postfix+dovecot для клиентского сервиса :)
     
     
  • 2.64, D (?), 00:44, 09/03/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    > Лишний раз убедился в правильности выбора связки postfix+dovecot для клиентского сервиса
    > :)

    Что скажешь, когда в постфиксе найдут дыру?

     
     
  • 3.65, SubGun (ok), 01:01, 09/03/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    Не найдут, он нафиг никому не нужен, судя по всему. Иначе бы давно нашли.
     
     
  • 4.69, VimCoder (?), 12:01, 09/03/2018 [^] [ответить]    [к модератору]  
  • +/
    Не найдут, он нужен, судя по всему. Иначе бы давно не нашли.
     
  • 3.82, anomymous (?), 17:44, 10/03/2018 [^] [ответить]    [к модератору]  
  • +/
    Дыры находят везде и всегда. Вопрос в отношение. "А, да разве это дыра" - прямой повод посмотреть альтернативы.
     
  • 1.72, Некто (??), 17:49, 09/03/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Если сходить по ссылке и разобраться в эксплоите, то выясняется, что для успешной эксплуатации требуется:

    First of all, we send a EHLO message with huge hostname ...... 0x6060 length (это, между прочим, EHLO длинной 24672 байта)

    Нормальные админы начинают acl_smtp_helo, mail и rcpt с обязательной проверки:

    drop condition = ${if >={${strlen:$smtp_command_argument}}{256}}

    Так что мировая катастрофа откладывается.

     
     
  • 2.79, Аноним (-), 19:58, 09/03/2018 [^] [ответить]     [к модератору]  
  • +/
    Спасибо, немного успокоил Так то оно так, но Изначально разработчики Exim скеп... весь текст скрыт [показать]
     
  • 2.83, xm (ok), 22:46, 11/03/2018 [^] [ответить]     [к модератору]  
  • +/
    Нормальным админам надо бы RFC почитывать на досуге https tools ietf org htm... весь текст скрыт [показать]
     

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


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