Ερευνητές προειδοποιούν για ευπάθεια αντικατάστασης αυθαίρετου αρχείου «Dirty Pipe» του πυρήνα Linux

Ερευνητές προειδοποιούν για ευπάθεια αντικατάστασης αυθαίρετου αρχείου «Dirty Pipe» του πυρήνα Linux

Ερευνητές προειδοποιούν για ευπάθεια αντικατάστασης αυθαίρετου αρχείου «Dirty Pipe» του πυρήνα Linux

Οι διανομές Linux βρίσκονται στη διαδικασία έκδοσης ενημερώσεων κώδικα για την αντιμετώπιση μιας ευπάθειας ασφαλείας που αποκαλύφθηκε πρόσφατα στον πυρήνα, η οποία θα μπορούσε να επιτρέψει σε έναν εισβολέα να αντικαταστήσει αυθαίρετα δεδομένα σε αρχεία μόνο για ανάγνωση και να επιτρέψει την πλήρη εξαγορά των επηρεαζόμενων συστημάτων.

Ονομάστηκε "Dirty Pipe" (CVE-2022-0847, βαθμολογία CVSS: 7,8) από τον προγραμματιστή λογισμικού IONOS Max Kellermann, το ελάττωμα "οδηγεί σε κλιμάκωση των προνομίων επειδή οι μη προνομιούχες διεργασίες μπορούν να εισάγουν κώδικα σε διεργασίες root".

Ο Kellermann είπε ότι το σφάλμα ανακαλύφθηκε μετά από διερεύνηση ενός ζητήματος υποστήριξης που έθεσε ένας από τους πελάτες του cloud και του παρόχου φιλοξενίας που αφορούσε μια περίπτωση "έκπληξης είδους διαφθοράς" που επηρεάζει τα αρχεία καταγραφής πρόσβασης διακομιστή ιστού.

Το ελάττωμα του πυρήνα του Linux λέγεται ότι υπήρχε από την έκδοση 5.8, με την ευπάθεια να μοιράζεται ομοιότητες με αυτή του Dirty Cow (CVE-2016-5195), η οποία ήρθε στο φως τον Οκτώβριο του 2016.

"Βρέθηκε ένα ελάττωμα στον τρόπο με τον οποίο το μέλος "flag" της νέας δομής buffer σωλήνων δεν είχε την κατάλληλη αρχικοποίηση στις λειτουργίες copy_page_to_iter_pipe και push_pipe στον πυρήνα του Linux και επομένως θα μπορούσε να έχει stale values", εξήγησε η Red Hat σε μια συμβουλευτική.

"Ένας μη προνομιούχος τοπικός χρήστης θα μπορούσε να χρησιμοποιήσει αυτό το ελάττωμα για να γράψει σε σελίδες στην κρυφή μνήμη σελίδων που υποστηρίζονται από αρχεία μόνο για ανάγνωση και ως εκ τούτου να κλιμακώσει τα προνόμιά του στο σύστημα", πρόσθεσε.

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

Η εκμετάλλευση της αδυναμίας απαιτεί την εκτέλεση των ακόλουθων βημάτων: Δημιουργήστε ένα pipe, γεμίστε το με αυθαίρετα δεδομένα, αποστραγγίστε το, συνδέστε τα δεδομένα από το αρχείο στόχου μόνο για ανάγνωση και γράψτε αυθαίρετα δεδομένα στο pipe, περιγράφει ο Kellermann σε ένα Proof of Concept (PoC) που επιδεικνύει το ελάττωμα.

Η ευπάθεια είναι υψηλού κινδύνου καθώς επιτρέπει σε έναν εισβολέα να εκτελέσει μια σειρά από κακόβουλες ενέργειες στο σύστημα, συμπεριλαμβανομένης της παραβίασης ευαίσθητων αρχείων όπως το /etc/passwd για την αφαίρεση του κωδικού πρόσβασης ενός χρήστη root, την προσθήκη κλειδιών SSH για απομακρυσμένη πρόσβαση, ακόμη και την εκτέλεση αυθαίρετων δυαδικών αρχείων με τα υψηλότερα προνόμια.

Μια άλλη επιβλαβής ενέργεια που ενεργοποιήθηκε από το Dirty Pipe περιλαμβάνει τη δυνατότητα τροποποίησης αρχείων σε εικόνες κοντέινερ, υπό την προϋπόθεση ότι ένας κακόβουλος χρήστης έχει πρόσβαση σε ένα μόνο κοντέινερ στον κεντρικό υπολογιστή.

"Εάν έχουν αυτήν την πρόσβαση και η έκδοση του πυρήνα είναι ευάλωτη, μπορούν να τροποποιήσουν οποιαδήποτε αρχεία από την εικόνα που χρησιμοποιήθηκε για τη δημιουργία του κοντέινερ στο οποίο έχουν πρόσβαση ή τυχόν αρχεία που είναι προσαρτημένα για ανάγνωση μόνο από τον υποκείμενο κεντρικό υπολογιστή", είπε ο Rory McCune της Aqua Security σε μια αναφορά.

«Για να γίνει πιο ενδιαφέρουσα αυτή η ευπάθεια, όχι μόνο λειτουργεί χωρίς δικαιώματα εγγραφής, αλλά λειτουργεί επίσης με αμετάβλητα αρχεία, σε στιγμιότυπα btrfs μόνο για ανάγνωση και σε βάσεις μόνο για ανάγνωση (συμπεριλαμβανομένων των στηριγμάτων CD-ROM)», είπε ο ερευνητής. "Αυτό συμβαίνει επειδή η προσωρινή μνήμη σελίδας είναι πάντα εγγράψιμη (από τον πυρήνα) και η εγγραφή σε έναν σωλήνα δεν ελέγχει ποτέ κανένα δικαίωμα."

«Για να γίνει πιο ενδιαφέρουσα αυτή η ευπάθεια, όχι μόνο λειτουργεί χωρίς δικαιώματα εγγραφής, αλλά λειτουργεί επίσης με αμετάβλητα αρχεία, σε στιγμιότυπα btrfs και σε βάσεις μόνο για ανάγνωση (συμπεριλαμβανομένων των στηριγμάτων CD-ROM)», είπε ο ερευνητής. "Αυτό συμβαίνει επειδή η προσωρινή μνήμη σελίδας είναι πάντα εγγράψιμη (από τον πυρήνα) και η εγγραφή σε ένα pipe δεν ελέγχει ποτέ κανένα δικαίωμα."

Το ζήτημα επιδιορθώθηκε στις εκδόσεις Linux 5.16.11, 5.15.25 και 5.10.102 στις 23 Φεβρουαρίου 2022, τρεις ημέρες μετά την αναφορά του στην ομάδα ασφαλείας του πυρήνα Linux. Η Google, από την πλευρά της, έχει συγχωνεύσει τις διορθώσεις στον πυρήνα Android στις 24 Φεβρουαρίου 2022.

Δεδομένης της ευκολίας με την οποία μπορεί να εκμεταλλευτεί το ελάττωμα ασφαλείας και την απελευθέρωση του εκμεταλλεύματος PoC, συνιστάται στους χρήστες να ενημερώνουν αμέσως τους διακομιστές Linux και να εφαρμόζουν τις ενημερώσεις κώδικα για άλλες διανομές μόλις είναι διαθέσιμες.