Έχουν δημοσιευτεί πληροφορίες σχετικά με μια ευπάθεια στο λειτουργικό σύστημα Qubes, το οποίο χρησιμοποιεί έναν υπερεπόπτη για αυστηρή απομόνωση εφαρμογών και στοιχείων λειτουργικού συστήματος (κάθε κατηγορία εφαρμογής και υπηρεσίας συστήματος εκτελείται σε ξεχωριστές εικονικές μηχανές). Εάν ένας εισβολέας παραβιάσει μία από τις εικονικές μηχανές, η ευπάθεια επιτρέπει την παράκαμψη της απομόνωσης, την εκτέλεση αυθαίρετων εντολών στο περιβάλλον κεντρικού υπολογιστή (Dom0) και την απόκτηση ελέγχου ολόκληρου του λειτουργικού συστήματος. Το πρόβλημα εκδηλώνεται όταν ένας χρήστης χρησιμοποιεί το βοηθητικό πρόγραμμα "qvm-copy-to-vm" για να αντιγράψει ένα αρχείο από το περιβάλλον κεντρικού υπολογιστή σε μια εικονική μηχανή που ελέγχεται από εισβολέα. Η ευπάθεια διορθώνεται στην ενημέρωση 4.3.22 του πακέτου qubes-core-dom0-linux.
Το πρόβλημα υπάρχει στο βοηθητικό πρόγραμμα qvm-copy-to-vm και προκαλείται από ακατάλληλο χειρισμό σφαλμάτων που επιστρέφονται κατά την πρόσβαση. εικονική μηχανήΗ ευπάθεια οφειλόταν στο γεγονός ότι το βοηθητικό πρόγραμμα qvm-copy-to-vm εκκίνησε το kdialog ή τα προγράμματα zenity για να εμφανίσει πληροφορίες σφάλματος, χρησιμοποιώντας τη συνάρτηση system() και αντικαθιστώντας πληροφορίες σχετικά με το αρχείο που αντιγράφηκε ανεπιτυχώς ως μία από τις επιλογές γραμμής εντολών. Ο καθαρισμός του ονόματος αρχείου περιορίστηκε στην αφαίρεση χαρακτήρων που δεν είναι ASCII και διπλών εισαγωγικών, χωρίς έλεγχο για ειδικούς χαρακτήρες που ερμηνεύονται από το κέλυφος, όπως "`" και "$".
Αφού ολοκληρωθεί η αντιγραφή αρχείων από το σύστημα κεντρικού υπολογιστή, ο χειριστής εικονικής μηχανής στέλνει πίσω μια επιβεβαίωση της λειτουργίας, η οποία, μεταξύ άλλων, περιλαμβάνει το όνομα του τελευταίου αρχείου που ελήφθη. Η επίθεση συνίσταται στην επιστροφή ενός κωδικού σφάλματος αντί για επιβεβαίωση και στον καθορισμό ενός ονόματος αρχείου με ειδικούς χαρακτήρες που υποβάλλονται σε επεξεργασία από τον διερμηνέα εντολών για το αρχείο που απέτυχε να αντιγραφεί. Μετά τη λήψη ενός σφάλματος, ο χειριστής κεντρικού υπολογιστή χρησιμοποιεί την εντολή system() για να ξεκινήσει ένα παράθυρο διαλόγου με το κείμενο σφάλματος, μεταβιβάζοντας το όνομα αρχείου που επέστρεψε ο εισβολέας στη γραμμή εντολών (για παράδειγμα, ο καθορισμός του "file`id`" θα εκτελέσει την εντολή id στον κεντρικό υπολογιστή).
Πηγή: opennet.ru
