LINUX.ORG.RU

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

 , ,


1

1

ZDI (Zero Day Initiative) опубликовали сведения о трех найденных критических уязвимостях в почтовом сервере Exim, позволяющих выполнить произвольный код от имени процесса сервера, открывшего 25й порт. Для проведения атаки аутентификация на сервере не требуется.

  1. CVE-2023-42115 — позволяет добиться записи своих данных за границами выделенного буфера. Вызвана ошибкой проверки входных данных в сервисе SMTP.
  2. CVE-2023-42116 – вызвана копированием данных от пользователя в буфер фиксированного размера без проверки необходимого размера.
  3. CVE-2023-42117 – также вызвана отсутствие проверки входных данных на 25 порту SMTP-сервиса.

Уязвимости отмечены как 0-day, что говорит о том, что их не исправляют, хотя по словам ZDI разработчики Exim уже давно предупреждены об их наличии. Возможно, исправление будет в версии 4.97 сервера, но это не точно.

В качестве защиты от этих уязвимостей на данный момент предлагается ограничение доступа к SMTP на 25 порту.


UPD. Похоже, что все не так страшно. Эти уязвимости носят локальный характер. Они не работают, если сервер не использует NTLM и EXTERNAL аутентификации, не закрыт за прокси, не использует потенциально опасные DNS-серверы и не использует spf в acl. Подробнее…

>>> Подробности

★★★★★

Проверено: maxcom ()
Последнее исправление: Zhbert (всего исправлений: 1)

Ответ на: комментарий от maxcom

Я потыкался по их сайту — такое ощущение, что нет.

Zhbert ★★★★★
() автор топика
Ответ на: комментарий от Zhbert

Судя по тексту, они уже год как передают им последнее китайское предупреждение. Толи разработчики exim превратились в тыкву, толи эти CVE не представляют реальной опасности.

maxcom ★★★★★
()
Последнее исправление: maxcom (всего исправлений: 1)
Ответ на: комментарий от maxcom

Есть ещё варианты «сложно починить» и «полезно, попросили оставить»

router ★★★★★
()
Ответ на: комментарий от maxcom

толи эти CVE не представляют реальной опасности.

У CVE-2023-42115 score 9.8, почти максимум

AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

exploitability:

  • attack verctor: network
  • attack complexity: low
  • privileges required: none
  • user interaction: none
  • scope: unchanged

impact:

  • confidentiality impact: high
  • integrity impact: high
  • availability impact: high
router ★★★★★
()

Я не удивлён такому от exim-а, от него за км запахом дыр несёт.

firkax ★★★★★
()

Он же на сишее написан. Чего вы ещё ожидали? Невозможно написать на си программу длиннее трёх строк и не заложить при этом парочку уязвимостей.

ox55ff ★★★★★
()
Ответ на: комментарий от ox55ff

Си тут ни при чём. Просто традиционно всё что связано с email пишут какие-то странные люди, начиная с почтовых rfc и sendmail-а десятки лет назад. Как сервера так и клиенты. Хотя сейчас наверно уже есть что-то вменяемое (например я не видел postfix, может он норм).

firkax ★★★★★
()

Еще одно доказательство дырявости почты.

К счастью все больше и больше умных людей и компаний от нее отказываются.

HRу надо научиться новой методике проверки адекватности кандидата:

- Здравствуйте, собеседуемый, у вас есть email ?

- Есть.

- Извините, на данный момент вы нам не подходите.

А что касается самого Exim - что ж, лучше него еще ничего не придумали. Тот второй, который postfix - боль, головная боль, жопоболь.

windows10 ★★★★★
()
Ответ на: комментарий от windows10

Это надо у него во ВКонтакте спросить, я правильно тебя понял?

maxcom ★★★★★
()
Последнее исправление: maxcom (всего исправлений: 1)

позволяет добиться записи своих данных за границами выделенного буфера

вызвана копированием данных от пользователя в буфер фиксированного размера без проверки необходимого размера

Written in C

Классика

hateWin ★☆
()
Ответ на: комментарий от firkax

Просто традиционно всё что связано с email пишут какие-то странные люди

Какие забавные маневры. У любителей сишки всегда так: куда не плюнь – везде неправильные люди.

hateWin ★☆
()

Сплоит бы. Хочу вернуть почивший sibmail себе обратно, а то могут принимать почту по старому адресу левые люди

mittorn ★★★★★
()

