Αποκαλύφθηκε η κρίσιμη ευπάθεια της Exim

Που δημοσιεύθηκε διορθωτική απελευθέρωση Exim 4.92.2 με την εξάλειψη των κρίσιμων τρωτά σημεία (CVE-2019-15846), το οποίο στην προεπιλεγμένη διαμόρφωση μπορεί να οδηγήσει σε απομακρυσμένη εκτέλεση κώδικα από έναν εισβολέα με δικαιώματα root. Το πρόβλημα εμφανίζεται μόνο όταν είναι ενεργοποιημένη η υποστήριξη TLS και γίνεται εκμετάλλευση με τη διαβίβαση ενός ειδικά σχεδιασμένου πιστοποιητικού πελάτη ή τροποποιημένης τιμής στο SNI. Τρωτό αναγνωρισθείς από την Qualys.

πρόβλημα παρόν στον χειριστή για διαφυγή ειδικών χαρακτήρων στη συμβολοσειρά (string_interpret_escape() από τη συμβολοσειρά.c) και προκαλείται από την ερμηνεία του χαρακτήρα '\' στο τέλος της συμβολοσειράς πριν από τον μηδενικό χαρακτήρα ('\0') και τη διαφυγή του. Κατά τη διαφυγή, η ακολουθία '\' και ο ακόλουθος μηδενικός κώδικας τέλους γραμμής αντιμετωπίζονται ως ένας μεμονωμένος χαρακτήρας και ο δείκτης μετατοπίζεται σε δεδομένα εκτός γραμμής, τα οποία αντιμετωπίζονται ως συνέχεια της γραμμής.

Ο κώδικας που καλεί τη string_interpret_escape() εκχωρεί ένα buffer για το drain με βάση το πραγματικό μέγεθος και ο εκτεθειμένος δείκτης καταλήγει σε μια περιοχή εκτός των ορίων του buffer. Κατά συνέπεια, όταν προσπαθείτε να επεξεργαστείτε μια συμβολοσειρά εισόδου, προκύπτει μια κατάσταση κατά την ανάγνωση δεδομένων από μια περιοχή εκτός των ορίων του εκχωρημένου buffer και μια προσπάθεια εγγραφής μιας συμβολοσειράς χωρίς διαφυγή μπορεί να οδηγήσει σε εγγραφή πέρα ​​από τα όρια του buffer.

Στην προεπιλεγμένη διαμόρφωση, η ευπάθεια μπορεί να αξιοποιηθεί με την αποστολή ειδικά σχεδιασμένων δεδομένων στο SNI κατά τη δημιουργία μιας ασφαλούς σύνδεσης με τον διακομιστή. Το ζήτημα μπορεί επίσης να εκμεταλλευτεί τροποποιώντας τις τιμές peerdn σε διαμορφώσεις που έχουν ρυθμιστεί για έλεγχο ταυτότητας πιστοποιητικού πελάτη ή κατά την εισαγωγή πιστοποιητικών. Η επίθεση μέσω SNI και peerdn είναι δυνατή από την απελευθέρωση Exim 4.80, στην οποία χρησιμοποιήθηκε η συνάρτηση string_unprinting() για την αποτύπωση των περιεχομένων peerdn και SNI.

Ένα πρωτότυπο exploit έχει προετοιμαστεί για επίθεση μέσω SNI, που τρέχει σε αρχιτεκτονικές i386 και amd64 σε συστήματα Linux με Glibc. Το exploit χρησιμοποιεί επικάλυψη δεδομένων στην περιοχή heap, με αποτέλεσμα την αντικατάσταση της μνήμης στην οποία είναι αποθηκευμένο το όνομα του αρχείου καταγραφής. Το όνομα αρχείου αντικαθίσταται από "/../../../../../../../../etc/passwd". Στη συνέχεια, η μεταβλητή με τη διεύθυνση του αποστολέα αντικαθίσταται, η οποία αποθηκεύεται πρώτα στο αρχείο καταγραφής, το οποίο σας επιτρέπει να προσθέσετε έναν νέο χρήστη στο σύστημα.

Ενημερώσεις πακέτων με διορθώσεις ευπάθειας που κυκλοφορούν από διανομές Debian, Ubuntu, Μαλακό καπέλλο, SUSE/openSUSE и FreeBSD. Πρόβλημα RHEL και CentOS ανεπίδεκτος, καθώς το Exim δεν περιλαμβάνεται στο κανονικό αποθετήριο πακέτων τους (σε ΕΠΕΛ обновление ήδη σχηματίστηκε, αλλά για τώρα δεν τοποθετείται σε δημόσιο αποθετήριο). Στον κώδικα Exim το πρόβλημα επιδιορθώνεται με μία γραμμή κηλίδα, το οποίο απενεργοποιεί το εφέ διαφυγής της ανάστροφης κάθετου εάν βρίσκεται στο τέλος της γραμμής.

Ως λύση για τον αποκλεισμό της ευπάθειας, μπορείτε να απενεργοποιήσετε την υποστήριξη TLS ή να προσθέσετε
Ενότητα ACL "acl_smtp_mail":

συνθήκη άρνησης = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
συνθήκη άρνησης = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο