Glibc 2.35 arriba amb millores, correccions d'errors i més

 

Després de sis mesos de desenvolupament es va donar a conèixer el llançament de la nova versió de Glibc 2.35 en la qual s'hi inclou correccions de 66 desenvolupadors i de les millores implementades podrem trobar que es va afegir suport per a la configuració regional «C.UTF-8», que inclou intercalacions per a tots els codis Unicode, però es limita a l'ús de rangs ASCII a les funcions fnmatch, regexec i regcomp per estalviar espai.

La configuració regional és d'aproximadament 400 KB, dels quals 346 KB són dades LC_CTYPE per a Unicode, i s'han d'instal·lar per separat (no integrats a Glibc). Les dades de codificació, la informació del tipus de caràcter i les taules de transliteració han estat actualitzades per admetre l'especificació Unicode 14.0.0.

Un altre dels canvis que es destaca és que i implementen funcions i macros que arrodoneixen el resultat a un tipus més estret, a més que implementen funcions i macros per trobar el mínim i el màxim de números de punt flotant de tipus float, long double, _FloatN i _FloatNx, descrits a l'especificació IEEE 754-2019.

Per a les funcions exp10, les macros corresponents s'afegeixen al fitxer de capçalera, que no estan vinculades a tipus específics, a més que s'ha afegit la macro _PRINTF_NAN_LEN_MAX a , proposada a l'esborrany de l'estàndard ISO C2X.

El sistema de vinculació dinàmica implementa un nou algorisme de classificació DSO que utilitza la cerca en profunditat (DFS) per abordar els problemes de rendiment en manejar dependències en bucle. Per seleccionar l'algorisme de classificació DSO, es proposa el paràmetre glibc.rtld.dynamic_sort, que es pot establir a «1» per tornar a l'algorisme anterior.

A més d'això s'ha afegit el suport per a una nova funció '__memcmpeq' a l'ABI, que els compiladors utilitzen per optimitzar l'ús de 'memcmp' quan el valor de retorn d'aquesta funció només es fa servir per verificar l'estat de finalització d'una operació.

També es destaca el suport per al registre automàtic de subprocessos utilitzant la trucada del sistema rseq (seqüències reiniciables) proporcionada des del nucli de Linux 4.18. La trucada al sistema rseq permet organitzar l'execució continuada d'un grup d'instruccions que no s'interromp i confirma el resultat amb la darrera instrucció del grup. Essencialment, proporciona una facilitat per a l'execució atòmica molt ràpida d'operacions que, si són interrompudes per un altre subprocés, es netegen i es tornen a intentar.

D'altra banda, es proporciona la compilació per defecte de tots els fitxers executables dels programes incorporats i un conjunt de prova en mode PIE (executable independent de la posició).

Per deshabilitar aquest comportament, es proporciona l'opció “–disable-default-pie”, a més de que per a Linux, es va afegir una configuració glibc.malloc.hugetlb per canviar la implementació de malloc per utilitzar la trucada al sistema madvise amb l'indicador MADV_HUGEPAGE per a mmap i sbrk, o utilitzar directament pàgines de memòria gran especificant l'indicador MAP_HUGETLB a trucades mmap.

En el primer cas, es pot aconseguir un augment en el rendiment si s'utilitzen les Pàgines enormes transparents en mode madvise, i en el segon cas, podeu utilitzar les pàgines grans reservades pel sistema (Pàgines enormes).

També cal destacar que es van solucionar algunes vulnerabilitats en aquesta nova versió:

  • CVE-2022-23218, CVE-2022-23219: un desbordament de memòria intermèdia a les funcions svcunix_create i clnt_create causat per copiar el contingut d'un paràmetre de nom de fitxer a la pila sense verificar la mida de les dades copiades. Per a les aplicacions creades sense protecció de pila i que utilitzen el protocol unix, la vulnerabilitat podria conduir a l'execució de codi maliciós en processar noms de fitxer molt llargs.
  • CVE-2021-3998: una vulnerabilitat en la funció realpath() causada per tornar un valor incorrecte sota certes condicions que contenen dades residuals sense netejar de la pila. Per al programa SUID-root fusermount, la vulnerabilitat es pot fer servir per obtenir informació confidencial de la memòria del procés, per exemple, per obtenir informació sobre punters.
  • CVE-2021-3999: desbordament de memòria intermèdia d'un sol byte a la funció getcwd(). El problema és causat per un error present des de 1995. Per cridar a un desbordament, en un espai de noms de punt de muntatge separat, només cal trucar a chdir() per al directori «/».

Finalment si estàs interessat en poder conèixer més a l'respecte, pots consultar els detalls al següent enllaç.


El contingut d'l'article s'adhereix als nostres principis de ètica editorial. Per notificar un error punxa aquí.

Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà.

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.