Μια ευπάθεια στο systemd-coredump που επιτρέπει σε κάποιον να προσδιορίσει τα περιεχόμενα μνήμης των προγραμμάτων suid

Εντοπίστηκε ένα θέμα ευπάθειας (CVE-2022-4415) στο στοιχείο systemd-coredump, το οποίο επεξεργάζεται τα αρχεία πυρήνα που δημιουργούνται μετά τη συντριβή διεργασιών, επιτρέποντας σε έναν μη προνομιούχο τοπικό χρήστη να προσδιορίσει τα περιεχόμενα μνήμης των προνομιούχων διεργασιών που εκτελούνται με τη σημαία ρίζας suid. Το ζήτημα της προεπιλεγμένης διαμόρφωσης έχει επιβεβαιωθεί στις διανομές openSUSE, Arch, Debian, Fedora και SLES.

Η ευπάθεια προκαλείται από την έλλειψη σωστής επεξεργασίας της παραμέτρου fs.suid_dumpable sysctl στο systemd-coredump, η οποία, όταν έχει οριστεί στην προεπιλεγμένη τιμή 2, επιτρέπει τη δημιουργία κεντρικών αποθεμάτων για διεργασίες με τη σημαία suid. Είναι κατανοητό ότι τα βασικά αρχεία των διεργασιών suid που γράφτηκαν από τον πυρήνα πρέπει να έχουν δικαιώματα πρόσβασης που να επιτρέπουν την ανάγνωση μόνο από τον χρήστη root. Το βοηθητικό πρόγραμμα systemd-coredump, το οποίο καλείται από τον πυρήνα για αποθήκευση αρχείων πυρήνα, αποθηκεύει το αρχείο πυρήνα κάτω από το αναγνωριστικό ρίζας, αλλά επιπλέον παρέχει πρόσβαση ανάγνωσης βάσει ACL στα βασικά αρχεία με βάση το αναγνωριστικό του κατόχου που ξεκίνησε αρχικά τη διαδικασία .

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

Για παράδειγμα, ένας χρήστης μπορεί να τρέξει το “/usr/bin/su” και σε άλλο τερματικό να τερματίσει την εκτέλεσή του με την εντολή “kill -s SIGSEGV `pidof su`”, μετά την οποία το systemd-coredump θα αποθηκεύσει το αρχείο πυρήνα στο /var /lib/systemd/ καταλόγου coredump, ορίζοντας ένα ACL για αυτόν που επιτρέπει την ανάγνωση από τον τρέχοντα χρήστη. Εφόσον το βοηθητικό πρόγραμμα suid 'su' διαβάζει τα περιεχόμενα του /etc/shadow στη μνήμη, ένας εισβολέας μπορεί να αποκτήσει πρόσβαση σε πληροφορίες σχετικά με τους κατακερματισμούς κωδικών πρόσβασης όλων των χρηστών στο σύστημα. Το βοηθητικό πρόγραμμα sudo δεν είναι επιρρεπές σε επίθεση, καθώς απαγορεύει τη δημιουργία βασικών αρχείων μέσω του ulimit.

Σύμφωνα με τους προγραμματιστές του systemd, η ευπάθεια εμφανίζεται ξεκινώντας από την έκδοση systemd 247 (Νοέμβριος 2020), αλλά σύμφωνα με τον ερευνητή που εντόπισε το πρόβλημα, επηρεάζεται και η έκδοση 246. Η ευπάθεια εμφανίζεται εάν το systemd έχει μεταγλωττιστεί με τη βιβλιοθήκη libacl (από προεπιλογή στο όλες οι δημοφιλείς διανομές). Η ενημέρωση κώδικα είναι προς το παρόν διαθέσιμη ως ενημερωμένη έκδοση κώδικα. Μπορείτε να παρακολουθείτε τις διορθώσεις στις διανομές στις ακόλουθες σελίδες: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Ως λύση ασφαλείας, μπορείτε να ορίσετε το sysctl fs.suid_dumpable σε 0, το οποίο απενεργοποιεί την αποστολή dumps στο πρόγραμμα χειρισμού systemd-coredump.

Πηγή: opennet.ru

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