Разработчики Exim вообще странные люди. Я как-то им писал, просил сделать вывод логов на stdout, чтобы в контейнере не нужно было кудесничать с симлинками. Мне ответили, что не нужно, потому что, мол, разную информацию надо писать в разные логи. А мультилог? Не слышали, не нужно.

ivanov17
()
Ответ на: комментарий от firkax

Си тут ни при чём.

Спасибо, поржал =)

Просто традиционно всё что связано с email пишут какие-то странные люди

e-mail тут можно заменить на все, что угодно, например на ядро, да на все, что написано на Си.

vasya_pupkin ★★★★★
()
Последнее исправление: vasya_pupkin (всего исправлений: 1)

Странно, что такие ошибки не были выявлены статическим анализатором кода. Или на их основе как-раз и были выявлены проблемы?

Irben ★★★
()

Забавляют комментарии насчет языка, когда во всех трех проблемах «разработчик не проверил пользовательский ввод, разработчик не проверил пользовательский ввод, разработчик не проверил пользовательский ввод».

PPP328 ★★★★★
()
Ответ на: комментарий от PPP328

Забавляют комментарии насчет языка, когда во всех трех проблемах «разработчик не проверил пользовательский ввод,

Больше удивляет квалификация разработчиков и 1000 глаз, которые типа смотрят код.

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

vasya_pupkin ★★★★★
()
Последнее исправление: vasya_pupkin (всего исправлений: 1)
Ответ на: комментарий от vasya_pupkin

Да и язык виноват и там сам это прекрасно понимаешь

Граната не виновата, что её в руки взяла макака

PPP328 ★★★★★
()
Ответ на: комментарий от PPP328

Забавляют комментарии насчет языка, когда во всех трех проблемах «разработчик не проверил пользовательский ввод, разработчик не проверил пользовательский ввод, разработчик не проверил пользовательский ввод».

Это легко говорить сидя на диване, но когда тебе нужно 20 тысяч раз в коде проверить пользовательский ввод, причем, это нужно сделать в дополнение ко всей остальной работе, то вопрос уже не стоит как «забудет ли програмист проверить ввод?», вопрос стоит «что произойдет, когда программист снова забудет проверить ввод?». И именно вот здесь языки C и в большой степени C++ отличаются от подавляющего большинства ЯП ответом «тогда злоумышленник выполнит произвольный код».

Я хочу подчеркнуть, что этого не было в фортране, этого не было в коболе — это «изобретение» разработчиков Си, создавших самый уязвимый ЯП в мире, который позже был превзойден разве что PHP, и то не факт.

byko3y ★★★★
()
Ответ на: комментарий от vasya_pupkin

Так может использовать появившиеся за последние 30 лет средства статического и динамического анализа? Применять безопасные практики? Следовать стандартам? Да ну, лучше придумать еще один псевдоязычок с инопланетным синтаксисом, который ну точно будет безопаснее*

*но это не точно.

Вангую что в exim есть функции на 400-500 строк, сотни функций в одном файле, макросы на 50-60 строк и миллион однобуквенных переменных вперемешку с волшебными цифрами.

PPP328 ★★★★★
()
Последнее исправление: PPP328 (всего исправлений: 1)
Ответ на: комментарий от vasya_pupkin

Так может гранаты убрать от неразумных макак ?

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

firkax ★★★★★
()
Ответ на: комментарий от PPP328

Так может использовать появившиеся за последние 30 лет средства статического и динамического анализа? Применять безопасные практики? Следовать стандартам?

А оно помогает ? Ядру линукса статистический и динамический анализ помог ? А exim'у ?

vasya_pupkin ★★★★★
()
Последнее исправление: vasya_pupkin (всего исправлений: 1)
Ответ на: комментарий от byko3y

вопрос стоит «что произойдет, когда программист снова забудет проверить ввод?»

Ещё и «опять»?! Дисциплинарное взыскание, очевидно, и постановка вопроса о профпригодности. Да и вообще, слова «проверить ввод» несколько вводят в заблуждение и создают некорректную и примитивную картину того, что требуется делать.

firkax ★★★★★
()
Ответ на: комментарий от PPP328

Следовать стандартам?

Это тем самым стандартам, которые привели к трешу с strict aliasing и прочим официально разрешенным undefined behavior? Отличная история. Осталось услышать советы «следовать корану» и «ставить свечки в церкви».

byko3y ★★★★
()
Ответ на: комментарий от firkax

Так может гранаты убрать от неразумных макак ?

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

