Ευπάθεια στο sudo που επιτρέπει την κλιμάκωση των προνομίων κατά τη χρήση συγκεκριμένων κανόνων

Στο βοηθητικό Sudo, που χρησιμοποιείται για την οργάνωση της εκτέλεσης εντολών για λογαριασμό άλλων χρηστών, αναγνωρισθείς τρωτό (CVE-2019-14287), το οποίο σας επιτρέπει να εκτελείτε εντολές με δικαιώματα root, εάν υπάρχουν κανόνες στις ρυθμίσεις sudoers στους οποίους στην ενότητα ελέγχου αναγνωριστικού χρήστη μετά την επιτρεπόμενη λέξη-κλειδί "ALL" υπάρχει ρητή απαγόρευση εκτέλεσης με δικαιώματα root ("... (ALL, !root) ..." ). Η ευπάθεια δεν εμφανίζεται στις προεπιλεγμένες διαμορφώσεις στις διανομές.

Εάν το sudoers έχει έγκυρους, αλλά εξαιρετικά σπάνιους στην πράξη, κανόνες που επιτρέπουν την εκτέλεση μιας συγκεκριμένης εντολής στο UID οποιουδήποτε χρήστη εκτός του root, ένας εισβολέας που έχει την εξουσία να εκτελέσει αυτήν την εντολή μπορεί να παρακάμψει τον καθορισμένο περιορισμό και να εκτελέσει την εντολή με δικαιώματα ρίζας. Για να παρακάμψετε τον περιορισμό, απλώς προσπαθήστε να εκτελέσετε την εντολή που καθορίζεται στις ρυθμίσεις με UID "-1" ή "4294967295", που θα οδηγήσει στην εκτέλεσή της με UID 0.

Για παράδειγμα, εάν υπάρχει ένας κανόνας στις ρυθμίσεις που δίνει σε οποιονδήποτε χρήστη το δικαίωμα να εκτελέσει το πρόγραμμα /usr/bin/id σε οποιοδήποτε UID:

myhost ALL = (ALL, !root) /usr/bin/id

ή μια επιλογή που επιτρέπει την εκτέλεση μόνο για έναν συγκεκριμένο χρήστη bob:

myhost bob = (ALL, !root) /usr/bin/id

Ο χρήστης μπορεί να εκτελέσει το "sudo -u '#-1' id" και το βοηθητικό πρόγραμμα /usr/bin/id θα ξεκινήσει ως root, παρά τη ρητή απαγόρευση στις ρυθμίσεις. Το πρόβλημα προκαλείται από την παράβλεψη των ειδικών τιμών "-1" ή "4294967295", οι οποίες δεν οδηγούν σε αλλαγή στο UID, αλλά επειδή το ίδιο το sudo εκτελείται ήδη ως root, χωρίς αλλαγή του UID, η εντολή στόχος είναι επίσης κυκλοφόρησε με δικαιώματα root.

Στις διανομές SUSE και openSUSE, χωρίς να προσδιορίζεται το "NOPASSWD" στον κανόνα, υπάρχει μια ευπάθεια μη εκμεταλλεύσιμο, καθώς στα sudoers η λειτουργία "Defaults targetpw" είναι ενεργοποιημένη από προεπιλογή, η οποία ελέγχει το UID σε σχέση με τη βάση δεδομένων κωδικών πρόσβασης και σας ζητά να εισαγάγετε τον κωδικό πρόσβασης του χρήστη-στόχου. Για τέτοια συστήματα, μια επίθεση μπορεί να πραγματοποιηθεί μόνο εάν υπάρχουν κανόνες της φόρμας:

myhost ALL = (ALL, !root) NOPASSWD: /usr/bin/id

Το πρόβλημα διορθώθηκε στην έκδοση Sudo 1.8.28. Η επιδιόρθωση είναι επίσης διαθέσιμη στη φόρμα κηλίδα. Στα κιτ διανομής, η ευπάθεια έχει ήδη διορθωθεί Debian, Arch Linux, SUSE/openSUSE, Ubuntu, Gentoo и FreeBSD. Τη στιγμή της γραφής, το πρόβλημα παραμένει άλυτο RHEL и Μαλακό καπέλλο. Η ευπάθεια εντοπίστηκε από ερευνητές ασφαλείας της Apple.

Πηγή: opennet.ru

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