Sortie de la bibliothèque système Glibc 2.32

Après six mois de développement publiée publication de la bibliothèque système GNU C Library (glibc) 2.32, qui respecte intégralement les exigences des normes ISO C11 et POSIX.1-2017. La nouvelle version inclut des correctifs de 67 développeurs.

Dans Glibc 2.32, les fonctionnalités mises en œuvre incluent améliorations on peut noter :

  • Ajout de la prise en charge des processeurs Synopsys ARC HS (ARCv2 ISA). Pour que le port fonctionne, il nécessite au minimum binutils 2.32, gcc 8.3 et le noyau Linux 5.1. Trois variantes ABI sont prises en charge : arc-linux-gnu, arc-linux-gnuhf et arceb-linux-gnu (big-endian);
  • Chargement des modules d'audit spécifiés dans les sections DT_AUDIT et
    DT_DEPAUDIT de l'exécutable.
  • Pour l'architecture powerpc64le, prise en charge du type IEEE128 long double, activée lors de la compilation avec l'option « -mabi=ieeolongdouble ».
  • Certaines API sont annotées à l'aide de l'attribut GCC 'access', ce qui permet de générer des avertissements de meilleure qualité lors de la compilation avec GCC 10 concernant les débordements possibles de tampons et d'autres violations de plage.
  • Pour les systèmes Linux, les fonctions pthread_attr_setsigmask_np et
    pthread_attr_getsigmask_np ont été mises en œuvre, permettant à l'application de spécifier un masque de signal pour les threads créés avec pthread_create.
  • Les données de codages, les informations sur les types de caractères et les tables de translittération ont été mises à jour pour prendre en charge la spécification Unicode 13.0.0;
  • Ajout d'un nouveau fichier d'en-tête <sys/single_threaded.h>, définissant la variable __libc_single_threaded, qui peut être utilisée dans les applications pour des optimisations mono-thread.
  • Ajout des fonctions sigabbrev_np et sigdescr_np, renvoyant le nom abrégé et la description d'un signal (par exemple, « HUP » et « Hangup » pour SIGHUP).
  • Ajout des fonctions strerrorname_np et strerrordesc_np, renvoyant le nom et la description d'une erreur (par exemple, « EINVAL » et « Argument invalide » pour EINVAL).
  • Pour la plateforme ARM64, ajout du drapeau « —enable-standard-branch-protection » (ou -mbranch-protection=standard dans GCC), activant le mécanisme ARMv8.5-BTI (Branch Target Indicator) pour protéger l'exécution d'ensembles d'instructions sur lesquels ne devraient pas être effectués des sauts lors du branchement. Le blocage des sauts vers des sections de code arbitraires est mis en œuvre pour contrer la création de gadgets dans les exploits utilisant des techniques de programmation orientée retour (ROP — Return-Oriented Programming, où l'attaquant ne tente pas de placer son code en mémoire, mais utilise déjà des morceaux d'instructions machine se terminant par une instruction de retour, formant une chaîne d'appels pour obtenir la fonctionnalité souhaitée).
  • Une grande nettoyage des fonctionnalités obsolètes a été effectué, y compris la suppression des options «—enable-obsolete-rpc» et «—enable-obsolete-nsl», ainsi que de l'en-tête . Les fonctions sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore et sigset, ainsi que les tableaux sys_siglist, _sys_siglist et sys_sigabbrev, et les symboles sys_errlist, _sys_errlist, sys_nerr et _sys_nerr, ont été déclarés obsolètes, tout comme le module NSS hesiod.
  • Par défaut, ldconfig est désormais configuré pour utiliser le nouveau format ld.so.cache, qui est pris en charge par glibc depuis presque 20 ans.
  • Vulnérabilités corrigées :
    • CVE-2016-10228 — une boucle infinie dans l'outil iconv se manifeste lors de l'exécution avec l'option «-c», lors du traitement de données multi-octets incorrectes.
    • CVE-2020-10029 — corruption de la pile lors de l'appel de fonctions trigonométriques avec un argument pseudo-nul.
    • CVE-2020-1752 — accès à une zone mémoire après sa libération (use-after-free) dans la fonction glob lors de l'expansion d'une référence au répertoire personnel («~user») dans les chemins.
    • CVE-2020-6096 — traitement incorrect sur la plateforme ARMv7 des valeurs négatives du paramètre dans memcpy() et memmove(), définissant la taille de la zone à copier. Permet de exécuter du code lors du traitement de données correctement formatées dans les fonctions memcpy() et memmove(). Il est remarquable que le problème est resté non corrigé pendant presque deux mois après la divulgation publique et cinq mois après l'avis aux développeurs de Glibc.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster