The OpenNET Project / Index page

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

Раскрыты подробности критической уязвимости в Exim

06.09.2019 19:34

Опубликован корректирующий выпуск Exim 4.92.2 с устранением критической уязвимости (CVE-2019-15846), которая в конфигурации по умолчанию может привести к удалённому выполнению кода злоумышленника с правами root. Проблема проявляется только при включении поддержки TLS и эксплуатируется через передачу специально оформленного клиентского сертификата или модифицированного значения в SNI. Уязвимость выявлена компанией Qualys.

Проблема присутствует в обработчике экранирования спецсимволов в строке (string_interpret_escape() из string.c) и вызвана тем, что символ '\' в конце строки интерпретируется перед нулевым символом ('\0') и экранирует его. При экранировании последовательность '\' и следующий далее нулевой код конца строки обрабатывается как один символ и указатель сдвигается на данные за пределами строки, которые обрабатываются как её продолжение.

Код, вызывающий string_interpret_escape(), выделяет буфер под стоку, руководствуясь фактическим размером, и выставленный указатель оказывается в области вне границ буфера. Соответственно, при попытке обработки входной строки возникает ситуация чтения данных из области вне границ выделенного буфера, а попытка записи разэкранированной строки может привести к записи за пределы буфера.

В конфигурации по умолчанию уязвимость может быть эксплуатирована через передачу специально оформленных данных в SNI при установке защищённого соединения к серверу. Проблема также может быть эксаплуатирована через модификацию значений peerdn в конфигурациях, настроенных для аутентификации по сертификату клиента, или при импорте сертификатов. Атака через SNI и peerdn возможна начиная с выпуска Exim 4.80, в котором функция string_unprinting() была применена для разэкранирования содержимого peerdn и SNI.

Для атаки через SNI подготовлен прототип эксплоита, работающий на архитектурах i386 и amd64 в Linux-системах с Glibc. В эксплоите используется наложение данных на область кучи, приводящее к перезаписи памяти, в которой хранится имя файла лога. Имя файла заменяется на "/../../../../../../../../etc/passwd". Далее перезаписывается переменная с адресом отправителя, который первым сохраняется в лог, что позволяет добавить нового пользователя в систему.

Обновления пакетов с устранением уязвимости выпущено дистрибутивами Debian, Ubuntu, Fedora, SUSE/openSUSE и FreeBSD. RHEL и CentOS проблеме не подвержены, так как Exim не входит в их штатный репозиторий пакетов (в EPEL обновление уже сформировано, но пока не помещено в публичный репозиторий). В коде Exim проблема устраняется однострочным патчем, отключающем экранирующее действие обратного слэша, если он находится в конце строки.

