Έκδοση βιβλιοθήκης συστήματος Glibc 2.32

Μετά από έξι μήνες ανάπτυξης δημοσιεύθηκε έκδοση βιβλιοθήκης συστήματος Βιβλιοθήκη GNU C (glibc) 2.32, το οποίο συμμορφώνεται πλήρως με τις απαιτήσεις των ISO C11 και POSIX.1-2017. Η νέα έκδοση περιλαμβάνει διορθώσεις από 67 προγραμματιστές.

Υλοποιήθηκε στο Glibc 2.32 βελτιώσεις μπορείτε να σημειώσετε:

  • Προστέθηκε υποστήριξη για επεξεργαστές Synopsys ARC HS (ARCv2 ISA). Η θύρα απαιτεί τουλάχιστον binutils 2.32, gcc 8.3 και Linux kernel 5.1 για να εκτελεστεί. Υποστηρίζονται τρεις παραλλαγές ABI: arc-linux-gnu, arc-linux-gnuhf και arceb-linux-gnu (big-endian).
  • Φόρτωση ενοτήτων ελέγχου που καθορίζονται στις ενότητες DT_AUDIT και
    DT_DEPAUDIT του εκτελέσιμου αρχείου.

  • Για την αρχιτεκτονική powerpc64le, υλοποιείται υποστήριξη για τον μακροχρόνιο διπλό τύπο IEEE128, ο οποίος είναι ενεργοποιημένος κατά την κατασκευή με την επιλογή «-mabi=ieeelongdouble».
  • Ορισμένα API σχολιάζονται με το χαρακτηριστικό "πρόσβαση" του GCC, το οποίο επιτρέπει τη δημιουργία καλύτερων προειδοποιήσεων όταν μεταγλωττίζονται στο GCC 10 για τον εντοπισμό πιθανών υπερχείλισης buffer και άλλα σενάρια εκτός ορίων.
  • Για συστήματα Linux, οι συναρτήσεις pthread_attr_setsigmask_np και
    pthread_attr_getsigmask_np, τα οποία δίνουν στην εφαρμογή τη δυνατότητα να καθορίσει μια μάσκα σήματος για νήματα που δημιουργούνται χρησιμοποιώντας το pthread_create.

  • Τα δεδομένα κωδικοποίησης, οι πληροφορίες τύπου χαρακτήρων και οι πίνακες μεταγραφής έχουν ενημερωθεί για να υποστηρίζουν την προδιαγραφή Unicode 13.0.0.
  • Προστέθηκε νέο αρχείο κεφαλίδας , το οποίο ορίζει τη μεταβλητή __libc_single_threaded, η οποία μπορεί να χρησιμοποιηθεί σε εφαρμογές για βελτιστοποιήσεις ενός νήματος.
  • Προστέθηκαν συναρτήσεις sigabbrev_np και sigdescr_np που επιστρέφουν το συντομευμένο όνομα και την περιγραφή του σήματος (για παράδειγμα, "HUP" και "Hangup" για SIGHUP).
  • Προστέθηκαν συναρτήσεις strerrorname_np και strerrordesc_np που επιστρέφουν το όνομα και την περιγραφή του σφάλματος (για παράδειγμα, "EINVAL" και "Μη έγκυρο όρισμα" για EINVAL).
  • Για την πλατφόρμα ARM64, έχει προστεθεί μια σημαία "--enable-standard-branch-protection" (ή -mbranch-protection=standard στο GCC), η οποία επιτρέπει στον μηχανισμό ARMv8.5-BTI (Branch Target Indicator) να προστατεύει το εκτέλεση συνόλων εντολών που δεν πρέπει να εκτελεστούν.μεταβάσεις διακλάδωσης. Ο αποκλεισμός των μεταβάσεων σε αυθαίρετα τμήματα κώδικα υλοποιείται για να αποτραπεί η δημιουργία gadget σε εκμεταλλεύσεις που χρησιμοποιούν τεχνικές προγραμματισμού προσανατολισμένες στην επιστροφή (ROP - Return-Oriented Programming· ο εισβολέας δεν προσπαθεί να τοποθετήσει τον κώδικά του στη μνήμη, αλλά λειτουργεί σε ήδη υπάρχοντα κομμάτια εντολών μηχανής που τελειώνουν με μια εντολή ελέγχου επιστροφής, από την οποία δημιουργείται μια αλυσίδα κλήσεων για την επίτευξη της επιθυμητής λειτουργικότητας).
  • Έχει πραγματοποιηθεί μια σημαντική εκκαθάριση παλιών λειτουργιών, συμπεριλαμβανομένης της κατάργησης των επιλογών "--enable-obsolete-rpc" και "--enable-obsolete-nsl", αρχείο κεφαλίδας . Οι συναρτήσεις sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore και sigset, οι πίνακες sys_siglist, _sys_siglist και sys_sigabbrev, τα σύμβολα sys_errlist, _sys_errlist, sys_nerr και _sys_nerr έχουν ενσωματωθεί N και η αρθρωτή μονάδα _sys_nerr.
  • Το ldconfig έχει μετακινηθεί από προεπιλογή για να χρησιμοποιήσει τη νέα μορφή ld.so.cache, η οποία υποστηρίζεται στο glibc για σχεδόν 20 χρόνια.
  • Διορθώθηκαν ευπάθειες:
    • CVE-2016-10228 – Ένας βρόχος στο iconv utility εμφανίζεται όταν εκτελείται με την επιλογή “-c” κατά την επεξεργασία εσφαλμένων δεδομένων πολλών byte.
    • CVE-2020-10029 Στοίβαξη καταστροφής κατά την κλήση τριγωνομετρικών συναρτήσεων με ένα ψευδο-μηδενικό όρισμα.
    • CVE-2020-1752 - Μια πρόσβαση στη μνήμη μετά τη χρήση στη λειτουργία glob κατά την επέκταση μιας αναφοράς στον αρχικό κατάλογο ("~user") σε διαδρομές.
    • CVE-2020-6096 – Εσφαλμένος χειρισμός στην πλατφόρμα ARMv7 των αρνητικών τιμών παραμέτρων στο memcpy() και στο memmove(), που καθορίζει το μέγεθος της αντιγραμμένης περιοχής. Επιτρέπει οργανώστε την εκτέλεση κώδικα κατά την επεξεργασία δεδομένων που έχουν διαμορφωθεί με συγκεκριμένο τρόπο στις συναρτήσεις memcpy() και memmove(). Είναι σημαντικό ότι το πρόβλημα παρέμεινε δεν έχει διορθωθεί για σχεδόν δύο μήνες από τότε που οι πληροφορίες αποκαλύφθηκαν δημόσια και πέντε μήνες από τότε που ειδοποιήθηκαν οι προγραμματιστές του Glibc.

Πηγή: opennet.ru

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