Ανακαλύφθηκε μια σοβαρή ευπάθεια υπερχείλισης του buffer σε παγκόσμιο επίπεδο στην έκδοση 1.3.1.2 του βοηθητικού προγράμματος zlib untgz. Επιτρέποντας στους εισβολείς να καταστρέψουν τη μνήμη και ενδεχομένως να εκτελέσουν κακόβουλο κώδικα μέσω ειδικά διαμορφωμένης εισαγωγής στη γραμμή εντολών.
Το ελάττωμα ασφαλείας βρίσκεται στη συνάρτηση TGZfname() του βοηθητικού προγράμματος untgz, όπου μια κλήση χωρίς περιορισμούς strcpy() επεξεργάζεται ονόματα αρχείων που παρέχονται από τον χρήστη χωρίς καμία επικύρωση μήκους.
Η ευπάθεια παρουσιάζεται όταν το βοηθητικό πρόγραμμα αντιγράφει την ελεγχόμενη από τον εισβολέα είσοδο από τη γραμμή εντολών σε μια σταθερή καθολική προσωρινή μνήμη σταθερού μεγέθους μόνο 1.024 byte.
Τεχνικές λεπτομέρειες
Η βασική αιτία προέρχεται από τον κακό χειρισμό εισόδου: το όνομα του αρχείου προέρχεται απευθείας από το argv[] παραμέτρους και αντιγράφηκε σε έναν καθολικό στατικό πίνακα χωρίς έλεγχο ορίων.
Αυτή η υπερχείλιση συμβαίνει αμέσως μετά την εισαγωγή της συνάρτησης, πριν από οποιαδήποτε ανάλυση ή επικύρωση αρχείου. Κάνοντας την ευπάθεια ασήμαντα εκμεταλλεύσιμη μόνο μέσω ορισμάτων γραμμής εντολών.
| Ιδιότης | Καθέκαστα |
|---|---|
| Αναγνωριστικό CVE | Δεν έχει ανατεθεί ακόμη |
| Λογισμικό που επηρεάζεται | βοηθητικό πρόγραμμα zlib untgz |
| Έκδοση που επηρεάζεται | v1.3.1.2 |
| Τύπος ευπάθειας | Παγκόσμια υπερχείλιση buffer |
| CWE | CWE-120 (Αντιγραφή buffer χωρίς έλεγχο του μεγέθους εισόδου) |
| Διάνυσμα επίθεσης | Είσοδος στη γραμμή εντολών |
| Σύγκρουση | Άρνηση υπηρεσίας, Καταστροφή μνήμης, Πιθανή εκτέλεση κώδικα |
Ερευνητές ασφαλείας απέδειξαν ότι η παροχή ενός ονόματος αρχείου που υπερβαίνει τα 1.024 byte ενεργοποιεί μια εγγραφή εκτός ορίων μετά το τέλος του buffer, οδηγώντας σε καταστροφή της μνήμης.
Οι πιθανές επιπτώσεις περιλαμβάνουν σφάλματα άρνησης υπηρεσίας, καταστροφή γειτονικών αντικειμένων παγκόσμιας μνήμης και απροσδιόριστη συμπεριφορά.
Πιο κρίσιμο, ανάλογα με τις ρυθμίσεις του μεταγλωττιστή, την αρχιτεκτονική του συστήματος, τις σημαίες κατασκευής και τη διάταξη μνήμης, οι εισβολείς μπορεί να είναι σε θέση να εκτελέσουν κώδικα.
Ερευνητές με επιτυχία πυροδοτήθηκε την ευπάθεια που χρησιμοποιεί το AddressSanitizer (ASAN) με την επίκληση του untgz με ένα όρισμα ονόματος αρχείου 4.096 byte.
Η έξοδος ASAN επιβεβαίωσε μια παγκόσμια υπερχείλιση buffer που προκλήθηκε από εγγραφή 2.001 byte στη διεύθυνση ευάλωτης μνήμης.
Επειδή η υπερχείλιση επηρεάζει την καθολική μνήμη και όχι τη μνήμη στοίβας, η καταστροφή παραμένει πέρα από το εύρος της λειτουργίας και μπορεί να επηρεάσει την επακόλουθη συμπεριφορά του προγράμματος.
Η ευπάθεια δεν απαιτεί ειδικά προνόμια και έχει χαμηλή πολυπλοκότητα επίθεσης, καθιστώντας την ιδιαίτερα επικίνδυνη για συστήματα που χρησιμοποιούν το επηρεαζόμενο βοηθητικό πρόγραμμα zlib untgz.


