Uscita della libreria di sistema Glibc 2.40

Dopo sei mesi di sviluppo, è stata pubblicata la versione della libreria GNU C Library (glibc) 2.40, che risponde pienamente ai requisiti degli standard ISO C11 e POSIX.1-2017. La nuova versione include correzioni da 68 sviluppatori.

Tra i miglioramenti implementati 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'utilizzo delle funzionalità proposte nello standard C23 (attualmente in Glibc sono implementate solo alcune funzionalità di C23). È possibile abilitare C23 anche durante la compilazione specificando in GCC le opzioni -std=c23, -std=gnu23, -std=c2x o -std=gnu2x.
  • È stata aggiunta l'impostazione "glibc.rtld.enable_secure", che consente di eseguire il programma come se avesse il flag di cambiamento dell'identificatore utente (setuid) durante i test.
  • Sul platform Linux, il file di intestazione epoll.h è stato aggiornato per supportare i nuovi ioctl e le strutture epoll introdotti nel kernel Linux 6.9.
  • La funzionalità per rilevare potenziali overflow del buffer e errori di sicurezza correlati durante l'esecuzione delle funzioni per la gestione delle stringhe e della memoria («_FORTIFY_SOURCE») è adattata per la compilazione di Glibc utilizzando il compilatore Clang.
  • Nella libreria delle 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 accelerare la scrittura di grandi set di dati nella funzione memset, è stata fornita la possibilità di disattivare l'uso di buffer temporanei. L'ottimizzazione si attiva tramite la configurazione «x86_memset_non_temporal_threshold».
  • I macro nel file di intestazione stdbit.h, che lavorano con vari tipi (type-generic), sono stati convertiti per utilizzare le funzioni incorporate __builtin_stdc_bit_ceil per supportare operandi con i tipi __int128 e _BitInt(N) con GCC 14.
  • I campi con contatore temporale epocale nelle strutture lastlog, utmp e utmpx sono stati convertiti dall'uso di un tipo intero a 32 bit firmato a un tipo intero senza segno, consentendo di estendere il tempo massimo indirizzabile dal contatore dal 2038 al 2106.
  • Vulnerabilità risolte:
    • CVE-2024-2961 — overflow del buffer durante la conversione di stringhe appositamente formattate in codifica ISO-2022-CN-EXT tramite la funzione iconv(). Nella pratica, questa vulnerabilità può essere sfruttata per attacchi remoti alle 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 — un errore nella gestione della cache netgroup può portare a un arresto anomalo del processo nscd a causa di un'impossibilità di allocare memoria.
    • CVE-2024-33602 — corruzione 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