Εντόπισαν μια ευπάθεια στο ksmbd στον πυρήνα του Linux

ευπάθεια

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

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

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

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

ΣΤΟΙΧΕΙΑ ΕΥΡΩΤΟΤΗΤΑΣ
Αυτή η ευπάθεια επιτρέπει στους απομακρυσμένους εισβολείς να εκτελούν αυθαίρετο κώδικα σε επηρεαζόμενες εγκαταστάσεις του πυρήνα Linux. Δεν απαιτείται έλεγχος ταυτότητας για την εκμετάλλευση αυτής της ευπάθειας, αλλά μόνο τα συστήματα με ενεργοποιημένο το ksmbd είναι ευάλωτα.

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

Αναφέρεται ότι ανάλογα με τον τύπο του αιτήματος SMB, κάθε νέο νήμα μπορεί να αποφασίσει να περάσει εντολές στο χώρο χρήστη (ksmbd.mountd). Επί του παρόντος, οι εντολές DCE/RPC αναγνωρίζονται ότι χειρίζονται από το χώρο χρήστη. Για την καλύτερη χρήση του πυρήνα του Linux, αποφασίστηκε να αντιμετωπίζονται οι εντολές ως στοιχεία εργασίας και να εκτελούνται στους χειριστές νημάτων ksmbd -io kworker.

Αυτό επιτρέπει στους διαχειριστές να πολυπλέκονται επειδή ο πυρήνας φροντίζει να ξεκινήσει πρόσθετα νήματα εργαζόμενου εάν το φορτίο αυξάνεται και αντίστροφα, εάν το φορτίο μειωθεί, σκοτώνει τα πρόσθετα νήματα εργαζομένων.

Όταν ξεκινά ο δαίμονας διακομιστή, ξεκινά ένα νήμα διχάλας (ksmbd/όνομα διεπαφής) κατά την εκκίνηση και ανοίγει μια αποκλειστική θύρα 445 για να ακούει αιτήματα SMB. Κάθε φορά που νέοι πελάτες κάνουν ένα αίτημα, το νήμα forker αποδέχεται τη σύνδεση του πελάτη και δημιουργεί ένα νέο νήμα για ένα αποκλειστικό κανάλι επικοινωνίας μεταξύ του πελάτη και του διακομιστή. Αυτό επιτρέπει την παράλληλη επεξεργασία αιτημάτων (εντολών) SMB από πελάτες και επιτρέπει στους νέους πελάτες να δημιουργήσουν νέες συνδέσεις.

Το ksmbd σήκωσε κόκκινες σημαίες μεταξύ ορισμένων χρηστών που συζήτησαν τη συγχώνευσή τους πέρυσι. Η SerNet, μια γερμανική εταιρεία υπολογιστών που προσφέρει τη δική της έκδοση του Samba, είπε σε μια ανάρτηση στο blog ότι το ksmbd ήταν φοβερό, αλλά φαινόταν λίγο ανώριμο. Επιπλέον, η ομάδα Samba+ του SerNet δήλωσε σε μια ανάρτηση ιστολογίου ότι η αξία της προσθήκης ενός διακομιστή SMB στο χώρο του πυρήνα μπορεί να μην αξίζει τον κίνδυνο να "συμπιέσετε το τελευταίο κομμάτι απόδοσης από τα διαθέσιμα στοιχεία".

Ευτυχώς, εάν δεν εκτελείτε την «πειραματική» μονάδα ksmbd της Samsung, όπως περιγράφεται από τον ερευνητή ασφαλείας Shir Tamari στο Twitter, και έχετε κρατήσει το Samba, είστε απόλυτα ασφαλείς. "Το ksmbd είναι νέο. Οι περισσότεροι χρήστες εξακολουθούν να χρησιμοποιούν Samba και δεν επηρεάζονται. Βασικά, αν δεν εκτελείτε διακομιστές SMB με ksmbd, απολαύστε το Σαββατοκύριακο σας», έγραψε ο Tamari στο Twitter.

Σύμφωνα με την Πρωτοβουλία Zero-Day, που αποκάλυψε την ευπάθεια ksmbd, το ελάττωμα της χρήσης μετά την ελεύθερη χρήση υπάρχει στην επεξεργασία των εντολών SMB2_TREE_DISCONNECT. Σύμφωνα με το ZDI, το πρόβλημα προκαλείται από το ksmbd που δεν επικυρώνει την ύπαρξη αντικειμένων πριν εκτελέσει λειτουργίες σε αυτά.

Για όσους χρησιμοποιούν ksmbd, υπάρχει μια λύση εκτός από τη μετάβαση σε Samba: αναβάθμιση στην έκδοση 5.15.61 του πυρήνα Linux, που κυκλοφόρησε τον Αύγουστο ή αργότερα. Αυτή η ενημέρωση πυρήνα διορθώνει επίσης μερικά άλλα ζητήματα στο ksmbd: μια ανάγνωση εκτός ορίων για το SMB2_TREE_CONNECT, η οποία σύμφωνα με τη σημείωση ενημέρωσης κώδικα θα μπορούσε να επιτρέψει σε μη έγκυρα αιτήματα να μην αποστέλλονται μηνύματα και μια διαρροή μνήμης στο smb2_handle_negotiate που προκαλεί λανθασμένο ελεύθερο. μνήμη.

τελικά αν είσαι ενδιαφέρεται να μάθει περισσότερα για αυτό, μπορείτε να ελέγξετε τις λεπτομέρειες Στον ακόλουθο σύνδεσμο.