Хороший вопрос, потому что Я ЗНАЮ СИШНИКОВ. Знаете поговорку про «нет такого преступления, на которое капиталист не пойдет ради двукратного увеличения прибыли»? Есть такая поговорка про сишников «нет такого неопределенного поведения, на которое сишник не пойдет ради увеличения производительности на 2%» — сишники серьезно не видят подвоха в этой фразе, отвечая вроде «ну так ты правильно пиши код» и «2% производительности на дороге не валяются», они в упор не видят в таком мировозрении подвоха.

byko3y ★★★★
()
Последнее исправление: byko3y (всего исправлений: 1)
Ответ на: комментарий от firkax

Ещё и «опять»?! Дисциплинарное взыскание, очевидно, и постановка вопроса о профпригодности.

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

byko3y ★★★★
()
Последнее исправление: byko3y (всего исправлений: 1)
Ответ на: комментарий от vasya_pupkin

А оно помогает ? Ядру линукса статистический и динамический анализ помог ? А exim’у ?

Оно помогает от проблем, которые приписывают си. Есть пруфы, что exim проходил регулярные проверки или хотя бы автоматические прогоны при компиляции?

PPP328 ★★★★★
()
Ответ на: комментарий от PPP328

ЗНАЮ СИШНИКОВ

Я вас поздравляю. А я среди нескольких десятков таких не замечал, дальше что?

Это значит, что ты сам сишник.

byko3y ★★★★
()
Ответ на: комментарий от PPP328

А оно помогает ? Ядру линукса статистический и динамический анализ помог ? А exim’у ?

Оно помогает от проблем, которые приписывают си.

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

byko3y ★★★★
()

Может быть, после этого его перестанут в debian пихать как default-mta

Harliff ★★★★★
()
Ответ на: комментарий от posixbit

Чем сабж лучше Postfix?

Во-первых, гибкостью. Это практически такой фреймворк почтовика. Что в конфиге напишешь, так он и будет работать.

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

В-третьих, действительно хорошая документация.

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

ivanov17
()
Ответ на: комментарий от byko3y

что этого не было в фортране

Чего не было в Фортране? В Фортране времён Кобола вобще не было динамической памяти, тогда стандартно создавали два больших массива (REAL и INTEGER) и в них всё хранили. Если не проверять размер входных данных, то одни данные могли перезаписать другие.

А ещё был COMMON-блок, и не все компиляторы отслеживали выход за границу COMMON-блока. А когда появились массивы динамического размера, опять не все компиляторы контролировали выход за границы такого массива... Я переписывал несколько чужих программ, которые собирались и работали по FORTRAN PowerStation 1.x и крошились по памяти под FPS 4.

mky ★★★★★
()
Ответ на: комментарий от byko3y

Невероятное заключение, Холмс. Но как?

PPP328 ★★★★★
()
Ответ на: комментарий от byko3y

Статический анализ сишного кода весьма затруднителен

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

Сколько сишный код не отлаживай — а в нем все равно будут оставаться лютейшие баги с повреждением памяти

Вы либо никогда не писали на си и повторяете как обезьяна либо не умеете пользоваться инструментами.

PPP328 ★★★★★
()
Ответ на: комментарий от maxcom

Толи разработчики exim превратились в тыкву, толи эти CVE не представляют реальной опасности.

учитывая что ZDI деньги платит за баги (им еще и скан паспорта нужно послать), дыры-таки есть и оценены они верно. А вот то, что после «Next contact with ZDI was in May 2023. Right after this contact we created project bug tracker for 3 of the 6 issues. 2 high scored of them are fixed (OOB access)» оно так в дистрибутивы и не попало, какбы намекает на то, кто здесь неправ.

borisych ★★★★★
()
Ответ на: комментарий от ivanov17

Разработчики Exim вообще странные люди. Я как-то им писал, просил сделать вывод логов на stdout, чтобы в контейнере не нужно было кудесничать с симлинками.

Бугагага. Почтарь в контейнере… Вот уж воистину «докер головного мозга». Нет, я видел всякое. Я даже видел маразм, когда в контейнер пихали томкат. Но вот почтарь….

DrRulez ★★★
()
Ответ на: комментарий от ivanov17

Во-первых, гибкостью. Это практически такой фреймворк почтовика. Что в конфиге напишешь, так он и будет работать.

Его формат конфига - это первое, что намекает на хроническую костыльность и забагованность.

В-третьих, действительно хорошая документация.

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

firkax ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.