Ερευνητές ασφαλείας από την Google εντόπισαν μια ευπάθεια (CVE-2025-38236) στον πυρήνα του Linux που επιτρέπει την κλιμάκωση δικαιωμάτων. Μεταξύ άλλων, η ευπάθεια επιτρέπει την παράκαμψη του μηχανισμού απομόνωσης sandbox που χρησιμοποιείται στο Google Chrome και την επίτευξη εκτέλεσης κώδικα σε επίπεδο πυρήνα κατά την εκτέλεση κώδικα στο πλαίσιο μιας απομονωμένης διαδικασίας απόδοσης Chrome (για παράδειγμα, κατά την εκμετάλλευση μιας άλλης ευπάθειας στο Chrome). Το πρόβλημα εμφανίζεται ξεκινώντας από τον πυρήνα Linux 6.9 και διορθώθηκε στις ενημερώσεις πυρήνα Linux 6.1.143, 6.6.96, 6.12.36 και 6.15.5. Ένα πρωτότυπο της ευπάθειας είναι διαθέσιμο για λήψη.
Η ευπάθεια προκαλείται από ένα σφάλμα υλοποίησης στη σημαία MSG_OOB, η οποία μπορεί να οριστεί για υποδοχές AF_UNIX. Η σημαία MSG_OOB ("εκτός ζώνης") επιτρέπει την προσάρτηση ενός επιπλέον byte στα δεδομένα που αποστέλλονται, τα οποία ο παραλήπτης μπορεί να διαβάσει πριν από τη λήψη των υπόλοιπων δεδομένων. Αυτή η σημαία προστέθηκε στον πυρήνα Linux 5.15 κατόπιν αιτήματος της Oracle και προτάθηκε για κατάργηση πέρυσι επειδή δεν χρησιμοποιούνταν ευρέως.
Η υλοποίηση sandbox του Chrome επέτρεπε λειτουργίες socket UNIX και κλήσεις συστήματος send()/recv() όπου η σημαία MSG_OOB επιτρεπόταν μαζί με άλλες επιλογές και δεν φιλτράρονταν ξεχωριστά. Ένα σφάλμα στην υλοποίηση MSG_OOB επέτρεψε την εμφάνιση μιας συνθήκης use-after-free μετά την εκτέλεση μιας συγκεκριμένης ακολουθίας κλήσεων συστήματος: char dummy; int socks[2]; socketpair(AF_UNIX, SOCK_STREAM, 0, socks); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[0], "A", 0, MSG_OOB); recv(socks[1], &dummy, XNUMX, MSG_OOB); send(socks[XNUMX], "A", XNUMX, MSG_OOB); recv(socks[XNUMX], &dummy, XNUMX, XNUMX); recv(socks[XNUMX], &dummy, XNUMX, MSG_OOB);
Πηγή: opennet.ru
