Μια νέα σοβαρή ευπάθεια ασφαλείας, με την κωδική ονομασία «Dead.Letter» (CVE-2026-45185), εντοπίστηκε στον Mail Transfer Agent (MTA) Exim.
Το πρόβλημα αφορά τον τρόπο με τον οποίο το Exim διαχειρίζεται τη μεταφορά δεδομένων μέσω της εντολής BDAT, όταν χρησιμοποιείται η βιβλιοθήκη GnuTLS για την κρυπτογράφηση της σύνδεσης. Η ευπάθεια επιτρέπει τη διαφθορά της μνήμης (memory corruption), γεγονός που μπορεί να οδηγήσει σε απομακρυσμένη εκτέλεση κώδικα από επιτιθέμενους.
Πώς λειτουργεί η ευπάθεια Use-After-Free
Το κενό ασφαλείας περιγράφεται ως σφάλμα τύπου use-after-free. Η ευπάθεια ενεργοποιείται όταν ένας πελάτης (client) στέλνει μια ειδοποίηση τερματισμού TLS (close_notify) πριν ολοκληρωθεί η μεταφορά του σώματος του μηνύματος και στη συνέχεια στέλνει ένα τελικό byte σε απλό κείμενο στην ίδια σύνδεση.
Κατά τον τερματισμό της συνεδρίας TLS, το Exim απελευθερώνει (frees) την προσωρινή μνήμη μεταφοράς. Ωστόσο, ένας εσωτερικός μηχανισμός επεξεργασίας των δεδομένων BDAT παραμένει ενεργός και προσπαθεί να γράψει έναν χαρακτήρα (\n) σε αυτή την ήδη αποδεσμευμένη περιοχή μνήμης.
Αυτή η εγγραφή καταστρέφει τα μεταδεδομένα του συστήματος διαχείρισης μνήμης του Ex επηρεάζοντας τη δομή του, επιτρέποντας στον επιτιθέμενο να αποκτήσει περαιτέρω έλεγχο στο σύστημα.
Ποιες εκδόσεις επηρεάζονται
Η ευπάθεια επηρεάζει όλες τις εκδόσεις του Exim από την 4.97 έως και την 4.99.2, υπό συγκεκριμένες προϋποθέσεις:
- Η εγκατάσταση πρέπει να έχει γίνει με τη ρύθμιση USE_GNUTLS=yes.
- Συστήματα που χρησιμοποιούν άλλες βιβλιοθήκες, όπως η OpenSSL, δεν επηρεάζονται από το συγκεκριμένο σφάλμα.
Σύμφωνα με τους ερευνητές της XBOW που ανακάλυψαν το σφάλμα, η ευπάθεια είναι ιδιαίτερα επικίνδυνη καθώς δεν απαιτεί ειδικές ρυθμίσεις στον διακομιστή για να ενεργοποιηθεί. Ο επιτιθέμενος χρειάζεται απλώς να μπορεί να δημιουργήσει μια σύνδεση TLS και να χρησιμοποιήσει την επέκταση CHUNKING (BDAT) του πρωτοκόλλου SMTP.
Αντιμετώπιση και αναβαθμίσεις
Το πρόβλημα διορθώθηκε στην έκδοση 4.99.3. Η διόρθωση διασφαλίζει ότι η στοίβα επεξεργασίας δεδομένων μηδενίζεται πλήρως όταν λαμβάνεται ειδοποίηση τερματισμού TLS κατά τη διάρκεια μιας ενεργής μεταφοράς BDAT, εμποδίζοντας τη χρήση μη έγκυρων δεικτών μνήμης (stale pointers).
Συστήνεται σε όλους τους διαχειριστές συστημάτων που χρησιμοποιούν Exim με GnuTLS να προχωρήσουν σε άμεση αναβάθμιση, καθώς δεν υπάρχουν εναλλακτικοί τρόποι περιορισμού (mitigations) του κινδύνου πέρα από την εγκατάσταση της νέας έκδοσης. Αυτή δεν είναι η πρώτη φορά που το Exim αντιμετωπίζει προβλήματα με τη λειτουργία BDAT, καθώς παρόμοια κρίσιμα σφάλματα είχαν εντοπιστεί και διορθωθεί το 2017.