Ένα θέμα ευπάθειας στον διαχειριστή πακέτων Guix επιτρέπει την απομακρυσμένη εκτέλεση κώδικα.

Έχουν εντοπιστεί ευπάθειες (δεν έχει εκχωρηθεί CVE) στον διαχειριστή πακέτων Guix κατά την υλοποίηση της εσωτερικής εντολής "guix substitute", η οποία καλείται αυτόματα από τη διεργασία φόντου guix-daemon κατά την εγκατάσταση πακέτων. Η εντολή χρησιμοποιείται για τη λήψη προκατασκευασμένων δυαδικών πακέτων από εξωτερικούς διακομιστές και την επαλήθευση της ακεραιότητάς τους χρησιμοποιώντας ψηφιακή υπογραφή. Η πιο σοβαρή ευπάθεια επιτρέπει την απομακρυσμένη εκτέλεση κώδικα στο σύστημα ενός χρήστη με τα δικαιώματα υπό τα οποία εκτελείται η διεργασία φόντου guix-daemon.

Το πρόβλημα επηρεάζει όλες τις διαμορφώσεις με τη διεργασία guix-daemon, ανεξάρτητα από το αν εκτελείται με δικαιώματα root ή χωρίς δικαιώματα χρήστη. Η εκμετάλλευση της ευπάθειας απαιτεί οποιαδήποτε προσπάθεια λήψης προκατασκευασμένων δυαδικών πακέτων από υπηρέτης, που ελέγχεται από τον εισβολέα. Σε αυτήν την περίπτωση, το κακόβουλο διακομιστή Δεν χρειάζεται να επιλεγεί ή να καθοριστεί ρητά στις ρυθμίσεις χρήστη—μπορεί να οριστεί χρησιμοποιώντας την επιλογή "--discover", η οποία επιτρέπει την πλαστοπροσωπία διακομιστή κατά τη διάρκεια μιας επίθεσης man-in-the-middle. Σε διαμορφώσεις όπου το guix-daemon εκτελείται με αυξημένα δικαιώματα, ένας τοπικός χρήστης μπορεί να εκτελέσει μια επίθεση εάν μπορεί να συνδεθεί με τη διεργασία παρασκηνίου μέσω μιας υποδοχής Unix (διαθέσιμη σε όλους τους χρήστες από προεπιλογή).

Η ευπάθεια υπάρχει στον χειριστή "restore-file", ο οποίος χρησιμοποιείται για την αποσυμπίεση ενός πακέτου κατά τη λήψη του, χωρίς να περιμένει να ολοκληρωθεί η λήψη του και να επαληθευτεί το αρχείο που έχει ληφθεί χρησιμοποιώντας ψηφιακή υπογραφή. Το πρόβλημα προκαλείται από την έλλειψη ελέγχων για τους χαρακτήρες ".", "/" και ".." στις διαδρομές αρχείων μέσα στο αρχείο. Αντικαθιστώντας μη έγκυρα ονόματα αρχείων στο αρχείο, ένας εισβολέας μπορεί να γράψει ένα αυθαίρετο αρχείο σε οποιαδήποτε θέση στο σύστημα αρχείων, με την επιφύλαξη των δικαιωμάτων βάσει των οποίων εκτελείται η διεργασία φόντου guix-daemon.

Για να εκτελέσετε τον κώδικά σας στο σύστημα, για παράδειγμα, μπορείτε να προσθέσετε ένα σενάριο αυτόματης εκτέλεσης όπως "~/.bashrc" ή ~/.profile, ή να τροποποιήσετε το αρχείο ~/.ssh/authorized_keys που περιέχει κλειδιά SSH. Εάν το guix-daemon εκτελείται ως ο χρήστης root σε ένα σύστημα πολλαπλών χρηστών, ένας εισβολέας μπορεί να αντικαταστήσει το αρχείο κωδικού πρόσβασης ή τα σενάρια συστήματος.

