Το Ubuntu και ορισμένες άλλες διανομές του Linux υποφέρουν από σοβαρή ευπάθεια κλιμάκωσης προνομίων που θα μπορούσε να επιτρέψει σε έναν τοπικό εισβολέα ή σε ένα κακόβουλο πρόγραμμα να αποκτήσει προνόμια root και πλήρη έλεγχο του στοχευόμενου συστήματος.

Ονομάστηκε “Dirty_Sock” και προσδιορίστηκε ως CVE-2019-7304, η ευπάθεια ανακαλύφθηκε από τον ερευνητή ασφαλείας Chris Moberly, ο οποίος την αποκάλυψε ιδιωτικά στην Canonical, την κατασκευάστρια εταιρεία του Ubuntu, στα τέλη του περασμένου μήνα.

Η ευπάθεια βρίσκεται στο REST API για την υπηρεσία snapd, ένα καθολικό packaging system για το Linux που καθιστά μια εφαρμογή συμβατή για διάφορες διανομές χωρίς να απαιτείται κάποια τροποποίηση.

Κατασκευασμένο από την Canonical, το snapd έρχεται σε προεπιλογή σε όλες τις εκδόσεις του Ubuntu και χρησιμοποιείται επίσης από άλλες διανομές Linux, όπως το Debian, το OpenSUSE, το Arch Linux, το Solus και το Fedora.

Τα πακέτα Snap είναι βασικά εφαρμογές που συμπιέζονται μαζί με τα dependencies τους και περιλαμβάνουν επίσης οδηγίες σχετικά με τον τρόπο εκτέλεσης και αλληλεπίδρασης με άλλο λογισμικό σε διάφορα συστήματα Linux desktop, για συστήματα στο cloud και στο IoT.

Το Snap φιλοξενεί τοπικά έναν web server (UNIX_AF socket) για να προσφέρει μια λίστα με RESTful APIs που βοηθούν την υπηρεσία να εκτελεί διάφορες ενέργειες στο λειτουργικό σύστημα. Αυτά τα REST APIs λειτουργούν με έλεγχο πρόσβασης για τον καθορισμό δικαιωμάτων σε επίπεδο χρήστη για να πραγματοποιήσουν συγκεκριμένες εργασίες. Κάποια από τα πιο ισχυρά API είναι διαθέσιμα μόνο στους root χρήστες, ενώ άλλα μπορούν να προσεγγιστούν από χρήστες με χαμηλότερα προνόμια.

Σύμφωνα με τον Moberly, ένα ελάττωμα στον τρόπο με τον οποίο ο μηχανισμός ελέγχου πρόσβασης ελέγχει το UID που σχετίζεται με οποιοδήποτε αίτημα που γίνεται σε ένα server επιτρέπει στους εισβολείς να αντικαταστήσουν τον αριθμό του UID και να αποκτήσουν πρόσβαση σε οποιαδήποτε λειτουργία του API, συμπεριλαμβανομένων εκείνων που είναι περιορισμένες στον χρήστη root.

Ο Moberly ανέφερε πως η Canonical διόρθωσε την ευπάθεια εφαρμόζωντας πολύ αυστηρότερο έλεγχο στα strings που περνούν στο snapd, καθώς ήταν αυτή η χαλαρότητα που επέτρεψε στον Moberly να ξεγελάσει το snapd και να δώσει root πρόσβαση στον local χρήστη. Από την έκδοση, 2.37.1 το σοβαρό αυτό bug έχει διορθωθεί, οπότε προτείνεται σε όλους όσους τρέχουν κάποιο από τα προαναφερθέντα distros να ελέγξουν την έκδοση που έχουν εγκατεστημένη στο σύστημά τους.