Ευπάθεια στον πυρήνα του Linux που μπορεί να προκαλέσει κατάρρευση στέλνοντας ένα πακέτο UDP

Στον πυρήνα του Linux αναγνωρισθείς ευπάθεια (CVE-2019-11683), το οποίο σας επιτρέπει να προκαλέσετε εξ αποστάσεως άρνηση υπηρεσίας στέλνοντας ειδικά σχεδιασμένα πακέτα UDP (πακέτο θανάτου). Το πρόβλημα προκαλείται από ένα σφάλμα στον χειριστή udp_gro_receive_segment (net/ipv4/udp_offload.c) με την εφαρμογή της τεχνολογίας GRO (Generic Receive Offload) και μπορεί να οδηγήσει σε βλάβη στα περιεχόμενα των περιοχών μνήμης του πυρήνα κατά την επεξεργασία πακέτων UDP με μηδενική πλήρωση (άδειο ωφέλιμο φορτίο).

Το πρόβλημα επηρεάζει μόνο τον πυρήνα 5.0δεδομένου ότι η υποστήριξη GRO για υποδοχές UDP ήταν εφαρμόστηκε τον Νοέμβριο του περασμένου έτους και κατάφερε να μπει στην τελευταία έκδοση σταθερού πυρήνα. Η τεχνολογία GRO σάς επιτρέπει να επιταχύνετε την επεξεργασία ενός μεγάλου αριθμού εισερχόμενων πακέτων συγκεντρώνοντας πολλαπλά πακέτα σε μεγαλύτερα μπλοκ που δεν απαιτούν ξεχωριστή επεξεργασία κάθε πακέτου.
Για το TCP, το πρόβλημα δεν παρουσιάζεται, καθώς αυτό το πρωτόκολλο δεν υποστηρίζει τη συγκέντρωση πακέτων χωρίς ωφέλιμο φορτίο.

Η ευπάθεια έχει επιδιορθωθεί μέχρι στιγμής μόνο στη φόρμα κηλίδα, η διορθωτική ενημέρωση δεν έχει δημοσιευτεί ακόμη (η επιδιόρθωση της χθεσινής ενημέρωσης 5.0.11 Δεν περιλαμβάνονται). Από τα κιτ διανομής, ο πυρήνας 5.0 κατάφερε να συμπεριληφθεί Fedora 30, Ubuntu 19.04, Arch Linux, Gentoo και άλλες διανομές που ενημερώνονται συνεχώς. Debian, Ubuntu 18.10 και παλαιότερες εκδόσεις, RHEL/CentOS и SUSE/openSUSE το πρόβλημα δεν επηρεάζει.

Το πρόβλημα βρέθηκε ως αποτέλεσμα χρήση Αυτοματοποιημένο σύστημα δοκιμών fuzzing που δημιουργήθηκε από την Google syzbot και αναλυτής ΚΑΣΑΝ (KernelAddressSanitizer), με στόχο τον εντοπισμό σφαλμάτων κατά την εργασία με μνήμη και γεγονότων εσφαλμένης πρόσβασης στη μνήμη, όπως η πρόσβαση σε περιοχές ελεύθερης μνήμης και η τοποθέτηση κώδικα σε περιοχές μνήμης που δεν προορίζονται για τέτοιους χειρισμούς.

Πηγή: opennet.ru

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