Στον πυρήνα του Linux έχουν εντοπιστεί εκμεταλλεύσιμα τρωτά σημεία στα nf_tables, watch_queue και IPsec

Έχουν εντοπιστεί αρκετά επικίνδυνα τρωτά σημεία στον πυρήνα του Linux που επιτρέπουν σε έναν τοπικό χρήστη να αυξήσει τα προνόμιά του στο σύστημα. Έχουν προετοιμαστεί εργασιακά πρωτότυπα exploits για όλα τα προβλήματα που εξετάζονται.

  • Ένα θέμα ευπάθειας (CVE-2022-0995) στο υποσύστημα παρακολούθησης συμβάντων watch_queue επιτρέπει την εγγραφή δεδομένων σε ένα buffer εκτός ορίων στη μνήμη του πυρήνα. Η επίθεση μπορεί να πραγματοποιηθεί από οποιονδήποτε μη προνομιούχο χρήστη και έχει ως αποτέλεσμα τον κώδικά του να εκτελείται με δικαιώματα πυρήνα. Η ευπάθεια υπάρχει στη συνάρτηση watch_queue_set_size() και σχετίζεται με μια προσπάθεια διαγραφής όλων των δεικτών σε μια λίστα, ακόμα κι αν δεν έχει εκχωρηθεί μνήμη για αυτούς. Το πρόβλημα παρουσιάζεται κατά τη δημιουργία του πυρήνα με την επιλογή "CONFIG_WATCH_QUEUE=y", η οποία χρησιμοποιείται στις περισσότερες διανομές Linux.

    Η ευπάθεια αντιμετωπίστηκε σε μια αλλαγή πυρήνα που προστέθηκε στις 11 Μαρτίου. Μπορείτε να παρακολουθήσετε τις δημοσιεύσεις των ενημερώσεων πακέτων σε διανομές σε αυτές τις σελίδες: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Το πρωτότυπο του exploit είναι ήδη διαθέσιμο στο κοινό και σας επιτρέπει να αποκτήσετε πρόσβαση root όταν εκτελείτε στο Ubuntu 21.10 με πυρήνα 5.13.0-37.

    Στον πυρήνα του Linux έχουν εντοπιστεί εκμεταλλεύσιμα τρωτά σημεία στα nf_tables, watch_queue και IPsec

  • Ευπάθεια (CVE-2022-27666) στις μονάδες πυρήνα esp4 και esp6 με την υλοποίηση μετασχηματισμών ESP (Encapsulating Security Payload) για IPsec, που χρησιμοποιείται κατά τη χρήση IPv4 και IPv6. Η ευπάθεια επιτρέπει σε έναν τοπικό χρήστη με κανονικά δικαιώματα να αντικαταστήσει αντικείμενα στη μνήμη του πυρήνα και να κλιμακώσει τα προνόμιά του στο σύστημα. Το πρόβλημα προκαλείται από έλλειψη συμφωνίας μεταξύ του εκχωρημένου μεγέθους μνήμης και των πραγματικών δεδομένων που λαμβάνονται, δεδομένου ότι το μέγιστο μέγεθος του μηνύματος θα μπορούσε να υπερβεί το μέγιστο μέγεθος μνήμης που έχει εκχωρηθεί για τη δομή skb_page_frag_refill.

    Η ευπάθεια διορθώθηκε στον πυρήνα στις 7 Μαρτίου (επιδιορθώθηκε στις 5.17, 5.16.15 κ.λπ.). Μπορείτε να παρακολουθήσετε τις δημοσιεύσεις των ενημερώσεων πακέτων σε διανομές σε αυτές τις σελίδες: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Ένα λειτουργικό πρωτότυπο του exploit, το οποίο επιτρέπει σε έναν απλό χρήστη να αποκτήσει πρόσβαση root στο Ubuntu Desktop 21.10 στην προεπιλεγμένη διαμόρφωση, έχει ήδη αναρτηθεί στο GitHub. Υποστηρίζεται ότι με μικρές αλλαγές το exploit θα λειτουργήσει και στο Fedora και στο Debian. Αξίζει να σημειωθεί ότι το exploit προετοιμάστηκε αρχικά για τον διαγωνισμό pwn2own 2022, αλλά οι προγραμματιστές του πυρήνα εντόπισαν και διόρθωσαν ένα σφάλμα που σχετίζεται με αυτό, οπότε αποφασίστηκε να αποκαλυφθούν οι λεπτομέρειες της ευπάθειας.

  • Δύο ευπάθειες (CVE-2022-1015, CVE-2022-1016) στο υποσύστημα netfilter στη μονάδα nf_tables, που διασφαλίζει τη λειτουργία του φίλτρου πακέτων nftables. Το πρώτο ζήτημα επιτρέπει σε έναν τοπικό μη προνομιούχο χρήστη να επιτύχει εγγραφή εκτός ορίων σε ένα εκχωρημένο buffer στη στοίβα. Παρουσιάζεται υπερχείλιση κατά την επεξεργασία παραστάσεων nftables που έχουν μορφοποιηθεί με συγκεκριμένο τρόπο και υποβάλλονται σε επεξεργασία κατά τη φάση ελέγχου των ευρετηρίων που καθορίζονται από έναν χρήστη που έχει πρόσβαση σε κανόνες nftables.

    Η ευπάθεια προκαλείται από το γεγονός ότι οι προγραμματιστές υπονόησαν ότι η τιμή του "enum nft_registers reg" ήταν ένα μόνο byte, όταν όταν ενεργοποιήθηκαν ορισμένες βελτιστοποιήσεις, ο μεταγλωττιστής, σύμφωνα με την προδιαγραφή C89, μπορούσε να χρησιμοποιήσει μια τιμή 32-bit για αυτό. . Λόγω αυτού του χαρακτηριστικού, το μέγεθος που χρησιμοποιείται κατά τον έλεγχο και την εκχώρηση μνήμης δεν αντιστοιχεί στο πραγματικό μέγεθος των δεδομένων στη δομή, γεγονός που οδηγεί στην επικάλυψη της ουράς της δομής με δείκτες στη στοίβα.

    Το πρόβλημα μπορεί να αξιοποιηθεί για την εκτέλεση κώδικα σε επίπεδο πυρήνα, αλλά μια επιτυχημένη επίθεση απαιτεί πρόσβαση σε nftables, τα οποία μπορούν να ληφθούν σε ξεχωριστό χώρο ονομάτων δικτύου με δικαιώματα CLONE_NEWUSER ή CLONE_NEWNET (για παράδειγμα, εάν μπορείτε να εκτελέσετε ένα απομονωμένο κοντέινερ). Η ευπάθεια σχετίζεται επίσης στενά με τις βελτιστοποιήσεις που χρησιμοποιούνται από τον μεταγλωττιστή, οι οποίες, για παράδειγμα, ενεργοποιούνται κατά τη δημιουργία στη λειτουργία "CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y". Η εκμετάλλευση της ευπάθειας είναι δυνατή ξεκινώντας με τον πυρήνα Linux 5.12.

    Η δεύτερη ευπάθεια στο netfilter προκαλείται από την πρόσβαση σε μια ήδη ελευθερωμένη περιοχή μνήμης (use-after-free) στον χειριστή nft_do_chain και μπορεί να οδηγήσει σε διαρροή μη αρχικοποιημένων περιοχών της μνήμης του πυρήνα, οι οποίες μπορούν να διαβαστούν μέσω χειρισμών με εκφράσεις nftables και να χρησιμοποιηθούν, για παράδειγμα, για τον προσδιορισμό διευθύνσεων δείκτη κατά την ανάπτυξη εκμεταλλεύσεων για άλλα τρωτά σημεία. Η εκμετάλλευση της ευπάθειας είναι δυνατή ξεκινώντας με τον πυρήνα Linux 5.13.

    Τα τρωτά σημεία αντιμετωπίζονται στις σημερινές ενημερώσεις κώδικα του πυρήνα 5.17.1, 5.16.18, 5.15.32, 5.10.109, 5.4.188, 4.19.237, 4.14.274 και 4.9.309. Μπορείτε να παρακολουθήσετε τις δημοσιεύσεις των ενημερώσεων πακέτων σε διανομές σε αυτές τις σελίδες: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Ο ερευνητής που εντόπισε τα προβλήματα ανακοίνωσε την προετοιμασία λειτουργικών εκμεταλλεύσεων και για τα δύο τρωτά σημεία, τα οποία προγραμματίζεται να δημοσιευτούν σε λίγες μέρες, αφού οι διανομές κυκλοφορήσουν ενημερώσεις στα πακέτα του πυρήνα.

Πηγή: opennet.ru

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