Απομακρυσμένη ευπάθεια στον πυρήνα Linux που εμφανίζεται κατά τη χρήση του πρωτοκόλλου TIPC

Εντοπίστηκε μια ευπάθεια (CVE-2022-0435) στη μονάδα πυρήνα Linux που διασφαλίζει τη λειτουργία του πρωτοκόλλου δικτύου TIPC (Transparent Inter-Process Communication), επιτρέποντας ενδεχομένως την εκτέλεση κώδικα σε επίπεδο πυρήνα με την αποστολή ενός ειδικά σχεδιασμένου δικτύου πακέτο. Το ζήτημα επηρεάζει μόνο συστήματα με φορτωμένη τη λειτουργική μονάδα πυρήνα tipc.ko και διαμορφωμένη στοίβα TIPC, η οποία χρησιμοποιείται συνήθως σε συμπλέγματα και δεν είναι ενεργοποιημένη από προεπιλογή σε μη εξειδικευμένες διανομές Linux.

Σημειώνεται ότι κατά την κατασκευή του πυρήνα στη λειτουργία "CONFIG_FORTIFY_SRC=y" (χρησιμοποιείται στο RHEL), η οποία προσθέτει επιπλέον ελέγχους ορίων στη συνάρτηση memcpy(), η λειτουργία περιορίζεται σε έκτακτη διακοπή (ο πυρήνας πανικοβάλλεται). Εάν εκτελεστεί χωρίς πρόσθετους ελέγχους και εάν διαρρεύσουν πληροφορίες σχετικά με τις ετικέτες καναρίνι που χρησιμοποιούνται για την προστασία της στοίβας, το πρόβλημα μπορεί να αξιοποιηθεί για απομακρυσμένη εκτέλεση κώδικα με δικαιώματα πυρήνα. Οι ερευνητές που εντόπισαν το πρόβλημα ισχυρίζονται ότι η τεχνική της εκμετάλλευσης είναι ασήμαντη και θα αποκαλυφθεί μετά την ευρεία εξάλειψη της ευπάθειας στις διανομές.

Η ευπάθεια προκαλείται από μια υπερχείλιση στοίβας που συμβαίνει κατά την επεξεργασία πακέτων, η τιμή του πεδίου με τον αριθμό των κόμβων μελών τομέα στους οποίους υπερβαίνει τους 64. Για την αποθήκευση παραμέτρων κόμβου στη λειτουργική μονάδα tipc.ko, ένας σταθερός πίνακας «u32 μέλη[64 ]” χρησιμοποιείται, αλλά κατά τη διαδικασία επεξεργασίας των καθορισμένων στο πακέτο Ο αριθμός κόμβου δεν ελέγχει την τιμή του "member_cnt", που επιτρέπει τη χρήση τιμών μεγαλύτερες από 64 για ελεγχόμενη αντικατάσταση δεδομένων στην περιοχή μνήμης στη συνέχεια στη δομή "dom_bef" στη στοίβα.

Το σφάλμα που οδηγεί στην ευπάθεια παρουσιάστηκε στις 15 Ιουνίου 2016 και συμπεριλήφθηκε στον πυρήνα του Linux 4.8. Το θέμα ευπάθειας αντιμετωπίστηκε στις εκδόσεις του πυρήνα Linux 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266 και 4.9.301. Στους πυρήνες των περισσότερων διανομών το πρόβλημα παραμένει άλυτο: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.

Το πρωτόκολλο TIPC αναπτύχθηκε αρχικά από την Ericsson, σχεδιασμένο για να οργανώνει την επικοινωνία μεταξύ των διεργασιών σε ένα σύμπλεγμα και ενεργοποιείται κυρίως σε κόμβους συμπλέγματος. Το TIPC μπορεί να λειτουργήσει είτε μέσω Ethernet είτε μέσω UDP (θύρα δικτύου 6118). Όταν εργάζεστε μέσω Ethernet, η επίθεση μπορεί να πραγματοποιηθεί από το τοπικό δίκτυο και όταν χρησιμοποιείται UDP, από το παγκόσμιο δίκτυο εάν η θύρα δεν καλύπτεται από τείχος προστασίας. Η επίθεση μπορεί επίσης να πραγματοποιηθεί από έναν μη προνομιούχο τοπικό χρήστη του κεντρικού υπολογιστή. Για να ενεργοποιήσετε το TIPC, πρέπει να κάνετε λήψη της λειτουργικής μονάδας πυρήνα tipc.ko και να διαμορφώσετε τη σύνδεση στη διεπαφή δικτύου χρησιμοποιώντας το netlink ή το βοηθητικό πρόγραμμα tipc.

Πηγή: opennet.ru

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