В качестве обходного пути для блокирования уязвимости можно отключить поддержку TLS или добавить в секцию ACL "acl_smtp_mail":


    deny    condition = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
    deny    condition = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}


  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Обновление Exim 4.92.1 с устранением уязвимости
  3. OpenNews: Критическая уязвимость в Exim, позволяющая выполнить код на сервере с правами root
  4. OpenNews: Массовая атака на уязвимые почтовые серверы на основе Exim
  5. OpenNews: Выпуск Exim 4.90.1 с устранением уязвимости, не исключающей выполнение кода на сервере
  6. OpenNews: Уязвимость в Exim, позволяющая выполнить код на сервере
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: exim
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (97) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.2, KaE (ok), 20:28, 06/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Ну и напоследок... компания Qualys и разработчики Exim в очередной раз желают всем приятных выходных!
     
     
  • 2.49, fail (?), 05:53, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Ну и напоследок... компания Qualys и разработчики Exim в очередной раз желают всем приятных выходных!

    Вспомнился старый анекдот:
    Понедельник, утро, семейный очаг, благоверная дежурит со спец. ср-вами, заползает добытчик шкур мамонтов, диалог:
    - ты где был ?
    - в эту праздничную ночь, с четверга на понедельник мы отмечали ДР кореша !
    Занавес

     

  • 1.3, Аноним (3), 20:53, 06/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +19 +/
    > RHEL и CentOS проблеме не подвержены, так как Exim не входит в их штатный репозиторий пакето

    ГЕНИАЛЬНО!

     
     
  • 2.4, Аноним (4), 21:11, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +12 +/
    Кстати это реально работает. Я не подвержен уязвиомостям виндоус, потому что не ставил её себе.
     
  • 2.5, suffix (ok), 21:30, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Да ладно Вам - в этом году всего три у exim и одна у dovecot критические уязвимости - главное новости этого сайта читать и обновляться вовремя.

    Всё равно exim + dovecot лучше чем гугл-почта и дешевле чем эксчендж.

     
     
  • 3.13, robot228 (?), 22:13, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё бы придумать инструмент своевременного оповещения о выходе новых версии софта, особенно если дело касается критических исправлении. Пока к сожалению только на гитхабе по RSS все обновы ставлю. Но есть такой софт который не хостится на гитхабе и тому подобных системах.
     
     
  • 4.16, Аноним (16), 22:15, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    https://vulners.com/products
     
     
  • 5.105, Аноним (105), 22:25, 09/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Чистая белая страница.
     
  • 4.19, пох. (?), 22:22, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    так придуман давно - tail /var/log/apt.log (или как он там)

    наивные дети, думающие что они могут уследить за всем миллионом кривых софтин установленных на всех хостах - должны же страдать еще до того, как выберутся за пределы локалхоста?

     
     
  • 5.35, robot228 (?), 23:06, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > так придуман давно - tail /var/log/apt.log (или как он там)
    > наивные дети, думающие что они могут уследить за всем миллионом кривых софтин
    > установленных на всех хостах - должны же страдать еще до того,
    > как выберутся за пределы локалхоста?

    У тебя моцк ктухлу зохавал походу. В чс добавил. Запарил всякую фигню нести.

     
     
  • 6.52, . (?), 08:19, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    очередное детишко обиделось?

    ну ладно, пусть больше не читает - а то ж разрушают ему розовый маня-мирок, где оно может вовремя и хоть с какой пользой (учитывая типовое жданье ебилдов) отслеживать все-все-все уязвимости во всем-всем-всем что понаустанавливало...или точнее поустанавливали за него умные дяди без спросу.

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

     
  • 5.63, Аноним (63), 12:56, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Пох, а терминация TLS для почтового трафика на реверсном прокси насколько удачное решение, и почему? Спасибо.
     
     
  • 6.99, пох. (?), 12:59, 09/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Пох, а терминация TLS для почтового трафика на реверсном прокси насколько удачное
    > решение, и почему? Спасибо.

    две точки отказа вместо одной и два уязвимых сервиса вместо одного, ну я хз.

    нет, если под "proxy" ты подразумеваешь какой-нибудь ironport - то, конечно, работает - в смысле, за его интерфейсом tls и не особо нужен, и никакими неприятностями если и есть, не грозит.
    Он и еще от статыщ болезней помогает, только стоит, гад, неприличных денег, купите два и заплатите всего-навсего вдвое больше! И настраивать неудобно, как и у всех энтерпрайзных поделок.

    А самому из дерьма и палок лепить - зачем?

     
  • 4.24, KonstantinB (ok), 22:29, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    На https://www.cvedetails.com/ есть кастомизируемый RSS.
     
     
  • 5.40, Аноним (40), 00:20, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Через 4 года тут будет город сад... (с)
    https://www.cvedetails.com/cve-details.php?cve_id=CVE-2019-15846

    Unknown CVE ID

    Нет, конечно, дней через несколько оно там появится, но не сегодня..

    Но ремотный рут это такая штука, о которой через неделю узнать может оказаться поздно. (даже если не рут, а просто пользователь от которого работает почтовка.. это обычно все, что и есть на сервере. Уж мейнить и спамить - 100% хватит.)

     
  • 5.43, Тройной (?), 03:15, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.openwall.com/lists/oss-security/
     
  • 4.60, Аноним (60), 10:24, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Ещё бы придумать инструмент своевременного оповещения о выходе новых версии софта, особенно если дело касается критических исправлении.

    А лучше, чтобы этот инструмент сам же эти критические обноления и ставил… Хотя погоди!
    https://wiki.debian.org/UnattendedUpgrades
    https://dnf.readthedocs.io/en/latest/automatic.html

     
  • 4.71, OpenEcho (?), 17:10, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.itsecdb.com/oval/
     
  • 3.42, Аноним (42), 01:10, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Иногда тяжело отличать сарказм и не сарказм.
     
  • 3.58, BrainFucker (ok), 09:02, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Всё равно exim + dovecot лучше чем

    Есть Postfix, если что.

     
  • 3.59, Аноним (60), 10:16, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > главное новости этого сайта читать и обновляться вовремя.

    Да-да, уязвимости, о которых тут не пишут, они ведь не существуют. И ты ведь 24/7 онлайн, чтобы вовремя прочитать новость и накатить обнову на свой сервачок, не так ли?

     
     
  • 4.62, suffix (ok), 10:55, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно 24/7 - а как же иначе гордо нести высокое звание постмастера :) ?
     
     
  • 5.64, Аноним (63), 12:59, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У многих современных постмастеров даже такого алиаса нет. Какой уж тут 24/7.
     
     
  • 6.100, пох. (?), 13:00, 09/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > У многих современных постмастеров даже такого алиаса нет. Какой уж тут 24/7.

    afair, в б-жественной бубунточке я видел /etc/aliases длиной ноль байт. Ну а чо, кому надо - напишет свои же ж?

     
  • 2.9, пох. (?), 21:59, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    epel, кстати, обновился - удивительно, и необычно для них, не прощелкали.

     
     
  • 3.10, Аноним (16), 22:02, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    То то пишут бред, не обновились они. Так что пох и нах
     
     
  • 4.12, пох. (?), 22:08, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    да, зря я за них радовался - не туда глянул. "там" все как обычно - 4.92.1

    ну ничего, через недельку отдуплятся и поток спама с гуаноvps начнет снижаться.

     
  • 3.82, Аноним (82), 04:29, 08/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    До сих пор не обновился
    Дырявый ентерпрайс
    Счастлив от того что у меня Ubuntu, реально, все апдейты вчера поставились
     
     
  • 4.85, Аноним (40), 10:37, 08/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Уже... (сен  8 05:04 + время на синк по зеркалам)
     
     
  • 5.92, пох. (?), 12:35, 09/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Уже... (сен  8 05:04 + время на синк по зеркалам)

    че-та поторопились, эксплойт видимо никто так толком и не выпустил - доля спама с exim'ов нифига не изменилась, обычный всплеск в ночь с пятницы на понедельник.

     
  • 4.93, пох. (?), 12:37, 09/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > До сих пор не обновился
    > Дырявый ентерпрайс

    epel - нерекомендованный к использованию энтерпрайзом репозиторий.
    > Счастлив от того что у меня Ubuntu, реально, все апдейты вчера поставились

    сам-то ты руками вообще ничего делать не умеешь, только писюн теребить, да?

    "счастлив от того что у меня exchange, все апдейты всегда сами ставятся. А если чего и не исправляют - я об этом все равно не узнаю."


     
  • 2.20, KonstantinB (ok), 22:24, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Про Windows 10 еще надо было написать!
     
  • 2.81, Аноним (82), 04:27, 08/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    В EPEL до сих пор нет нового Exim
    Все так называемые ентерпрайс системы типа CentOS уязвимы

    И стоит ли после этого в продакшин использовать их?)

     
     
  • 3.88, Аноним (88), 17:43, 08/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А что мешает вам использовать в продакшене систему с postfix по умолчанию вместо дырявого сабжа?
     
     
  • 4.89, Аноним (63), 23:40, 08/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Обновления для постфикс будут от этого выходить быстрее чем обновления для exim?
     
  • 3.94, пох. (?), 12:41, 09/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > В EPEL до сих пор нет нового Exim
    > Все так называемые ентерпрайс системы типа CentOS уязвимы
    > И стоит ли после этого в продакшин использовать их?)

    epel - нет, и никогда раньше не стоило. What is EPEL? EPEL (Extra Packages for Enterprise Linux) is a volunteer-based community effort... то есть типовая васян-сборка пакетов, по разным причинам не включенных в поставку.

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

    А если ты промышленный почтовый сервер на много пользователей и с нетривиальной обработкой их почты (для чего и нужен exim) используешь не с самостоятельно как тебе нужно собранной версией, а с поделкой из epel - тебя ждут не дождутся на трехдневных курсах windows-админов.

     

  • 1.6, Sw00p aka Jerom (?), 21:50, 06/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ну шо продолжаем дискуссию по поводу терминирующего нуль символа?
     
     
  • 2.66, Аноним (63), 13:04, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Полезная оказывается штука, этот символ!
    А сколько их ещё не нашли!
    Подождем пару недель, пока какой-нибудь швед вылезет с очередной порцией символов.
    Обнова будет в пятницу, чтобы админы на выходных не скучали.
     

  • 1.7, Аноним (16), 21:52, 06/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    RedHat не выпустил еще пакеты, доступны по ссылке https://apps.fedoraproject.org/packages/exim/builds/
     
  • 1.8, пох. (?), 21:57, 06/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    очередной привет от ненужно-sni.

    интересно, вот каких печенек с какой волшебной травой надо наесться, чтобы этот мусор притащить еще и в mta?


     
     
  • 2.11, suffix (ok), 22:05, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну удобно же на одном exim получать почту на несколько доменов с разными IP и сертификатами.
     
     
  • 3.14, пох. (?), 22:14, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    еще один :-(

    зачем тебе разные сертификаты одного и того же сервера, принадлежащие одному и тому же юзеру на нем?
    Для создания _видимости_ безопасности?

     
     
  • 4.18, suffix (ok), 22:21, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как перфекционисту приятно же иметь на

    https://www.immuniweb.com/ssl/?id=WxGZsI4I

    Не просто А+, но и compliant to PCI.DSS, HIPAA and NIST

    :)

     
     
  • 5.22, KonstantinB (ok), 22:27, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И arbitrary code execution под рутом. Бонусом. :-)
     
     
  • 6.25, suffix (ok), 22:29, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тонизирует и заставляет отслеживать обновления :)
     
  • 6.38, Тот самый (?), 23:58, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Бонус только для тех, у которых exim под рутом крутится, или с suid битом. А если так:

    ps axu
    mail     29485  0.0  0.0  7876 2016 ?  S  Sep06   0:00 exim -bdf -q15m

    PS Да вообще-то уже обновился. Конфигурирование Makefile и сборка заняли ~10 минут

     
     
  • 7.47, Аноним (47), 04:20, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Выполнение произвольного кода под uid мейлера - тоже не сахар
     
  • 5.23, пох. (?), 22:29, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ну вот теперь имеешь remote root. Приятно, ага.

    попутно кормишь товарищмайора метаинфой.

     
     
  • 6.28, suffix (ok), 22:36, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    С этой точки зрения я с Ваии согласен, но есть один нюанс - у меня есть убеждение (не подкреплённые фактами правда), что для рассылок (попадание в инбокс) важно таки иметь отдельный сертификат на каждый домен.
     
     
  • 7.32, KonstantinB (ok), 22:39, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не, это уже про DKIM, а там совсем другая история.
     
     
  • 8.33, suffix (ok), 22:45, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    DKIM вообще у всех есть - Гугл на него практически не смотрит - так маленький пл... текст свёрнут, показать
     
     
  • 9.48, Аноним (47), 04:22, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну не знаю, спам я не шлю, а рассылки, на которые пользователь осознанно подписа... текст свёрнут, показать
     
  • 9.53, пох. (?), 08:28, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    смотрит, но не так как ты думаешь И да, у каждого спамера dkim - разумеется, ес... текст свёрнут, показать
     
     
  • 10.57, suffix (ok), 08:52, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы это мне У меня рассылки подписчикам сайта никогда в спам не попадают Го... текст свёрнут, показать
     
  • 5.78, Аноним (60), 23:37, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Как перфекционисту приятно же иметь на
    > https://www.immuniweb.com/ssl/
    > Не просто А+, но и compliant to PCI.DSS, HIPAA and NIST

    Совершенно упоротая писькомерка. Проверил свой postfix, подкрутил настройки — issues стало меньше, но общая оценка упала с A до A-. Это как так? Проверил HTTPS, подкрутил настройки — он почему-то не нашёл OCSP stapling, который как был включён, так и остался.
    Ну и по алгоритмам у HIPAA и NIST весьма спорные рекомендации.

     
     
  • 6.79, suffix (ok), 23:55, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А вот сейчас обидно :(

    Если на странице этого теста перейти во вкладку "About" то на в низу в абзаце "acknowledgements" - в первой строчке я упомянут.

    Понятно что у всех своё видение но это лучший тест в этой направленности (tls для smtp.

     
     
  • 7.84, Аноним (60), 10:09, 08/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Понятно что у всех своё видение но это лучший тест в этой направленности (tls для smtp.

    Потому что других просто нет?

     
     
  • 8.86, suffix (ok), 11:12, 08/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Почему нет Есть же testssl sh, sslyze которые умеют smtp Но immuniweb бывши... текст свёрнут, показать
     
  • 6.103, пох. (?), 13:08, 09/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Совершенно упоротая писькомерка. Проверил свой postfix, подкрутил настройки — issues

    ну так кому - надежный почтовый сервер, а кому - писькомерку.
    Эти категории почти не пересекаются.

    > Ну и по алгоритмам у HIPAA и NIST весьма спорные рекомендации.

    ну так вам шашечки или сертификацию ? Во втором случае "спорные рекомендации" становятся бесспорными. В остальных случаях писькомерками не пользуются.

     
  • 2.21, KonstantinB (ok), 22:26, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Я вообще узнал про то, что там есть SNI, только сегодня. Сильно удивился, на кой.
     
     
  • 3.26, пох. (?), 22:30, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    его скорее всего и отключить-то в распрекрасном openssl нельзя. Можно только проигнорировать результат.

     
     
  • 4.29, KonstantinB (ok), 22:37, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не, SNI там надо в явном виде заимплементить. SSL_CTX() и колбэк на каждый SNI hostname.
     
     
  • 5.54, пох. (?), 08:30, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ну вот колбэки можно не регистрировать, а ненужнозаголовок оно все равно небось отправит. С дефолтным доменом, если не назначить.

     
     
  • 6.75, KonstantinB (ok), 20:39, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Если не дергать SSL_set_tlsext_host_name, ничего не отправит. А откуда ему знать, что отправлять?
     
     
  • 7.96, пох. (?), 12:48, 09/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Если не дергать SSL_set_tlsext_host_name, ничего не отправит. А откуда ему знать, что
    > отправлять?

    что-нибудь найдут, я в них верю

    если у тебя есть подходящий кусок кода - можно было бы взять да и просто проверить tcpdump'ом, шлет он этот мусор или нет.

     
  • 2.31, нона (?), 22:39, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ога, долбоклювы прозевали, а виноват SNI. А вообще, если бы все боялись осваивать технологии из-за страха получить уязвимость, ты бы до сих пор в пещере под шконкой сидел, а не пыхтел с теплого дивана.
     

  • 1.15, Anonymoustus (ok), 22:14, 06/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Сишечка православная не прощает невнимательных. :)
     
  • 1.17, Anonymoustus (ok), 22:17, 06/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Интересно, вот, из общетеоретических соображений: если сконвертировать исходники на ненавидимый всеми Паскаль и скомпилировать — уязвимость будет?
     
     
  • 2.27, пох. (?), 22:30, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    нет, поскольку они и работать - тоже не будут.

     
     
  • 3.30, KonstantinB (ok), 22:38, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Но ведь уязвимости нет, если ничего не работает!

    (philosoraptor.jpg)

     
  • 3.34, Anonymoustus (ok), 22:51, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > нет, поскольку они и работать - тоже не будут.

    Почему же нет? Фрипаскалем сконьпелировать статически — ещё и на линуксах правнуков будут работать.

    Надо бы попробовать на чём-то.

     
  • 2.36, Аноним (36), 23:07, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > если сконвертировать исходники на ненавидимый всеми Паскаль..

    Вирт хитро улыбнулся и заказал еще попкорна

     
     
  • 3.37, Anonymoustus (ok), 23:18, 06/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> если сконвертировать исходники на ненавидимый всеми Паскаль..
    > Вирт хитро улыбнулся и заказал еще попкорна

    Делать это я не пробовал, но пишут, что можно:

    https://wiki.freepascal.org/C_to_Pascal

     
     
  • 4.39, Аноним (36), 00:02, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Смысл то? очевидно что в более строгом языке косяков меньше, про это все знают, но толку то? ситуация сложилась так как сложилась..
     
  • 4.55, пох. (?), 08:32, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    хеловорд - можно.

    в остальных случаях ты напишешь еще один си-компилятор, с динамическими строками в том числе. И нулевой производительностью.

    Ну голову-то надо иногда не только кормить?


     
  • 2.41, Ordu (ok), 01:03, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Из общетеоретических соображений ответить на этот вопрос невозможно. Но из практических соображений можно: это будет зависеть от того, как ты будешь конвертировать.

    Если ты будешь использовать паскалевские строки, то выйти за границы массива тебе не удастся. Дыра таким образом заткнётся, но баг останется. И не факт, что этот баг не позволит эксплуатацию -- это уже будет зависеть от того, насколько корректно ты будешь обрабатывать ошибки в программе. И вряд ли очень корректно, если речь идёт о построчном переписывании exim.

    А если ты откажешься от паскалевских строк, потому что, например, тебе не нравится сборка мусора, и ты хочешь рулить памятью под строки самостоятельно, то тут уже будет зависеть от того, как ты реализуешь строки в паскале. Скорее всего тебе ведь захочется отойти от упёртости паскаля реализуя их, и сделать что-нибудь разэдакое, в стиле:

    struct c_string {
        size_t size;
        char str[0]; /* variable size */
    };

    Паскаль этого не позволяет (насколько я понимаю, он не умеет в array [] of char, а если ему указать 0 в качестве размера, то он любой индекс будет считать инвалидным и отвергать с рантайм ошибкой), значит ты так или иначе включишь "unsafe" режим программирования (заюзав какие-нибудь компиляторо-специфичные вещи, вплоть до ассемблерных вставок), таким образом у тебя будут все возможности нарушить инварианты языка, и если наружу ты выставишь API изоморфный C'шному API для работы с char* (чтобы максимально просто было бы переписывать), и под этим API не будешь вставлять дополнительных проверок на размеры (большинство этих проверок ведь не нужны и тормозят выполнение программы), то ты легко при переписывании сможешь воспроизвести баг.

     
     
  • 3.44, Андрей (??), 03:24, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > и под этим API не будешь вставлять дополнительных проверок на размеры (большинство этих проверок ведь не нужны и тормозят выполнение программы)

    А Rust, разве, не таким же образом обеспечивает безопасность "без потери" производительности при обработке массивов?

     
     
  • 4.50, Ordu (ok), 06:12, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> и под этим API не будешь вставлять дополнительных проверок на размеры (большинство этих проверок ведь не нужны и тормозят выполнение программы)
    > А Rust, разве, не таким же образом обеспечивает безопасность "без потери" производительности
    > при обработке массивов?

    Я думаю, так же. Не уверен -- я никогда не разбирался как работают оптимизаторы паскалей. Где-то читал, что они в 70-е годы умели оптимизировать эти проверки, выкидывая их из циклов или выполняя во время компиляции, то есть C был шагом назад уже тогда. Но сам я никогда не вникал. Хоть мне не очень верится: я видел код скомпилированный из C в 90-е, и он инлайня сохранял пролог/эпилог функции, создающий/удаляющий стековый фрейм. AFAIR, примеры тому можно найти, скажем, в heroes2.exe -- там инлайнятся строковые функции, типа strlen, и они сохраняют регистры которые можно не сохранять. Мне не очень верится что такого рода компилятор мог бы справится с преобразованием кода:

    for i in 0..N {
       if i<N {
           println!("{}", arr[i]);
       } else {
           fatal_error("Index out of bounds");
       }
    }

    к

    for i in 0..min(N, arr.len()) {
        println!("{}", arr[i]);
    }
    if N>=arr.len() {
        fatal_error("Index out of bounds");
    }

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

     
  • 4.56, пох. (?), 08:39, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А Rust, разве, не таким же образом обеспечивает безопасность "без потери" производительности
    > при обработке массивов?

    у него обычный компилятор.

    А одним из великих преимуществ паскакаля (для студоты и прочих ненужно) является то что его компиляторы - однопроходные. Ведь студенту главное что - чтобы быстро-быстро скомпилилось, и можно бежать пить смузи с девочками. А о производительносни ненужноязыковых программ вообще незачем заботиться. Все равно они кроме сортировки пузырьком ничего не делают.

     
     
  • 5.69, Анонимный_Пояснитель (?), 13:32, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > А одним из великих преимуществ паскакаля (для студоты и прочих ненужно) является то что его компиляторы - однопроходные. Ведь студенту главное что -
    > чтобы быстро-быстро скомпилилось, и можно бежать пить смузи с девочками. А
    > о производительносни ненужноязыковых программ вообще незачем заботиться.

    Для новых анонимов поясню, а то пох слишком скромный:
    Это были рассуждения и мысли о правильных и неправильных языках программирования от известного, активного, профессионального разработчика поха.

    Для модераторов и некоторых совсем-совсем уже почти взрослых анонимых защитников поха от непонятно чего:
    Эта штука называется сарказм.

     
  • 3.61, Аноним (60), 10:39, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Из общетеоретических соображений ответить на этот вопрос невозможно. Но из практических соображений можно

    А с точки зрения банальной эрудиции?

     
  • 2.45, Андрей (??), 03:29, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Можно попробовать сконвертировать и на Go: https://github.com/elliotchance/c2go
     
     
  • 3.46, Аноним (46), 04:13, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Есть более современая замена Vlang переводит си в V (голанг подобный).
     
     
  • 4.70, Аноним84701 (ok), 13:52, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Есть более современая замена Vlang переводит си в V (голанг подобный).

    Его что, за 3 месяца резко перевели из разряда "препрепрепреальфа и много мыслей, что должно быть в зашибись языке!" в реальность?


     
  • 3.51, Anonymoustus (ok), 06:56, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Можно попробовать сконвертировать и на Go: https://github.com/elliotchance/c2go

    Да, идея, в целом, именно такая: получится ли конвертировать сишные исходники во что-то более безопасное и собрать без потери функциональности и скорости бинарника.

     

  • 1.72, None (??), 18:20, 07/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не очень понятно, зачем почтовому демону вытаскивать бекслэши из строк где-либо помимо функции чтения конфига.
     
     
  • 2.76, Аноним (76), 21:20, 07/09/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Для выполнения парсером любого кода как обговорено разработчиками с ЦРУ и АНБ.
     

  • 1.74, Аноним (74), 20:15, 07/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >В качестве обходного пути для блокирования уязвимости можно отключить поддержку TLS или добавить в секцию ACL "acl_smtp_mail"

    Спасибо что не сказали об этом сразу, а поквасили пару недель в ожидании исправления под nda. Мы ведь верим, что инфа, доведенная до мейнтейнеров дистрибутивов раньше огласки в паблике никуда не утечет.

    Господи, какие же у5б*н#.

     
     
  • 2.97, пох. (?), 12:54, 09/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Спасибо что не сказали об этом сразу, а поквасили пару недель в
    > ожидании исправления под nda. Мы ведь верим, что инфа, доведенная до

    тебя тутошние вопли страдальцев с epel ничему не научили?

    > мейнтейнеров дистрибутивов раньше огласки в паблике никуда не утечет.

    мы верим что ущерб от нее будет в разы меньше, чем от публикации рецепта, позволяющего легко вычислить саму уязвимость, при наличии миллиона доступных серверов в интернете. Потому что менять конфиги вы не умеете, как и пересобирать пакеты своими силами. Ан масс. А спам - явление массовое.

     

  • 1.77, Michael Shigorin (ok), 21:29, 07/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > переменная с адресом отравителя

    Предложил правку, но вообще новость в таком изложении звучит как-то даже прям иначе...

     
  • 1.80, Аноним (82), 04:27, 08/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    В EPEL до сих пор нет нового Exim
    Все так называемые ентерпрайс системы типа CentOS уязвимы

    И стоит ли после этого в продакшин использовать из?)

     
     
  • 2.83, Аноним (83), 09:31, 08/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А какое отношение Centos имеет к EPEL? Это васянский сторонний репозиторий.
     
     
  • 3.87, Аноним (82), 12:15, 08/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Именно поэтому надо ставить нормальный дистрибутив, а не центось и потом обмазываться васяно-репозиториями и орать про стабильность
     
  • 3.104, Аноним (60), 14:14, 09/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > EPEL? Это васянский сторонний репозиторий.

    Не васянский, а федорастический. Что не лень федоромайнтайнерам лишний раз собрать, то туда и пихают, не заботясь о качестве.

     

  • 1.90, Аноним (90), 09:19, 09/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Если sni не используется имеет смысл включать?
     
  • 1.91, Аноним (90), 09:42, 09/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    failed to expand ACL string "${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}": unknown variable name "tls_in_sni"
    Хм, я опять в пролете?
     

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



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

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