Το Glibc 2.35 έρχεται με βελτιώσεις, διορθώσεις σφαλμάτων και πολλά άλλα

Μετά από έξι μήνες ανάπτυξης ανακοινώθηκε η κυκλοφορία της νέας έκδοσης του Glibc 2.35 στο οποίο περιλαμβάνει διορθώσεις από 66 προγραμματιστές και από τις βελτιώσεις που εφαρμόστηκαν μπορούμε να διαπιστώσουμε ότι προστέθηκε υποστήριξη για την τοπική ρύθμιση "C.UTF-8", η οποία περιλαμβάνει συλλογές για όλους τους κωδικούς Unicode, αλλά περιορίζεται στη χρήση περιοχών ASCII στις συναρτήσεις fnmatch, regexec και regcomp για αποθήκευση χώρος.

Η τοπική ρύθμιση είναι περίπου 400 KB, εκ των οποίων τα 346 KB είναι δεδομένα LC_CTYPE για Unicode και πρέπει να εγκατασταθούν ξεχωριστά (όχι ενσωματωμένα στο Glibc). Τα δεδομένα κωδικοποίησης, οι πληροφορίες τύπου χαρακτήρων και οι πίνακες μεταγραφής έχουν ενημερωθεί για να υποστηρίζουν την προδιαγραφή Unicode 14.0.0.

Μια άλλη αλλαγή που ξεχωρίζει είναι ότι Υ υλοποίηση συναρτήσεων και μακροεντολών που στρογγυλεύουν το αποτέλεσμα σε στενότερο τύπο, Εκτός από την υλοποίηση συναρτήσεων και μακροεντολών για την εύρεση του ελάχιστου και του μέγιστου αριθμού κινητής υποδιαστολής των τύπων float, long double, _FloatN και _FloatNx, που περιγράφονται στην προδιαγραφή IEEE 754-2019.

για λειτουργίες exp10, οι αντίστοιχες μακροεντολές προστίθενται στο αρχείο κεφαλίδας, οι οποίοι δεν δεσμεύονται σε συγκεκριμένους τύπους, καθώς και η μακροεντολή _PRINTF_NAN_LEN_MAX προστέθηκε σε , που προτείνεται στο προσχέδιο προτύπου ISO C2X.

Το σύστημα δυναμικής σύνδεσης εφαρμόζει έναν νέο αλγόριθμο ταξινόμησης DSO με χρήση αναζήτησης βάθους (DFS) για την αντιμετώπιση προβλημάτων απόδοσης κατά τον χειρισμό εξαρτήσεων βρόχου. Για να επιλέξετε τον αλγόριθμο ταξινόμησης DSO, προτείνεται η παράμετρος glibc.rtld.dynamic_sort, η οποία μπορεί να οριστεί σε "1" για να επιστρέψει στον προηγούμενο αλγόριθμο.

Εκτός από αυτό πρόσθεσε υποστήριξη για μια νέα συνάρτηση '__memcmpeq' στο ABI, το οποίο χρησιμοποιείται από τους μεταγλωττιστές για τη βελτιστοποίηση της χρήσης του 'memcmp' όταν η τιμή επιστροφής αυτής της συνάρτησης χρησιμοποιείται μόνο για τον έλεγχο της κατάστασης ολοκλήρωσης μιας λειτουργίας.

ο υποστήριξη για αυτόματη εγγραφή νημάτων χρησιμοποιώντας την κλήση συστήματος rseq (ακολουθίες με δυνατότητα επανεκκίνησης) που παρέχεται από τον πυρήνα Linux 4.18. Η κλήση συστήματος rseq επιτρέπει την οργάνωση της συνεχούς εκτέλεσης μιας ομάδας εντολών που δεν διακόπτεται και δεσμεύει το αποτέλεσμα με την τελευταία δήλωση στην ομάδα. Ουσιαστικά, παρέχει μια διευκόλυνση για πολύ γρήγορη ατομική εκτέλεση λειτουργιών οι οποίες, εάν διακοπούν από άλλο νήμα, καθαρίζονται και δοκιμάζονται ξανά.

Από την άλλη, παρέχει προεπιλεγμένη μεταγλώττιση όλων των εκτελέσιμων αρχείων των ενσωματωμένων προγραμμάτων και μιας δοκιμαστικής σουίτας σε λειτουργία PIE (εκτελέσιμο ανεξάρτητο από τη θέση).

Για να απενεργοποιήσετε αυτήν τη συμπεριφορά, παρέχεται η επιλογή “–disable-default-pie”., καθώς και για το Linux, πρόσθεσε μια ρύθμιση glibc.malloc.hugetlb για να αλλάξει την εφαρμογή malloc ώστε να χρησιμοποιεί την κλήση συστήματος madvise με τη σημαία MADV_HUGEPAGE για mmap και sbrk ή να χρησιμοποιεί απευθείας σελίδες μεγάλης μνήμης καθορίζοντας τη σημαία MAP_HUGETLB στις κλήσεις mmap.

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

Θα πρέπει επίσης να σημειωθεί ότι ορισμένα τρωτά σημεία επιδιορθώθηκαν σε αυτή τη νέα έκδοση:

  • CVE-2022-23218, CVE-2022-23219: Μια υπερχείλιση buffer στις συναρτήσεις svcunix_create και clnt_create που προκαλείται από την αντιγραφή των περιεχομένων μιας παραμέτρου ονόματος αρχείου στη στοίβα χωρίς έλεγχο του μεγέθους των αντιγραμμένων δεδομένων. Για εφαρμογές που έχουν κατασκευαστεί χωρίς προστασία στοίβας και χρησιμοποιούν το πρωτόκολλο "unix", η ευπάθεια θα μπορούσε να οδηγήσει σε εκτέλεση κακόβουλου κώδικα κατά την επεξεργασία πολύ μεγάλων ονομάτων αρχείων.
  • CVE-2021-3998: μια ευπάθεια στη συνάρτηση realpath() που προκαλείται από την επιστροφή μιας λανθασμένης τιμής υπό ορισμένες συνθήκες που περιέχει ακαθάριστα υπολειμματικά δεδομένα από τη στοίβα. Για το πρόγραμμα SUID-root fusermount, η ευπάθεια μπορεί να χρησιμοποιηθεί για τη λήψη ευαίσθητων πληροφοριών από τη μνήμη διεργασιών, για παράδειγμα, για τη λήψη πληροφοριών δείκτη.
  • CVE-2021-3999: υπερχείλιση buffer ενός byte στη συνάρτηση getcwd(). Το πρόβλημα προκαλείται από ένα σφάλμα που υπάρχει από το 1995. Για να καλέσετε μια υπερχείλιση, σε ξεχωριστό χώρο ονομάτων σημείου προσάρτησης, απλώς καλέστε την chdir() στον κατάλογο "/".

Τελικά Εάν ενδιαφέρεστε να μάθετε περισσότερα γι 'αυτό, μπορείτε να ελέγξετε τις λεπτομέρειες στο παρακάτω σύνδεσμο.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.