Απαλλαγή από τον πυρήνα του Linux από κώδικα αλλαγής συμπεριφοράς για διεργασίες που ξεκινούν με το X

Ο Jason A. Donenfeld, συγγραφέας του VPN WireGuard, επέστησε την προσοχή των προγραμματιστών σε ένα βρώμικο hack που υπάρχει στον κώδικα του πυρήνα του Linux που αλλάζει τη συμπεριφορά για διεργασίες των οποίων το όνομα αρχίζει με τον χαρακτήρα "X". Με την πρώτη ματιά, επιδιορθώσεις όπως αυτή συνήθως εφαρμόζονται σε rootkit για να αφήσουν ένα κρυφό κενό στη σύνδεση διεργασιών, αλλά η ανάλυση έδειξε ότι η αλλαγή προστέθηκε το 2019 για να διορθωθεί προσωρινά μια παραβίαση συμβατότητας χώρου χρήστη που είχε εμφανιστεί, σύμφωνα με την αρχή ότι Οι αλλαγές στον πυρήνα δεν πρέπει να διακόπτουν τη συμβατότητα της εφαρμογής.

Προέκυψαν προβλήματα κατά την προσπάθεια χρήσης του μηχανισμού αλλαγής ατομικής λειτουργίας βίντεο στο πρόγραμμα οδήγησης DDX xf86-video-modesetting που χρησιμοποιείται στον διακομιστή X.Org, το οποίο προκάλεσε σύνδεση σε διεργασίες που ξεκινούσαν με τον χαρακτήρα "X" (υποτίθεται ότι εφαρμόστηκε η λύση στο «xorg»). Σχεδόν αμέσως, το πρόβλημα στο X.Org επιδιορθώθηκε (η χρήση του ατομικού API ήταν απενεργοποιημένη από προεπιλογή), αλλά η προσωρινή επιδιόρθωση ξεχάστηκε να αφαιρεθεί από τον πυρήνα και μια προσπάθεια αποστολής ioctl για να αλλάξει ατομικά η λειτουργία για Όλες οι διεργασίες που ξεκινούν με τον χαρακτήρα "X" συνεχίζουν να καταλήγουν σε σφάλμα. if (current->comm[0] == 'X' && req->value == 1) { pr_info("broken atomic modeset userspace detected, disableing atomic\n"); επιστροφή -EOPNOTSUPP; }

Πηγή: opennet.ru

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