Πέντε ευπάθειες τοπικής κλιμάκωσης προνομίων (LPE) ανακαλύφθηκαν στο βοηθητικό πρόγραμμα needrestart που χρησιμοποιείται από το Ubuntu Linux, το οποίο παρουσιάστηκε πριν από 10 χρόνια στην έκδοση 21.04.
Τα ελαττώματα ήταν ανακαλύφθηκε από τον Qualys και παρακολουθούνται ως CVE-2024-48990, CVE-2024-48991, CVE-2024-48992, CVE-2024-10224 και CVE-2024-11003. Παρουσιάστηκαν στην έκδοση needrestart 0.8, που κυκλοφόρησε τον Απρίλιο του 2014 και διορθώθηκαν μόλις χθες, στην έκδοση 3.8.
Needrestart είναι ένα βοηθητικό πρόγραμμα που χρησιμοποιείται συνήθως στο Linux, συμπεριλαμβανομένου του διακομιστή Ubuntu, για τον εντοπισμό υπηρεσιών που απαιτούν επανεκκίνηση μετά από ενημερώσεις πακέτων, διασφαλίζοντας ότι αυτές οι υπηρεσίες εκτελούν τις πιο ενημερωμένες εκδόσεις κοινόχρηστων βιβλιοθηκών.
Περίληψη ελαττωμάτων LPE
Τα πέντε ελαττώματα που ανακάλυψε η Qualys επιτρέπουν στους εισβολείς με τοπική πρόσβαση σε ένα ευάλωτο σύστημα Linux να κλιμακώσουν το προνόμιό τους για root χωρίς αλληλεπίδραση με τον χρήστη.
Πλήρεις πληροφορίες σχετικά με τα ελαττώματα διατέθηκαν στο α ξεχωριστό αρχείο κειμένουαλλά μια περίληψη μπορείτε να βρείτε παρακάτω:
- CVE-2024-48990: Το Needrestart εκτελεί τον διερμηνέα Python με μια μεταβλητή περιβάλλοντος PYTHONPATH που εξάγεται από διεργασίες που εκτελούνται. Εάν ένας τοπικός εισβολέας ελέγχει αυτήν τη μεταβλητή, μπορεί να εκτελέσει αυθαίρετο κώδικα ως root κατά την προετοιμασία της Python, εγκαθιστώντας μια κακόβουλη κοινόχρηστη βιβλιοθήκη.
- CVE-2024-48992: Ο διερμηνέας Ruby που χρησιμοποιείται από το needrestart είναι ευάλωτος κατά την επεξεργασία μιας μεταβλητής περιβάλλοντος RUBYLIB που ελέγχεται από τον εισβολέα. Αυτό επιτρέπει στους τοπικούς εισβολείς να εκτελούν αυθαίρετο κώδικα Ruby ως root, εισάγοντας κακόβουλες βιβλιοθήκες στη διαδικασία.
- CVE-2024-48991: Μια συνθήκη κούρσας στο needrestart επιτρέπει σε έναν τοπικό εισβολέα να αντικαταστήσει το δυαδικό διερμηνέα Python που επικυρώνεται με ένα κακόβουλο εκτελέσιμο αρχείο. Με το να χρονομετρούν προσεκτικά την αντικατάσταση, μπορούν να ξεγελάσουν το needrestart για να εκτελέσουν τον κώδικά τους ως root.
- CVE-2024-10224: Η μονάδα ScanDeps της Perl, που χρησιμοποιείται από το needrestart, χειρίζεται εσφαλμένα ονόματα αρχείων που παρέχονται από τον εισβολέα. Ένας εισβολέας μπορεί να δημιουργήσει ονόματα αρχείων που μοιάζουν με εντολές φλοιού (π.χ. εντολή|) για να εκτελέσει αυθαίρετες εντολές ως root όταν ανοίγει το αρχείο.
- CVE-2024-11003: Η εξάρτηση του Needrestart στη μονάδα ScanDeps της Perl το εκθέτει σε ευπάθειες στο ίδιο το ScanDeps, όπου η μη ασφαλής χρήση των συναρτήσεων eval() μπορεί να οδηγήσει σε αυθαίρετη εκτέλεση κώδικα κατά την επεξεργασία εισόδου που ελέγχεται από τους εισβολείς.
Είναι σημαντικό να σημειωθεί ότι, για να εκμεταλλευτεί αυτά τα ελαττώματα, ένας εισβολέας θα πρέπει να έχει τοπική πρόσβαση στο λειτουργικό σύστημα μέσω κακόβουλου λογισμικού ή ενός παραβιασμένου λογαριασμού, γεγονός που μετριάζει κάπως τον κίνδυνο.
Ωστόσο, οι εισβολείς εκμεταλλεύτηκαν παρόμοια ευπάθεια προνομίων Linux στο παρελθόν για να αποκτήσουν root, συμπεριλαμβανομένων των Loony Tunables και ενός που εκμεταλλεύεται ένα σφάλμα nf_tables, επομένως αυτό το νέο ελάττωμα δεν πρέπει να παραβλεφθεί μόνο και μόνο επειδή απαιτεί τοπική πρόσβαση.
Με την ευρεία χρήση του needrestart και το πολύ μεγάλο χρονικό διάστημα που είναι ευάλωτο, τα παραπάνω ελαττώματα θα μπορούσαν να δημιουργήσουν ευκαιρίες για αύξηση των προνομίων σε κρίσιμα συστήματα.
Εκτός από την αναβάθμιση στην έκδοση 3.8 ή νεότερη, η οποία περιλαμβάνει ενημερώσεις κώδικα για όλα τα εντοπισμένα τρωτά σημεία, συνιστάται να τροποποιήσετε το αρχείο needrestart.conf για να απενεργοποιήσετε τη δυνατότητα σάρωσης διερμηνέα, η οποία αποτρέπει την εκμετάλλευση των τρωτών σημείων.
# Disable interpreter scanners.
$nrconf{interpscan} = 0;
Αυτό θα πρέπει να σταματήσει το needrestart από την εκτέλεση διερμηνέων με δυνητικά ελεγχόμενες από εισβολείς μεταβλητές περιβάλλοντος.
VIA: bleepingcomputer.com