Versió de la biblioteca del sistema Glibc 2.34

Després de sis mesos de desenvolupament, s'ha llançat la biblioteca del sistema GNU C Library (glibc) 2.34, que compleix totalment els requisits dels estàndards ISO C11 i POSIX.1-2017. La nova versió inclou correccions de 66 desenvolupadors.

Algunes de les millores implementades a Glibc 2.34 inclouen:

  • Les biblioteques libpthread, libdl, libutil i libanl estan integrades a l'estructura principal de la libc, l'ús de la seva funcionalitat a les aplicacions ja no requereix enllaçar mitjançant els senyaladors -lpthread, -ldl, -lutil i -lanl. S'han fet els preparatius per a la integració de libresolv a libc. La integració permetrà un procés d'actualització de glibc més fluid i simplificarà la implementació en temps d'execució. Es proporcionen biblioteques stub per proporcionar compatibilitat amb aplicacions creades amb versions anteriors de glibc. A causa de l'expansió del nombre d'estructures i funcions proporcionades a glibc, poden sorgir problemes en aplicacions en què hi ha una intersecció de noms amb biblioteques no utilitzades anteriorment libpthread, libdl, libutil, libresolv i libanl.
  • Proporciona la possibilitat d'utilitzar un tipus time_t de 64 bits en configuracions que tradicionalment utilitzaven un tipus time_t de 32 bits. En aquestes configuracions, per exemple en sistemes x86, el valor predeterminat encara és time_t de 32 bits, però aquest comportament ara es pot canviar mitjançant la macro "_TIME_BITS". Aquesta característica només està disponible en sistemes amb almenys la versió 5.1 del nucli de Linux.
  • S'ha afegit la funció _Fork, un reemplaçament de la funció fork que compleix els requisits de "async-signal-safe", és a dir. permetent trucades segures dels gestors de senyals. Durant l'execució de _Fork, es crea un entorn mínim que és suficient per cridar funcions en controladors de senyal com augmentar i execve sense implicar característiques que puguin canviar els bloquejos o l'estat intern. La trucada _Fork es definirà en una versió futura de l'estàndard POSIX, però de moment s'inclou com a extensió GNU.
  • Per a la plataforma Linux, s'ha implementat la funció execveat, que permet executar un fitxer executable des d'un descriptor de fitxer obert. La nova funció també s'utilitza en la implementació de la crida fexecve, que no requereix un pseudo-FS /proc muntat a l'inici.
  • S'ha afegit la funció timespec_getres, definida a l'esborrany de l'estàndard ISO C2X, que amplia la funció timespec_get amb capacitats similars a la funció POSIX clock_getres.
  • S'ha afegit la funció close_range(), que permet que un procés tanqui tot un rang de descriptors de fitxers oberts alhora. La funció està disponible en sistemes amb un nucli Linux d'almenys la versió 5.9.
  • S'han afegit les funcions closefrom i posix_spawn_file_actions_addclosefrom_np, que us permeten tancar tots els descriptors de fitxers alhora, el nombre dels quals és superior o igual al valor especificat.
  • En els modes "_DYNAMIC_STACK_SIZE_SOURCE" i "_GNU_SOURCE", PTHREAD_STACK_MIN, MINSIGSTKSZ i SIGSTKSZ ja no són constants, la qual cosa permet suportar conjunts de registres de mida dinàmica com els que es proporcionen a l'extensió ARM SVE.
  • L'enllaçador implementa l'opció "--list-diagnostics" per mostrar informació relacionada amb les operacions de definició IFUNC (funció indirecta) i la selecció del subdirectori glibc-hwcaps.
  • S'ha implementat la macro __STDC_WANT_IEC_60559_EXT__, dissenyada per comprovar la presència de funcions definides a l'annex F de l'especificació ISO C2X.
  • Per als sistemes powerpc64*, s'ha implementat l'opció "--disable-scv", que us permet crear glibc sense suportar la instrucció scv.
  • Només queda el conjunt mínim de mòduls gconv bàsics al fitxer gconv-modules, i la resta es mou a un fitxer addicional gconv-modules-extra.conf, situat al directori gconv-modules.d.
  • Per a la plataforma Linux, s'implementa el paràmetre glibc.pthread.stack_cache_size, que es pot utilitzar per configurar la mida de la memòria cau de la pila de pthread.
  • La funció inet_neta del fitxer de capçalera ha quedat obsoleta , així com diverses funcions poc utilitzades de (dn_count_labels, fp_nquery, fp_query, fp_resstat, hostalias, loc_aton, loc_ntoa, p_cdname, p_cdnname, p_class, p_fqname, p_fqnname, p_option, p_query, p_rcode, p_time, put_type_server, res_server, res_long ry, res_queriesmatch, res_randomid, sym_ntop , sym_ntos, sym_ston) i (ns_datetosecs, ns_format_ttl, ns_makecanon, ns_parse_ttl, ns_samedomain, ns_samename, ns_sprintrr, ns_sprintrrf, ns_subdomain). En lloc d'aquestes funcions, es recomana utilitzar biblioteques separades per treballar amb DNS.
  • Les funcions pthread_mutex_consistent_np, thread_mutexattr_getrobust_np, pthread_mutexattr_setrobust_np i pthread_yield s'han obsolet i, en canvi, s'han d'utilitzar pthread_mutex_consistent, thread_mutexattr_getrobust, hread_mutexattr_sedtro_bustieldr.
  • S'ha deixat d'utilitzar enllaços simbòlics per vincular objectes compartits instal·lats a la versió de Glibc. Aquests objectes ara s'instal·len tal com estan (per exemple, libc.so.6 és ara un fitxer en lloc d'un enllaç a libc-2.34.so).
  • Per defecte, les funcions de depuració de malloc estan desactivades, com ara MALLOC_CHECK_ (glibc.malloc.check), mtrace() i mcheck(), que es mouen a una biblioteca independent libc_malloc_debug.so, a la qual també tenen les funcions obsoletes malloc_get_state i malloc_set_state. estat mogut.
  • A Linux, funcions com shm_open i sem_open ara requereixen que el dispositiu /dev/shm funcioni.
  • Vulnerabilitats solucionades:
    • CVE-2021-27645: el procés nscd (dimoni de memòria cau del servidor de noms) es bloqueja a causa d'una doble crida a la funció gratuïta quan es processen sol·licituds de grups de xarxa especialment dissenyades.
    • CVE-2021-33574: accés a una àrea de memòria ja alliberada (use-after-free) a la funció mq_notify quan s'utilitza el tipus de notificació SIGEV_THREAD amb un atribut de fil per al qual s'estableix una màscara d'afinitat de CPU alternativa. El problema podria provocar un accident, però no es poden descartar altres opcions d'atac.
    • CVE-2021-35942: un desbordament de la mida del paràmetre a la funció wordexp pot provocar que l'aplicació es bloquegi.

Font: opennet.ru

Afegeix comentari