Θέματα ευπάθειας στον αποστολέα δικτύου που επιτρέπουν την πρόσβαση root

Ερευνητές ασφαλείας από τη Microsoft εντόπισαν δύο ευπάθειες (CVE-2022-29799, CVE-2022-29800) στην υπηρεσία δικτυακού αποστολέα, με την κωδική ονομασία Nimbuspwn, που επιτρέπουν σε έναν μη προνομιούχο χρήστη να εκτελεί αυθαίρετες εντολές με δικαιώματα root. Το πρόβλημα διορθώθηκε στην κυκλοφορία του δικτυακού αποστολέα 2.2. Δεν υπάρχουν ακόμα πληροφορίες σχετικά με τη δημοσίευση ενημερώσεων ανά διανομές (Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux).

Το Networkd-dispatcher χρησιμοποιείται σε πολλές διανομές Linux, συμπεριλαμβανομένου του Ubuntu, το οποίο χρησιμοποιεί τη διαδικασία παρασκηνίου systemd-networkd για τη διαμόρφωση των παραμέτρων δικτύου και εκτελεί λειτουργίες παρόμοιες με το NetworkManager-dispatcher, π.χ. συμμετέχει στην εκκίνηση σεναρίων όταν αλλάζει η κατάσταση μιας σύνδεσης δικτύου, για παράδειγμα, χρησιμοποιείται για την εκκίνηση ενός VPN μετά την εγκατάσταση της κύριας σύνδεσης δικτύου.

Η διαδικασία παρασκηνίου που σχετίζεται με το networkd-dispatcher εκτελείται ως root και λαμβάνει σήματα συμβάντων μέσω του D-Bus. Πληροφορίες σχετικά με συμβάντα που σχετίζονται με αλλαγές στην κατάσταση των συνδέσεων δικτύου αποστέλλονται από την υπηρεσία systemd-networkd. Το πρόβλημα είναι ότι οι μη προνομιούχοι χρήστες μπορούν να δημιουργήσουν ένα ανύπαρκτο συμβάν κατάστασης και να ενεργοποιήσουν το σενάριό τους για να εκτελεστεί ως root.

Το Systemd-networkd έχει σχεδιαστεί για να εκτελεί μόνο σενάρια χειρισμού συστήματος που βρίσκονται στον κατάλογο /etc/networkd-dispatcher και δεν είναι προσβάσιμα για αντικατάσταση χρήστη, αλλά λόγω ευπάθειας (CVE-2022-29799) στον κώδικα επεξεργασίας διαδρομής αρχείου, υπήρχε ένα δυνατότητα ενός καταλόγου βάσης εκτός ορίων και εκκίνησης αυθαίρετων σεναρίων. Ειδικότερα, κατά τη διαμόρφωση της διαδρομής αρχείου προς το σενάριο, χρησιμοποιήθηκαν οι τιμές OperationalState και AdministrativeState που μεταδίδονται μέσω D-Bus, στις οποίες δεν διαγράφηκαν ειδικοί χαρακτήρες. Ο εισβολέας θα μπορούσε να δημιουργήσει τη δική του κατάσταση, το όνομα της οποίας περιείχε τους χαρακτήρες "../" και να ανακατευθύνει την κλήση δικτυακού αποστολέα σε άλλο κατάλογο.

Η δεύτερη ευπάθεια (CVE-2022-29800) σχετίζεται με μια συνθήκη κούρσας - μεταξύ του ελέγχου των παραμέτρων του σεναρίου (που ανήκουν στο root) και της εκτέλεσής του, υπήρξε ένα σύντομο χρονικό διάστημα, αρκετό για την αντικατάσταση του αρχείου και την παράκαμψη του ελέγχου εάν Το σενάριο ανήκει στον χρήστη root. Επιπλέον, ο δικτυακός αποστολέας δεν έλεγξε για συμβολικούς συνδέσμους, συμπεριλαμβανομένης της εκτέλεσης σεναρίων μέσω της υποδιεργασίας.Ανοιχτή κλήση, η οποία απλοποίησε σημαντικά την οργάνωση της επίθεσης.

Τεχνική λειτουργίας:

  • Δημιουργείται ένας κατάλογος "/tmp/nimbuspwn" και ένας συμβολικός σύνδεσμος "/tmp/nimbuspwn/poc.d" που δείχνουν προς τον κατάλογο "/sbin", ο οποίος χρησιμοποιείται για τον έλεγχο για εκτελέσιμα αρχεία που ανήκουν στο root.
  • Για εκτελέσιμα αρχεία από το "/sbin", δημιουργούνται αρχεία με το ίδιο όνομα στον κατάλογο "/tmp/nimbuspwn", για παράδειγμα, για το αρχείο "/sbin/vgs" ένα εκτελέσιμο αρχείο "/tmp/nimbuspwn/vgs" είναι δημιουργήθηκε, που ανήκει σε μη προνομιούχο χρήστη, στον οποίο τοποθετείται ο κώδικας που θέλει να εκτελέσει ο εισβολέας.
  • Ένα σήμα αποστέλλεται μέσω του διαύλου D στη διαδικασία δικτυακού αποστολέα που υποδεικνύει την τιμή "../../../tmp/nimbuspwn/poc" στο OperationalState. Για να στείλετε ένα σήμα στον χώρο ονομάτων "org.freedesktop.network1", χρησιμοποιήθηκε η δυνατότητα σύνδεσης των χειριστών του στο systemd-networkd, για παράδειγμα, μέσω χειρισμών με gpgv ή epmd, ή μπορείτε να επωφεληθείτε από το γεγονός ότι το systemd-networkd δεν εκτελείται από προεπιλογή (για παράδειγμα, στο Linux Mint).
  • Μετά τη λήψη του σήματος, το Networkd-dispatcher δημιουργεί μια λίστα με εκτελέσιμα αρχεία που ανήκουν στον χρήστη root και είναι διαθέσιμα στον κατάλογο "/etc/networkd-dispatcher/../../../tmp/nimbuspwn/poc.d", που στην πραγματικότητα συνδέεται με το "/sbin".
  • Τη στιγμή που λαμβάνεται η λίστα των αρχείων, αλλά το σενάριο δεν έχει ακόμη εκκινηθεί, ο συμβολικός σύνδεσμος ανακατευθύνεται από το "/tmp/nimbuspwn/poc.d" στο "/tmp/nimbuspwn" και ο networkd-dispatcher θα εκκινήσει το σενάριο που φιλοξενείται από τον εισβολέα με δικαιώματα root.

Θέματα ευπάθειας στον αποστολέα δικτύου που επιτρέπουν την πρόσβαση root


Πηγή: opennet.ru

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