Ευπάθεια στο OpenOffice που επιτρέπει την εκτέλεση κώδικα κατά το άνοιγμα ενός αρχείου

Εντοπίστηκε ένα θέμα ευπάθειας (CVE-2021-33035) στη σουίτα γραφείου Apache OpenOffice που επιτρέπει την εκτέλεση κώδικα κατά το άνοιγμα ενός ειδικά σχεδιασμένου αρχείου σε μορφή DBF. Ο ερευνητής που ανακάλυψε το πρόβλημα προειδοποίησε για τη δημιουργία ενός λειτουργικού exploit για την πλατφόρμα των Windows. Η επιδιόρθωση ευπάθειας είναι προς το παρόν διαθέσιμη μόνο με τη μορφή ενημέρωσης κώδικα στο αποθετήριο του έργου, το οποίο συμπεριλήφθηκε στις δοκιμαστικές εκδόσεις του OpenOffice 4.1.11. Δεν υπάρχουν ακόμα ενημερώσεις για τον σταθερό κλάδο.

Το πρόβλημα προκαλείται από το OpenOffice που βασίζεται στις τιμές fieldLength και fieldType στην κεφαλίδα των αρχείων DBF για την εκχώρηση μνήμης, χωρίς να ελέγχει ότι ο πραγματικός τύπος δεδομένων στα πεδία ταιριάζει. Για να πραγματοποιήσετε μια επίθεση, μπορείτε να καθορίσετε έναν τύπο INTEGER στην τιμή fieldType, αλλά να τοποθετήσετε μεγαλύτερα δεδομένα και να καθορίσετε μια τιμή Length πεδίου που δεν αντιστοιχεί στο μέγεθος των δεδομένων με τον τύπο INTEGER, η οποία θα οδηγήσει στην ουρά των δεδομένων από το πεδίο που γράφεται πέρα ​​από το εκχωρημένο buffer. Ως αποτέλεσμα μιας ελεγχόμενης υπερχείλισης buffer, ο ερευνητής μπόρεσε να επαναπροσδιορίσει τον δείκτη επιστροφής από τη συνάρτηση και, χρησιμοποιώντας τεχνικές προγραμματισμού προσανατολισμένους στην επιστροφή (ROP - Return-Oriented Programming), να επιτύχει την εκτέλεση του κώδικά του.

Όταν χρησιμοποιεί την τεχνική ROP, ο εισβολέας δεν προσπαθεί να τοποθετήσει τον κώδικά του στη μνήμη, αλλά λειτουργεί σε κομμάτια εντολών μηχανής που είναι ήδη διαθέσιμα σε φορτωμένες βιβλιοθήκες, που τελειώνουν με μια εντολή επιστροφής ελέγχου (κατά κανόνα, αυτά είναι τα άκρα των συναρτήσεων βιβλιοθήκης) . Το έργο του exploit καταλήγει στη δημιουργία μιας αλυσίδας κλήσεων σε παρόμοια μπλοκ ("gadgets") για να αποκτήσετε την επιθυμητή λειτουργικότητα. Τα gadget που χρησιμοποιήθηκαν στο exploit του OpenOffice ήταν κώδικας από τη βιβλιοθήκη libxml2 που χρησιμοποιήθηκε στο OpenOffice, η οποία, σε αντίθεση με το ίδιο το OpenOffice, είχε μεταγλωττιστεί χωρίς τους μηχανισμούς προστασίας DEP (Data Execution Prevention) και ASLR (Address Space Layout Randomization).

Οι προγραμματιστές του OpenOffice ειδοποιήθηκαν για το ζήτημα στις 4 Μαΐου, μετά την οποία προγραμματίστηκε δημόσια αποκάλυψη της ευπάθειας για τις 30 Αυγούστου. Δεδομένου ότι η ενημέρωση του σταθερού κλάδου δεν ολοκληρώθηκε μέχρι την προγραμματισμένη ημερομηνία, ο ερευνητής ανέβαλε την αποκάλυψη των λεπτομερειών για τις 18 Σεπτεμβρίου, αλλά οι προγραμματιστές του OpenOffice δεν κατάφεραν να δημιουργήσουν την έκδοση 4.1.11 μέχρι αυτή την ημερομηνία. Αξίζει να σημειωθεί ότι κατά την ίδια έρευνα εντοπίστηκε παρόμοια ευπάθεια στον κώδικα υποστήριξης μορφής DBF στο Microsoft Office Access (CVE-2021–38646), οι λεπτομέρειες του οποίου θα γνωστοποιηθούν αργότερα. Δεν βρέθηκαν προβλήματα στο LibreOffice.

Πηγή: opennet.ru

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