Exim з GnuTLS: RCE через use-after-free CVE-2026-45185

Photo of author

CyberSecureFox Editorial Team

Проєкт Exim випустив термінове оновлення безпеки, яке усуває вразливість CVE-2026-45185 класу use-after-free, що призводить до пошкодження динамічної пам’яті (heap) і потенційно дає змогу виконати довільний код на поштовому сервері. Вразливість зачіпає всі версії Exim з 4.97 по 4.99.2 включно, зібрані з підтримкою GnuTLS (параметр збирання USE_GNUTLS=yes). Для експлуатації зловмиснику достатньо встановити TLS-з’єднання й використати розширення SMTP CHUNKING (BDAT) — спеціальна конфігурація сервера не потрібна. Виправлення доступне у версії 4.99.3, альтернативних заходів пом’якшення не існує, і адміністраторам потрібно оновитися негайно.

Механізм вразливості

Згідно з офіційним бюлетенем безпеки Exim, вразливість виникає під час обробки тіла повідомлення, що передається через команду BDAT, коли клієнт надсилає TLS-сповіщення close_notify до завершення передавання даних, а потім посилає фінальний байт відкритим текстом у тому ж TCP-з’єднанні. Така послідовність призводить до того, що Exim записує дані в буфер пам’яті, уже звільнений під час завершення TLS-сесії, що спричиняє пошкодження динамічної пам’яті (heap corruption).

За даними дослідника Федеріко Кіршбаума з компанії XBOW, який виявив вразливість, під час завершення TLS-сесії Exim звільняє буфер передавання, однак вкладений обробник приймання BDAT продовжує обробляти вхідні байти й викликає функцію ungetc(), яка записує один символ (\n) у вже звільнену ділянку пам’яті. Цим однобайтовим записом зачіпаються метадані алокатора пам’яті, порушуючи його внутрішню структуру, що, ймовірно, дає зловмиснику додаткові примітиви для подальшої експлуатації.

Уражені версії та умови експлуатації

  • Уражені версії: Exim 4.97 — 4.99.2 включно
  • Умова: збірка з параметром USE_GNUTLS=yes
  • Не уражені: збірки, що використовують OpenSSL або інші TLS-бібліотеки
  • Вимоги до зловмисника: можливість встановити TLS-з’єднання та використовувати розширення CHUNKING (BDAT)
  • Виправлена версія: Exim 4.99.3
  • Статус експлуатації: на момент публікації немає даних про активну експлуатацію в реальних атаках; вразливість не внесена до каталогу CISA KEV

Чому ця вразливість особливо небезпечна

Exim — один із найпоширеніших агентів передавання пошти (MTA) на Unix-подібних системах. Поштові сервери за своєю природою доступні з інтернету та приймають вхідні з’єднання від довільних клієнтів, що робить їх привабливою ціллю. Поріг для експлуатації CVE-2026-45185 вкрай низький: зловмиснику не потрібна автентифікація, не вимагається нестандартна конфігурація сервера — достатньо стандартного TLS-з’єднання з підтримкою BDAT, яка в сучасних версіях Exim увімкнена за замовчуванням.

Окремої уваги заслуговує те, що вразливість прив’язана до конкретної TLS-бібліотеки. Багато дистрибутивів Linux надають пакети Exim, зібрані саме з GnuTLS (наприклад, Debian та його похідні традиційно використовують GnuTLS). Адміністраторам варто перевірити, з якою TLS-бібліотекою зібрано їхній екземпляр Exim, виконавши команду exim -bV і звернувши увагу на рядок, що вказує TLS-бібліотеку.

Історичний контекст

Це не перший випадок виявлення критичних вразливостей use-after-free в Exim, пов’язаних з обробкою BDAT. У 2017 році була виправлена вразливість CVE-2017-16943 (CVSS 9.8) в SMTP-демоні, яка, за даними дослідників, дозволяла неавтентифікованим зловмисникам досягти віддаленого виконання коду через спеціально сформовані команди BDAT. Повторна поява вразливості того самого класу в тому самому компоненті через дев’ять років указує на системну складність безпечної обробки станів під час взаємодії TLS і потокового приймання даних у кодовій базі Exim.

Рекомендації

  1. Негайно оновіть Exim до версії 4.99.3. Згідно з бюлетенем, обхідних заходів або тимчасових виправлень конфігурації, що усували б вразливість, не існує.
  2. Визначте, яку TLS-бібліотеку використано: виконайте exim -bV | grep TLS. Якщо у виведенні вказано GnuTLS — ваш сервер уразливий.
  3. Проведіть аудит доступності SMTP-сервера з інтернету. Обмежте доступ до портів 25/465/587 на рівні міжмережевого екрана, якщо це можливо без порушення роботи поштової інфраструктури.
  4. Перевірте журнали щодо аномальних TLS-сесій із передчасним завершенням у поєднанні з командами BDAT — це може свідчити про спроби експлуатації.
  5. Розгляньте перезбирання з OpenSSL як тимчасовий захід, якщо оперативне оновлення до 4.99.3 неможливе — збірки з OpenSSL не піддаються цій вразливості.

Виправлення у версії 4.99.3 забезпечує коректне скидання стеку обробки вводу під час отримання TLS-сповіщення close_notify у процесі активної передачі BDAT, запобігаючи використанню застарілих указівників. З огляду на відсутність альтернативних засобів захисту, низький поріг експлуатації та публічну доступність технічних деталей вразливості, оновлення Exim до версії 4.99.3 слід розглядати як завдання найвищого пріоритету для всіх організацій, які використовують цей MTA з GnuTLS.


CyberSecureFox Editorial Team

Редакція CyberSecureFox висвітлює новини кібербезпеки, уразливості, malware-кампанії, ransomware-активність, AI security, cloud security та security advisories вендорів. Матеріали готуються на основі official advisories, даних CVE/NVD, сповіщень CISA, публікацій вендорів і відкритих звітів дослідників. Статті перевіряються перед публікацією та оновлюються за появи нових даних.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.