Εντοπίστηκε μια ευπάθεια στο GDM

Ερευνητής ασφάλειας από το GitHub το έκανε γνωστό πρόσφατα έχετε εντοπίσει μια ευπάθεια (CVE-2020-16125) στο GNOME Display Manager (GDM), το οποίο είναι υπεύθυνο για την εμφάνιση της οθόνης σύνδεσης.

Σε συνδυασμό με μια άλλη ευπάθεια στην υπηρεσία accounts-daemon (accounts-daemon), Το πρόβλημα επιτρέπει στον κώδικα να εκτελεστεί ως root.  Η ευπάθεια σχετίζεται με την εσφαλμένη εκκίνηση του βοηθητικού προγράμματος αρχικής διαμόρφωσης, εάν είναι αδύνατη η πρόσβαση στην υπηρεσία δαίμονα λογαριασμού μέσω DBus.

Σχετικά με την ευπάθεια

Ένας μη προνομιούχος χρήστης μπορεί να προκαλέσει διακοπή λειτουργίας της διαδικασίας λογαριασμών-δαίμονα ή κλείστε το τηλέφωνο, τι θα δημιουργήσει τις προϋποθέσεις για το βοηθητικό πρόγραμμα gnome-initial-setup που θα εκτελείται μέσα από το GDM, μέσω του οποίου ένας νέος χρήστης μπορεί να εγγραφεί ως μέλος της ομάδας sudo, δηλαδή να έχει τη δυνατότητα να εκτελεί προγράμματα ως root.

Κανονικά Το GDM καλεί το gnome-initial-setup για να ορίσει τον πρώτο χρήστη εάν δεν υπάρχουν λογαριασμοί στο σύστημα. Η επαλήθευση της ύπαρξης λογαριασμών γίνεται με επικοινωνία με τους λογαριασμούς-δαίμονα. Εάν η καθορισμένη διαδικασία αποτύχει, το GDM υποθέτει ότι οι λογαριασμοί λείπουν και ξεκινά τη διαδικασία αρχικής διαμόρφωσης.

Ο ερευνητής εντόπισε δύο τρόπους για να διακόψει τη διαδικασία των λογαριασμών δαίμονα: Το πρώτο (CVE-2020-16126) οφείλεται σε εσφαλμένη επαναφορά προνομίων και το δεύτερο (CVE-2020-16127) απέτυχε να επεξεργαστεί ένα αρχείο ".pam_environment".

Επιπλέον, Μια άλλη ευπάθεια βρέθηκε σε λογαριασμούς daemon (CVE-2018-14036) προκαλείται από λανθασμένους ελέγχους διαδρομής αρχείων και επιτρέπει την ανάγνωση του περιεχομένου αυθαίρετων αρχείων στο σύστημα.

Τα τρωτά σημεία στο accounts-daemon προκαλούνται από αλλαγές που έγιναν από προγραμματιστές του Ubuntu και δεν εμφανίζονται στον κύριο κώδικα του accounts-daemon από το έργο FreeDesktop και το πακέτο Debian.

Το ζήτημα CVE-2020-16127 υπάρχει σε μια ενημερωμένη έκδοση κώδικα που προστέθηκε στο Ubuntu που υλοποιεί τη συνάρτηση is_in_pam_environment, η οποία διαβάζει τα περιεχόμενα του αρχείου .pam_environment από τον αρχικό κατάλογο του χρήστη. Εάν βάλετε έναν συμβολικό σύνδεσμο στο /dev/zero αντί για αυτό το αρχείο, η διαδικασία δαίμονα λογαριασμού κολλάει σε άπειρες λειτουργίες ανάγνωσης και σταματά να ανταποκρίνεται σε αιτήματα μέσω DBus.

Είναι ασυνήθιστο μια ευπάθεια σε ένα σύγχρονο λειτουργικό σύστημα να είναι τόσο εύκολη στην εκμετάλλευση. Σε ορισμένες περιπτώσεις, έχω γράψει χιλιάδες γραμμές κώδικα για να εκμεταλλευτώ μια ευπάθεια. 

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

Έτσι, αυτές τις μέρες είναι σχετικά σπάνιο να βρείτε μια ευπάθεια που δεν απαιτεί δεξιότητες κωδικοποίησης για να την εκμεταλλευτείτε. Πιστεύω επίσης ότι η ευπάθεια είναι εύκολα κατανοητή, ακόμα κι αν δεν έχετε προηγούμενη γνώση του τρόπου λειτουργίας του Ubuntu ή εμπειρία στην έρευνα ασφάλειας.

Η ευπάθεια CVE-2020-16126 προκαλείται από άλλη ενημέρωση κώδικα που επαναφέρει τα δικαιώματα του τρέχοντος χρήστη κατά την επεξεργασία ορισμένων κλήσεων DBus (π.χ. org.freedesktop.Accounts.User.SetLanguage).

Η διαδικασία δαίμονα λογαριασμού εκτελείται κανονικά ως root, κάτι που εμποδίζει έναν κανονικό χρήστη να στείλει σήματα.

Αλλά χάρη στο πρόσθετο patch, τα προνόμια της διαδικασίας μπορούν να επαναφερθούν και ο χρήστης μπορεί να τερματίσει αυτή τη διαδικασία στέλνοντας ένα σήμα. Για να εκτελέσετε μια επίθεση, απλώς δημιουργήστε τις συνθήκες για να αφαιρέσετε τα δικαιώματα (RUID) και στείλτε ένα σήμα SIGSEGV ή SIGSTOP στη διαδικασία δαίμονα λογαριασμού.

Ο χρήστης τερματίζει την περίοδο λειτουργίας γραφικών και πηγαίνει στην κονσόλα κειμένου (Ctrl-Alt-F1).
Αφού τελειώσει η γραφική περίοδος, το GDM προσπαθεί να εμφανίσει την οθόνη σύνδεσης, αλλά κολλάει όταν προσπαθεί να λάβει απάντηση από το accounts-daemon.

Τα σήματα SIGSEGV και SIGCONT αποστέλλονται από την κονσόλα στη διαδικασία δαίμονα λογαριασμού, με αποτέλεσμα να κολλάει.

Μπορείτε επίσης να στείλετε σήματα πριν την έξοδο από τη γραφική περίοδο λειτουργίας, αλλά πρέπει να το κάνετε με καθυστέρηση για να έχετε χρόνο να τερματίσετε τη συνεδρία και πριν σταλεί το σήμα, το GDM είχε χρόνο να ξεκινήσει.

Το αίτημα για τον δαίμονα λογαριασμού στο GDM αποτυγχάνει και το GDM καλεί το βοηθητικό πρόγραμμα gnome-initial-setup, στο οποίο αρκεί να δημιουργήσετε έναν νέο λογαριασμό.

Η ευπάθεια έχει διορθωθεί στα GNOME 3.36.2 και 3.38.2. Η εκμετάλλευση της ευπάθειας έχει επιβεβαιωθεί στο Ubuntu και τα παράγωγά του.

πηγή: https://securitylab.github.com


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: AB Internet Networks 2008 SL
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.