πρόβλημα
Ο κώδικας που καλεί τη string_interpret_escape() εκχωρεί ένα buffer για το drain με βάση το πραγματικό μέγεθος και ο εκτεθειμένος δείκτης καταλήγει σε μια περιοχή εκτός των ορίων του buffer. Κατά συνέπεια, όταν προσπαθείτε να επεξεργαστείτε μια συμβολοσειρά εισόδου, προκύπτει μια κατάσταση κατά την ανάγνωση δεδομένων από μια περιοχή εκτός των ορίων του εκχωρημένου buffer και μια προσπάθεια εγγραφής μιας συμβολοσειράς χωρίς διαφυγή μπορεί να οδηγήσει σε εγγραφή πέρα από τα όρια του buffer.
Στην προεπιλεγμένη διαμόρφωση, η ευπάθεια μπορεί να αξιοποιηθεί με την αποστολή ειδικά σχεδιασμένων δεδομένων στο SNI κατά τη δημιουργία μιας ασφαλούς σύνδεσης με τον διακομιστή. Το ζήτημα μπορεί επίσης να εκμεταλλευτεί τροποποιώντας τις τιμές peerdn σε διαμορφώσεις που έχουν ρυθμιστεί για έλεγχο ταυτότητας πιστοποιητικού πελάτη ή κατά την εισαγωγή πιστοποιητικών. Η επίθεση μέσω SNI και peerdn είναι δυνατή από την απελευθέρωση
Ένα πρωτότυπο exploit έχει προετοιμαστεί για επίθεση μέσω SNI, που τρέχει σε αρχιτεκτονικές i386 και amd64 σε συστήματα Linux με Glibc. Το exploit χρησιμοποιεί επικάλυψη δεδομένων στην περιοχή heap, με αποτέλεσμα την αντικατάσταση της μνήμης στην οποία είναι αποθηκευμένο το όνομα του αρχείου καταγραφής. Το όνομα αρχείου αντικαθίσταται από "/../../../../../../../../etc/passwd". Στη συνέχεια, η μεταβλητή με τη διεύθυνση του αποστολέα αντικαθίσταται, η οποία αποθηκεύεται πρώτα στο αρχείο καταγραφής, το οποίο σας επιτρέπει να προσθέσετε έναν νέο χρήστη στο σύστημα.
Ενημερώσεις πακέτων με διορθώσεις ευπάθειας που κυκλοφορούν από διανομές
Ως λύση για τον αποκλεισμό της ευπάθειας, μπορείτε να απενεργοποιήσετε την υποστήριξη TLS ή να προσθέσετε
Ενότητα ACL "acl_smtp_mail":
συνθήκη άρνησης = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
συνθήκη άρνησης = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}
Πηγή: opennet.ru