Абнаўленне Exim 4.94.2 з ухіленнем 10 аддалена эксплуатаваных уразлівасцяў

Апублікаваны выпуск паштовага сервера Exim 4.94.2 з устараненнем 21 уразлівасці (CVE-2020-28007-CVE-2020-28026, CVE-2021-27216), якія выяўлены кампаніяй Qualys і прадстаўлены пад кодавым імем 21Nails. 10 праблем могуць быць эксплуатаваны выдалена (у тым ліку для выканання кода з правамі root), праз маніпуляцыі з SMTP-камандамі пры ўзаемадзеянні з серверам.

Праблемам схільныя ўсе версіі Exim, гісторыя якіх адсочваецца ў Git з 2004 гады. Для 4 лакальных уразлівасцяў і 3 выдаленых праблем падрыхтаваны працоўныя прататыпы эксплоітаў. Эксплоіты для лакальных уразлівасцяў (CVE-2020-28007, CVE-2020-28008, CVE-2020-28015, CVE-2020-28012) дазваляюць падняць свае прывілеі да карыстача root. Дзве выдаленыя праблемы (CVE-2020-28020, CVE-2020-28018) дазваляюць без аўтэнтыфікацыі выканаць код з правамі карыстача exim (затым можна атрымаць доступ root, эксплуатаваўшы адну з лакальных уразлівасцяў).

Уразлівасць CVE-2020-28021 дазваляе адразу выдалена выканаць код з правамі root, але патрабуе аўтэнтыфікаванага доступу (карыстальнік павінен усталяваць аўтэнтыфікаваны сеанс, пасля чаго можа эксплуатаваць уразлівасць праз маніпуляцыі з параметрам AUTH у камандзе MAIL FROM). Праблема выклікана тым, што атакавалы можа дамагчыся падстаноўкі радка ў загаловак spool-файла з-за запісу значэння authenticated_sender без належнага экранавання спецзнакаў (напрыклад, перадаўшы каманду "MAIL FROM:<> AUTH=Raven+0AReyes").

Дадаткова адзначаецца, што яшчэ адна выдаленая ўразлівасць CVE-2020-28017 прыдатная для эксплуатацыі для выканання кода з правамі карыстача "exim" без аўтэнтыфікацыі, але патрабуе наяўнасці больш за 25 ГБ памяці. Для астатніх 13 уразлівасцей патэнцыйна таксама могуць быць падрыхтаваны эксплоіты, але работа ў гэтым напрамку пакуль не праводзілася.

Распрацоўнікі Exim былі апавешчаныя аб праблемах яшчэ ў кастрычніку мінулага гады і выдаткавалі больш 6 месяцаў на распрацоўку выпраўленняў. Усім адміністратарам рэкамендавана тэрмінова абнавіць Exim на сваіх паштовых серверах да версіі 4.94.2. Усе версіі Exim да выпуску 4.94.2 абвешчаныя састарэлымі (obsolete). Публікацыя новай версіі была скаардынаваная з дыстрыбутывамі, якія адначасова апублікавалі абнаўленні пакетаў: Ubuntu, Arch Linux, FreeBSD, Debian, SUSE і Fedora. RHEL і CentOS праблеме не схільныя, бо Exim не ўваходзіць у іх штатны рэпазітар пакетаў (у EPEL абнаўленне пакуль адсутнічае).

Выдаленыя ўразлівасці:

  • CVE-2020-28017: Цалкам перапаўненне ў функцыі receive_add_recipient();
  • CVE-2020-28020: Цалкам перапаўненне ў функцыі receive_msg();
  • CVE-2020-28023: Чытанне з вобласці па-за вылучаным буферам у функцыі smtp_setup_msg();
  • CVE-2020-28021: Падстаноўка новага радка ў загаловак спул-файла;
  • CVE-2020-28022: Запіс і чытанне ў вобласці па-за вылучаным буферам у функцыі extract_option();
  • CVE-2020-28026: Усячэнне і падстаноўка радка ў функцыі spool_read_header();
  • CVE-2020-28019: Збой пры скідзе паказальніка на функцыю пасля ўзнікнення памылкі BDAT;
  • CVE-2020-28024: Перапаўненні праз ніжнюю мяжу буфера ў функцыі smtp_ungetc();
  • CVE-2020-28018: Зварот да буфера пасля яго вызвалення (use-after-free) у tls-openssl.c
  • CVE-2020-28025: Чытанне з вобласці па-за вылучаным буферам у функцыі pdkim_finish_bodyhash().

Лакальныя ўразлівасці:

  • CVE-2020-28007: Атака праз сімвалічную спасылку ў каталогу з логам Exim;
  • CVE-2020-28008: Напады на каталог са спулам;
  • CVE-2020-28014: Стварэнне адвольнага файла;
  • CVE-2021-27216: Выдаленне адвольнага файла;
  • CVE-2020-28011: Перапаўненне буфера ў функцыі queue_run();
  • CVE-2020-28010: Запіс за мяжу буфера ў функцыі main();
  • CVE-2020-28013: Перапаўненне буфера ў функцыі parse_fix_phrase();
  • CVE-2020-28016: Запіс за мяжу буфера ў функцыі parse_fix_phrase();
  • CVE-2020-28015: Падстаноўка новага радка ў загаловак спул-файла;
  • CVE-2020-28012: Адсутнасць сцяга close-on-exec для прывілеяванага неназванага канала;
  • CVE-2020-28009: Цалкам перапаўненне ў функцыі get_stdinput().



Крыніца: opennet.ru

Дадаць каментар