Μια ευπάθεια στο πρωτόκολλο δικτύου CAN BCM επέτρεψε κλιμάκωση προνομίων στον πυρήνα linux 

Χθες κυκλοφόρησαν πληροφορίες σχετικά με μια ευπάθεια στον πυρήνα του Linux και το οποίο έχει ήδη καταχωριστεί ως CVE-2021-3609. Αυτή η ευπάθεια επιτρέπει σε έναν τοπικό χρήστη να αναβαθμίσει τα δικαιώματά του στο σύστημα λόγω μιας κατάστασης αγώνα στην εφαρμογή του πρωτοκόλλου CAN BCM και εκδηλώθηκε στις εκδόσεις 2.6.25 έως 5.13-rc6 του πυρήνα Linux.

Η απόφαση επωφελείται επειδή η Το πρωτόκολλο CAN BCM σάς επιτρέπει να εγγράψετε τον δικό σας διαχειριστή μηνυμάτων του δικτύου περιοχής του ελεγκτή (CAN) και συνδέστε το σε μια συγκεκριμένη πρίζα δικτύου. Όταν φτάνει ένα εισερχόμενο μήνυμα, καλείται η συνάρτηση bcm_rx_handler () ένας εισβολέας μπορεί να εκμεταλλευτεί μια κατάσταση αγώνα και να αναγκάσει την πρίζα δικτύου να κλείσει κατά την εκτέλεση bcm_rx_handler ().

Το πρόβλημα έρχεται όταν η πρίζα είναι κλειστή και η συνάρτηση καλείται bcm_release (), στην οποία απελευθερώνεται μνήμη για δομές bcm_op και bcm_sock, που συνεχίζουν να χρησιμοποιούνται στο χειριστή βcm_rx_handler () το οποίο εξακολουθεί να εκτελείται, συνεπώς προκύπτει μια κατάσταση που οδηγεί σε πρόσβαση σε ένα ήδη απελευθερωμένο μπλοκ μνήμης (χωρίς χρήση μετά από χρήση).

Αυτή είναι μια ανακοίνωση του πρόσφατα αναφερθέντος σφάλματος (CVE-2021-3609) στο πρωτόκολλο δικτύου CAN BCM στον πυρήνα Linux που κυμαίνεται από την έκδοση 2.6.25 έως την κύρια γραμμή 5.13-rc6.
Η ευπάθεια είναι μια συνθήκη αγώνων στο net / can / bcm.c που επιτρέπει την κλιμάκωση των προνομίων. Το πρόβλημα αναφέρθηκε αρχικά από τον syzbot και ο Norbert Slusarek αποδείχθηκε εκμεταλλεύσιμος.

Η επίθεση αρχίζει να ανοίγει δύο υποδοχές CAN BCM και να τις συνδέει στη διεπαφή vcan. Στην πρώτη σύνδεση, καλείτε sendmsg () με τον δείκτη RX_SETUP για να διαμορφώσετε τον ελεγκτή για εισερχόμενα μηνύματα CAN και στη δεύτερη σύνδεση, καλείτε sendmsg () για να στείλετε ένα μήνυμα στον πρώτο σύνδεσμο.

Αφού φτάσει το μήνυμα, ενεργοποιείται η κλήση bcm_rx_handler () και ο εισβολέας παίρνει τη σωστή στιγμή και κλείνει την πρώτη υποδοχή, που οδηγεί στην έναρξη του bcm_release () και την έναρξη των δομών bcm_op και bcm_sock, αν και το έργο του bcm_rx_handler () δεν έχει ακόμη ολοκληρωθεί.

Με το χειρισμό του περιεχομένου του bcm_sock, ένας εισβολέας μπορεί να παρακάμψει έναν δείκτη στη συνάρτηση sk-> sk_data_ready (sk), εκτέλεση ανακατεύθυνσης και, χρησιμοποιώντας τεχνικές προγραμματισμού επιστροφής (ROP), παρακάμπτει την παράμετρο modprobe_path και κάνει τον κώδικά του να εκτελείται ως root .

Όταν χρησιμοποιεί την τεχνική ROP, ο εισβολέας δεν προσπαθεί να βάλει τον κωδικό του στη μνήμη του, αλλά λειτουργεί τα κομμάτια του οι οδηγίες του μηχανήματος είναι ήδη διαθέσιμες σε φορτωμένες βιβλιοθήκες, που τελειώνει με μια δήλωση επιστροφής ελέγχου (κατά κανόνα, αυτά είναι το τέλος των λειτουργιών της βιβλιοθήκης).

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

Η προσπάθειά μου εκμετάλλευσης επικεντρώνεται σε πυρήνες με έκδοση> = 5.4-rc1 από τη δέσμευση bf74aa86e111. Δεν διερεύνησα την εκμετάλλευση πυρήνων παλαιότερων από 5.4-rc1 με χρήση εργαλείων, ωστόσο η εκμετάλλευση παλαιότερων πυρήνων φαίνεται επίσης εφικτή. 

Αναφέρεται ότι ο ερευνητής που εντόπισε την ευπάθεια ήταν σε θέση να προετοιμάσει μια εκμετάλλευση για να αποκτήσετε δικαιώματα root σε συστήματα με πυρήνες από την έκδοση 5.4 και νεότερη έκδοση, συμπεριλαμβανομένης της πιθανότητας επιτυχούς επίθεσης στο Ubuntu 20.04.02 LTS.

Το έργο του exploit περιορίζεται στην κατασκευή μιας αλυσίδας κλήσεων σε παρόμοια μπλοκ ("gadgets") για την απόκτηση της απαιτούμενης λειτουργικότητας. Η επίθεση απαιτεί πρόσβαση για τη δημιουργία υποδοχών CAN και μια διαμορφωμένη διεπαφή δικτύου vcan.

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

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


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

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

*

*

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