Krytyczna luka Exim w BDAT zagraża serwerom z GnuTLS i może prowadzić do zdalnego wykonania kodu - Security Bez Tabu

Krytyczna luka Exim w BDAT zagraża serwerom z GnuTLS i może prowadzić do zdalnego wykonania kodu

Cybersecurity news

Wprowadzenie do problemu / definicja

W maju 2026 roku ujawniono krytyczną podatność w serwerze pocztowym Exim, związaną z przetwarzaniem danych SMTP przy użyciu rozszerzenia CHUNKING oraz komendy BDAT. Problem dotyczy wybranych kompilacji wykorzystujących bibliotekę GnuTLS do obsługi TLS i może skutkować uszkodzeniem pamięci, awarią procesu, a w najpoważniejszym scenariuszu także zdalnym wykonaniem kodu.

To istotne zagrożenie dla operatorów infrastruktury pocztowej, ponieważ Exim pozostaje jednym z najczęściej wdrażanych agentów transferu poczty w systemach uniksowych i linuksowych. Każda luka umożliwiająca ingerencję w pamięć procesu sieciowego ma bezpośrednie znaczenie dla bezpieczeństwa i ciągłości działania usług.

W skrócie

Podatność obejmuje wersje Exim od 4.97 do 4.99.2 włącznie, jeśli oprogramowanie zostało skompilowane z opcją USE_GNUTLS=yes. Mechanizm błędu opiera się na specyficznej sekwencji działań w trakcie transmisji BDAT: przerwaniu sesji TLS w odpowiednim momencie i dosłaniu pojedynczego bajtu jawnym tekstem przez to samo połączenie TCP.

  • Dotknięte wersje: Exim 4.97–4.99.2
  • Warunek wystąpienia: kompilacja z GnuTLS
  • Skutek: use-after-free i uszkodzenie sterty
  • Potencjalne efekty: awaria usługi lub zdalne wykonanie kodu
  • Poprawka: Exim 4.99.3

Kontekst / historia

Exim od lat stanowi ważny element infrastruktury pocztowej dostawców hostingu, firm i operatorów usług internetowych. Z tego powodu każda nowa podatność w tym oprogramowaniu przyciąga uwagę administratorów, zespołów bezpieczeństwa i środowiska badawczego.

Nowo opisana luka wpisuje się w dłuższą historię błędów pamięci i problemów w obsłudze SMTP w Exim. Tym razem źródłem problemu nie jest pojedynczy błąd parsera, ale interakcja między logiką obsługi BDAT a zamykaniem sesji TLS. Zgłoszenie zostało przekazane maintainerom na początku maja 2026 roku, a poprawkę opublikowano 12 maja 2026 roku w ramach skoordynowanego ujawnienia.

Analiza techniczna

Technicznie podatność ma charakter use-after-free. W podatnych konfiguracjach Exim zwalnia bufor związany z transmisją TLS po odebraniu komunikatu close_notify. Jednocześnie zagnieżdżona logika odpowiedzialna za odbiór danych BDAT może nadal przetwarzać bajty przychodzące z tego samego połączenia, mimo że pamięć wykorzystywana wcześniej przez warstwę TLS została już zwolniona.

Atakujący może rozpocząć połączenie TLS, skorzystać z rozszerzenia CHUNKING, uruchomić transfer wiadomości przez BDAT, a następnie zamknąć warstwę TLS przed zakończeniem transmisji danych. Po tym kroku możliwe jest dosłanie jeszcze pojedynczego bajtu jawnym tekstem. Ta nietypowa sekwencja prowadzi do operacji na nieaktualnym wskaźniku i naruszenia integralności sterty.

Choć z pozoru chodzi o zapis pojedynczego znaku do wcześniej zwolnionego obszaru pamięci, w praktyce nawet tak ograniczona modyfikacja może być niebezpieczna. W sprzyjających warunkach jednobajtowe uszkodzenie sterty może zostać wykorzystane do budowy dalszych prymitywów pamięciowych, destabilizacji procesu lub prób przejęcia kontroli nad jego wykonaniem.