Η δυνατότητα δημιουργίας ψεύτικων διακομιστών για τη διανομή κακόβουλων πακέτων οφειλόταν στο γεγονός ότι η διαδικασία λήψης μεταδεδομένων (narinfo) σχετικά με τα διαθέσιμα δυαδικά πακέτα (fetch-narinfos) δεν επαλήθευε το πιστοποιητικό του διακομιστή, βασιζόμενη στο γεγονός ότι τα περισσότερα μεταδεδομένα ήταν ψηφιακά υπογεγραμμένα. Όπως αποδείχθηκε, η υπογραφή δεν κάλυπτε τη διεύθυνση URL λήψης του πακέτου, επιτρέποντάς της να πλαστογραφηθεί χωρίς να διακυβευτεί η ακεραιότητα των μεταδεδομένων. Τελικά, το ψεύτικο πακέτο θα είχε απορριφθεί λόγω αδυναμίας επαλήθευσης του περιεχομένου του σε σχέση με το ψηφιακά υπογεγραμμένο hash. Ωστόσο, αυτή η επαλήθευση πραγματοποιήθηκε μετά το στάδιο της αποσυσκευασίας, το οποίο αποκάλυψε ένα πρόβλημα με ειδικούς χαρακτήρες στα ονόματα αρχείων.

Εκτός από την εντολή "guix substitute", ο ευάλωτος χειριστής "restore-file" χρησιμοποιείται από τις εντολές "guix offload", "guix archive --extract" και "guix challenge", οι οποίες μπορούν επίσης να χρησιμοποιηθούν για την εκμετάλλευση της ευπάθειας. Ως λύση, προτείνεται ο ρητός καθορισμός της επιλογής "--no-substitutes" σε όλες τις εντολές guix. Μια διόρθωση για την ευπάθεια έχει γίνει αποδεκτή στη βάση κώδικα του Guix. Συνιστάται στους χρήστες να εγκαταστήσουν αμέσως τις ενημερώσεις που δημιουργούνται από προγραμματιστές για το guix και το guix-daemon.

Εκτός από το πρόβλημα που αναφέρθηκε, έχουν διορθωθεί τρία ακόμη τρωτά σημεία στο Guix:

  • Πιθανότητα πλαστογράφησης δυαδικού πακέτου λόγω έλλειψης επαλήθευσης της συμμόρφωσης του αιτούμενου πακέτου με τα επιστρεφόμενα μεταδεδομένα στον χειριστή fetch-narinfos. Αυτή η ευπάθεια μπορεί να αξιοποιηθεί για την επιστροφή μιας παλιάς έκδοσης του αιτούμενου πακέτου που περιέχει ευπάθειες.
  • Προσδιορισμός του περιεχομένου της πρώτης γραμμής αυθαίρετων αρχείων στο σύστημα μέσω αποστολής αιτήματος από έναν τοπικό χρήστη με το URI "file://" ("--substitute-urls file:///etc/shadow"). Εάν το guix-daemon εκτελείται με δικαιώματα root, θα διαβάσει το αρχείο που ζητήθηκε, θα διαπιστώσει ότι δεν είναι μεταδεδομένα και θα επιστρέψει ένα μήνυμα σφάλματος που θα αναφέρει τη γραμμή που δεν μπόρεσε να αναλυθεί.
  • Ο καθορισμός ενός ειδικά κατασκευασμένου ονόματος εξωτερικού αποθετηρίου ("../../../../newfile") κατά την εκτέλεση των εντολών "guix pull" και "guix time-machine" επιτρέπει την εγγραφή πληροφοριών commit σε ένα αυθαίρετο υπάρχον αρχείο στο σύστημα αρχείων, εάν το περιεχόμενό του μοιάζει με μια λίστα συμβολοσειρών Scheme. Αυτή η ευπάθεια μπορεί να χρησιμοποιηθεί για επιθέσεις DoS, αλλά είναι πιθανό να επιτευχθούν πιο επικίνδυνοι χειρισμοί του συστήματος μέσω έξυπνου χειρισμού του ψευδοσυστήματος αρχείων /proc.

Πηγή: opennet.ru

Αγοράστε αξιόπιστη φιλοξενία για ιστότοπους με προστασία DDoS, διακομιστές VPS VDS 🔥 Αγοράστε αξιόπιστη φιλοξενία ιστοσελίδων με προστασία DDoS, διακομιστές VPS VDS | ProHoster