Ευπάθεια στο xterm που οδηγεί σε εκτέλεση κώδικα κατά την επεξεργασία ορισμένων συμβολοσειρών

Έχει εντοπιστεί μια ευπάθεια (CVE-2022-45063) στον εξομοιωτή τερματικού xterm, η οποία επιτρέπει την εκτέλεση εντολών φλοιού όταν υποβάλλονται σε επεξεργασία ορισμένες ακολουθίες διαφυγής στο τερματικό. Για μια επίθεση στην απλούστερη περίπτωση, αρκεί να εμφανίσετε τα περιεχόμενα ενός ειδικά σχεδιασμένου αρχείου, για παράδειγμα, χρησιμοποιώντας το βοηθητικό πρόγραμμα cat, ή να επικολλήσετε μια γραμμή από το πρόχειρο. printf "\e]50;i\$(touch /tmp/hack-like-its-1999)\a\e]50;?\a" > cve-2022-45063 cat cve-2022-45063

Το πρόβλημα προκαλείται από ένα σφάλμα στο χειρισμό της ακολουθίας διαφυγής κώδικα 50 που χρησιμοποιείται για τον ορισμό ή την ανάκτηση επιλογών γραμματοσειράς. Εάν η γραμματοσειρά που ζητήθηκε δεν υπάρχει, η λειτουργία επιστρέφει το όνομα γραμματοσειράς που καθορίζεται στο αίτημα. Δεν μπορείτε να εισαγάγετε απευθείας χαρακτήρες ελέγχου στο όνομα, αλλά η συμβολοσειρά που επιστρέφεται μπορεί να τερματιστεί με την ακολουθία "^G", η οποία στο zsh, όταν η λειτουργία επεξεργασίας γραμμής σε στυλ vi είναι ενεργή, προκαλεί την εκτέλεση μιας λειτουργίας επέκτασης λίστας, η οποία μπορεί χρησιμοποιείται για την εκτέλεση εντολών χωρίς να πατήσετε ρητά το πλήκτρο Enter.

Για να εκμεταλλευτεί επιτυχώς την ευπάθεια, ο χρήστης πρέπει να χρησιμοποιήσει το κέλυφος εντολών Zsh με τον επεξεργαστή γραμμής εντολών (vi-cmd-mode) ρυθμισμένο σε λειτουργία «vi», η οποία συνήθως δεν χρησιμοποιείται από προεπιλογή στις διανομές. Το πρόβλημα επίσης δεν εμφανίζεται όταν έχουν οριστεί οι ρυθμίσεις xterm allowWindowOps=false ή allowFontOps=false. Για παράδειγμα, το allowFontOps=false έχει οριστεί στα OpenBSD, Debian και RHEL, αλλά δεν εφαρμόζεται από προεπιλογή στο Arch Linux.

Κρίνοντας από τη λίστα των αλλαγών και τη δήλωση του ερευνητή που εντόπισε το πρόβλημα, η ευπάθεια διορθώθηκε στην έκδοση xterm 375, αλλά σύμφωνα με άλλες πηγές, η ευπάθεια συνεχίζει να εμφανίζεται στο xterm 375 από το Arch Linux. Μπορείτε να παρακολουθείτε τη δημοσίευση διορθώσεων ανά διανομές σε αυτές τις σελίδες: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD.

Πηγή: opennet.ru

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