Ευπάθεια στο υποσύστημα netfilter που επιτρέπει την εκτέλεση κώδικα σε επίπεδο πυρήνα Linux

Εντοπίστηκε μια ευπάθεια (CVE-2022-25636) στο Netfilter, ένα υποσύστημα πυρήνα Linux που χρησιμοποιείται για το φιλτράρισμα και την τροποποίηση πακέτων δικτύου, το οποίο θα μπορούσε να επιτρέψει την εκτέλεση κώδικα σε επίπεδο πυρήνα. Ανακοινώθηκε ένα παράδειγμα εκμετάλλευσης που επιτρέπει σε έναν τοπικό χρήστη να αυξήσει τα προνόμιά του στο Ubuntu 21.10 με τον μηχανισμό ασφαλείας KASLR απενεργοποιημένο. Το πρόβλημα εκδηλώνεται ξεκινώντας από τον πυρήνα 5.4. Η ενημέρωση κώδικα είναι ακόμα διαθέσιμη ως ενημέρωση κώδικα (δεν έχουν δημιουργηθεί διορθωτικές εκδόσεις πυρήνα). Μπορείτε να παρακολουθήσετε τη δημοσίευση ενημερώσεων πακέτων σε διανομές σε αυτές τις σελίδες: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux.

Η ευπάθεια προκαλείται από ένα σφάλμα στον υπολογισμό του μεγέθους του πίνακα flow->rule->action.entries στη συνάρτηση nft_fwd_dup_netdev_offload (που ορίζεται στο αρχείο net/netfilter/nf_dup_netdev.c), το οποίο μπορεί να οδηγήσει σε δεδομένα ελεγχόμενα από τον εισβολέα γραμμένο σε μια περιοχή μνήμης εκτός των ορίων του εκχωρημένου buffer. Το σφάλμα εκδηλώνεται κατά τον ορισμό των κανόνων "dup" και "fwd" σε αλυσίδες για τις οποίες χρησιμοποιείται η επιτάχυνση υλικού της επεξεργασίας πακέτων (offload). Δεδομένου ότι η υπερχείλιση συμβαίνει πριν από τη δημιουργία του κανόνα φίλτρου πακέτων και τον έλεγχο για υποστήριξη εκφόρτωσης, η ευπάθεια ισχύει επίσης για συσκευές δικτύου που δεν υποστηρίζουν επιτάχυνση υλικού, όπως μια διεπαφή επαναφοράς βρόχου.

Σημειώνεται ότι το πρόβλημα είναι αρκετά απλό στην εκμετάλλευση, καθώς οι τιμές που υπερβαίνουν το buffer μπορούν να αντικαταστήσουν τον δείκτη στη δομή net_device και τα δεδομένα σχετικά με την αντικατασταθείσα τιμή επιστρέφονται στον χώρο χρήστη, γεγονός που καθιστά δυνατή την εύρεση του διευθύνσεις στη μνήμη που είναι απαραίτητες για την πραγματοποίηση της επίθεσης. Η εκμετάλλευση της ευπάθειας απαιτεί τη δημιουργία ορισμένων κανόνων σε nftables, κάτι που είναι δυνατό μόνο με τα δικαιώματα CAP_NET_ADMIN, τα οποία μπορούν να αποκτηθούν από έναν μη προνομιούχο χρήστη σε ξεχωριστό χώρο ονομάτων δικτύου (χώροι ονομάτων δικτύου). Η ευπάθεια θα μπορούσε επίσης να χρησιμοποιηθεί για επίθεση σε συστήματα απομόνωσης κοντέινερ.

Πηγή: opennet.ru

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