Warto podkreślić, że podatność nie dotyczy wszystkich wdrożeń Exim. Zagrożone są wyłącznie kompilacje wykorzystujące GnuTLS. Instalacje korzystające z OpenSSL lub innych bibliotek TLS nie są objęte tym konkretnym błędem. Wersja 4.99.3 eliminuje problem poprzez resetowanie stosu przetwarzania wejścia po odebraniu sygnału zamknięcia TLS w trakcie aktywnego transferu BDAT.

Konsekwencje / ryzyko

Najbardziej bezpośrednim skutkiem podatności jest możliwość wywołania awarii procesu Exim, co może przełożyć się na częściową lub pełną niedostępność usługi pocztowej. Jednak rzeczywiste ryzyko jest szersze, ponieważ błąd dotyczy pamięci i może potencjalnie otworzyć drogę do zdalnego wykonania kodu w kontekście procesu serwera pocztowego.

Z perspektywy obrońców szczególnie istotne jest to, że Exim jest usługą wystawioną do sieci, a scenariusz ataku nie musi wymagać uwierzytelnienia, jeśli serwer akceptuje odpowiednie połączenia SMTP z TLS i obsługuje CHUNKING. To oznacza, że podatność może dotyczyć publicznie dostępnych bram i relayów obsługujących kluczowe procesy biznesowe.

  • wysoka ekspozycja w środowiskach publicznych,
  • ryzyko niedostępności usług pocztowych,
  • możliwość wykorzystania błędu do dalszej eskalacji,
  • szczególne zagrożenie dla hostingu współdzielonego i środowisk wielodomenowych.

Rekomendacje

Najważniejszym działaniem naprawczym jest natychmiastowa aktualizacja Exim do wersji 4.99.3 lub nowszej. Producent wskazał, że nie istnieje skuteczna metoda ograniczenia ryzyka poza wdrożeniem poprawki, dlatego odkładanie aktualizacji zwiększa ekspozycję na atak.

Organizacje powinny jak najszybciej przeprowadzić inwentaryzację wszystkich instancji Exim, w tym serwerów relay, bram SMTP i środowisk hostingowych. Kluczowe jest potwierdzenie nie tylko numeru wersji, ale także sposobu kompilacji, zwłaszcza obecności USE_GNUTLS=yes.

  • zidentyfikować wszystkie instancje Exim w środowisku,
  • zweryfikować wersję i sposób kompilacji,
  • sprawdzić, czy usługa udostępnia CHUNKING,
  • wdrożyć pilny proces patch management,
  • monitorować logi pod kątem resetów TLS i awarii procesu,
  • rozszerzyć detekcję w IDS, IPS i SIEM o anomalie związane z BDAT,
  • ograniczyć ekspozycję usługi tam, gdzie jest to operacyjnie możliwe.

W środowiskach o podwyższonej krytyczności warto dodatkowo przeanalizować crash dumpy, sprawdzić integralność hostów i ocenić, czy wcześniej nie wystąpiły symptomy prób exploitacji. To szczególnie ważne w organizacjach, które obsługują dużą liczbę domen lub klientów na wspólnej infrastrukturze.

Podsumowanie

Krytyczna podatność Exim związana z obsługą BDAT i GnuTLS to kolejny przykład tego, jak pozornie niszowa sekwencja zdarzeń w protokole może prowadzić do poważnego błędu pamięci. Połączenie zdalnej osiągalności, braku konieczności uwierzytelnienia i możliwości uszkodzenia sterty sprawia, że zagrożenie należy traktować priorytetowo.

Administratorzy korzystający z Exim w wersjach od 4.97 do 4.99.2 powinni niezwłocznie sprawdzić, czy ich instalacje wykorzystują GnuTLS, a następnie wdrożyć wersję 4.99.3 lub nowszą. W tym przypadku szybka aktualizacja pozostaje jedyną realną metodą ograniczenia ryzyka.

Źródła

  1. https://thehackernews.com/2026/05/new-exim-bdat-vulnerability-exposes.html
  2. https://www.exim.org/static/doc/security/EXIM-Security-2026-05-01.1/EXIM-Security-2026-05-01.1.txt
  3. https://www.exim.org/