Rilascio della libreria di sistema Glibc 2.40

Dopo sei mesi di sviluppo, è stata pubblicata la versione della libreria di sistema GNU C Library (glibc) 2.40, che soddisfa completamente i requisiti degli standard ISO C11 e POSIX.1-2017. Il nuovo rilascio include correzioni da parte di 68 sviluppatori.

Tra i miglioramenti realizzati in Glibc 2.40 si possono notare:

  • Nel file di intestazione math.h sono state aggiunte nuove funzioni esponenziali e logaritmiche definite nello standard C23: exp2m1, exp10m1.log2p1, log10p1 e logp1. Le funzioni sono disponibili in versioni per i tipi float, double, long double, _FloatN e _FloatNx.
  • È stato aggiunto il macro _ISOC23_SOURCE, che definisce l’uso delle funzionalità proposte nello standard C23 (attualmente in Glibc è implementata solo una parte delle funzionalità C23). L'uso di C23 può essere attivato anche in fase di compilazione specificando nel GCC le opzioni -std=c23, -std=gnu23, -std=c2x o -std=gnu2x.
  • È stata aggiunta un'impostazione "glibc.rtld.enable_secure" che consente, durante i test, di eseguire un programma come se avesse il flag di cambio dell'identificatore utente (setuid).
  • Sulla piattaforma Linux, il file di intestazione epoll.h è stato aggiornato per supportare nuovi ioctl e strutture epoll introdotte nel kernel Linux 6.9.
  • La funzionalità per rilevare possibili overflow di buffer e errori di sicurezza durante l'esecuzione delle funzioni di gestione delle stringhe e della memoria ("_FORTIFY_SOURCE") è stata adattata per la compilazione di Glibc utilizzando il compilatore Clang.
  • Nella libreria con funzioni matematiche vettoriali (libmvec) sono state proposte implementazioni delle funzioni acosh, asinh, atanh, cbrt, cosh, erf, erfc, hypot, pow, sinh e tanh per l'architettura Aarch64.
  • Nei sistemi x86, per velocizzare la scrittura di grandi set di dati nelle funzioni memset, è stata introdotta la possibilità di disattivare l'uso di buffer temporanei. L'ottimizzazione può essere attivata tramite l'impostazione "x86_memset_non_temporal_threshold".
  • I macro nel file di intestazione stdbit.h, che operano con diversi tipi (type-generic), sono stati convertiti, con l'uso di GCC 14, per utilizzare le funzioni incorporate __builtin_stdc_bit_ceil per supportare gli operandi con i tipi __int128 e _BitInt(N).
  • I campi con contatore temporale epocale nelle strutture lastlog, utmp e utmpx sono stati convertiti da un tipo intero firmato a un tipo intero senza segno, consentendo di estendere il massimo tempo addressable dal 2038 al 2106.
  • Sono state risolte le vulnerabilità:
    • CVE-2024-2961 — overflow del buffer durante la conversione di stringhe appositamente formattate nella codifica ISO-2022-CN-EXT con la funzione iconv(). Nella pratica, la vulnerabilità può essere sfruttata per un attacco remoto su applicazioni PHP, portando all'esecuzione di codice.
    • CVE-2024-33599 — overflow del buffer nel codice per la gestione della cache netgroup nel processo nscd (Name Service Cache Daemon). La vulnerabilità può essere sfruttata inviando una richiesta appositamente formattata dal client.
    • CVE-2024-33600 — dereferenziazione di un puntatore nullo nel processo nscd, che può portare a un arresto anomalo durante l'elaborazione di determinate richieste.
    • CVE-2024-33601 — errore nella gestione della cache netgroup che può causare un arresto anomalo del processo nscd a causa di un fallimento nell'allocazione della memoria.
    • CVE-2024-33602 — danneggiamento della memoria durante la gestione della cache netgroup nel processo nscd.

    Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster