Glibc 2.34 arriva con correzioni di vulnerabilità, nuove funzioni per Linux e altro

recentemente è stato annunciato il rilascio della nuova versione di Glibc 2.34 che arriva dopo sei mesi di sviluppo e in cui sono state apportate diverse modifiche piuttosto importanti, tra cui l'inclusione delle librerie libpthread, libdl, libutil e libanl, oltre a varie correzioni di bug di cui una causava dei blocchi.

Per coloro che non hanno familiarità con Glibc, dovrebbero sapere di cosa si tratta una libreria GNU C, comunemente nota come glibc è la libreria runtime C standard di GNU. Sui sistemi in cui viene utilizzato, questa libreria C che fornisce e definisce chiamate di sistema e altre funzioni di base, è utilizzato da quasi tutti i programmi. 

Principali novità di Glibc 2.34

In questa nuova versione di Glibc 2.34 che viene presentata libpthread, libdl, libutil e libanl sono stati integrati nella libreria principale, l'utilizzo delle sue funzionalità nelle applicazioni non richiede più il binding con i flag -lpthread, -ldl, -lutil e -lanl.

Inoltre, è stato detto che sono stati fatti preparativi per integrare libreolv in libc, con cui l'integrazione consentirà un processo di aggiornamento di glibc più fluido e semplificherà l'implementazione del runtime e sono state fornite anche librerie stub per la compatibilità con le applicazioni create con le versioni precedenti di glibc.

Da parte dei cambiamenti focalizzati su Linux Glibc 2.34 mette in evidenza il aggiunta la possibilità di utilizzare il tipo time_t a 64 bit nelle configurazioni che tradizionalmente usava il tipo time_t 32 bit. Questa funzione è disponibile solo su sistemi con kernel 5.1 e versioni successive.

Un altro cambiamento specifico per Linux è il implementazione della funzione execveat, che consente di eseguire un file eseguibile da un descrittore di file aperto. La nuova funzione viene utilizzata anche nell'implementazione della chiamata fexecve, che non richiede il montaggio dello pseudo-filesystem /proc all'avvio.

È stata aggiunta anche la funzione close_range() che è disponibile per le versioni Linux 5.9 e superiore e che può essere utilizzato per consentire a un processo di chiudere una gamma completa di descrittori di file open allo stesso tempo, implementa anche il parametro glibc.pthread.stack_cache_size, che può essere utilizzato per regolare la dimensione della cache dello stack pthread.

Inoltre, aggiunta _Funzione fork, una sostituzione per la funzione forcella che soddisfa i requisiti "async-signal-safe", il che significa che può essere chiamato in sicurezza dai gestori del segnale. Durante l'esecuzione di _Fork, viene formato un ambiente minimo, sufficiente per chiamare funzioni in gestori di segnale come raise ed execve, senza invocare funzionalità che possono modificare i lock o lo stato interno.

Per la parte delle vulnerabilità risolte in Glibc 2.34 si menzionano le seguenti:

CVE-2021-27645: Il processo nscd (demone di cache del server dei nomi) non è riuscito a causa di una doppia chiamata alla funzione gratuita durante l'elaborazione di richieste di gruppi di rete appositamente predisposte.

CVE-2021-33574: accesso a un'area di memoria già liberata (use-after-free) nella funzione mq_notify quando si utilizza il tipo di notifica SIGEV_THREAD con un attributo thread per il quale è impostata una maschera di associazione CPU alternativa. Il problema può causare un arresto anomalo, ma non sono escluse altre opzioni di attacco.

CVE-2021-35942: L'overflow della dimensione dei parametri nella funzione wordexp potrebbe causare l'arresto anomalo dell'applicazione.

Delle altre modifiche che risaltano:

  • La funzione timespec_getres, definita nella bozza dello standard ISO C2X, è stata aggiunta e la funzione timespec_get è stata aumentata con funzionalità simili alla funzione POSIX clock_getres.
  • Nel file gconv-modules è rimasto solo un set minimo di moduli gconv principali e il resto è stato spostato in un file gconv-modules-extra.conf aggiuntivo situato nella directory gconv-modules.d.
  • L'uso di collegamenti simbolici per collegare oggetti condivisi installabili alla versione Glibc è stato rimosso. Questi oggetti sono ora installati così come sono (ad es. libc.so.6 è ora un file anziché un collegamento a libc-2.34.so).
  • Su Linux, funzioni come shm_open e sem_open ora richiedono un filesystem per la memoria condivisa montata sul punto di montaggio /dev/shm.

Infine se sei interessato a saperne di più di questa nuova versione, puoi controllare il file dettagli nel seguente collegamento.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.