Nedávno bolo oznámené vydanie novej verzie Glibc 2.34 ktorý prichádza po šiestich mesiacoch vývoja a v ktorom bolo vykonaných niekoľko celkom dôležitých zmien, medzi ktoré patrí zahrnutie knižníc libpthread, libdl, libutil a libanl, ako aj rôzne opravy chýb, z ktorých jedna spôsobila zablokovanie.
Tí, ktorí nepoznajú Glibc, by mali vedieť, čo to je knižnica GNU C, bežne známa ako glibc je štandardná runtime knižnica GNU C. V systémoch, kde sa používa, táto C knižnica, ktorá poskytuje a definuje systémové volania a ďalšie základné funkcie, používajú ho takmer všetky programy.
Hlavné nové funkcie Glibc 2.34
V tejto novej verzii Glibc 2.34, ktorá je predstavená libpthread, libdl, libutil a libanl boli integrované do hlavnej knižnice, používanie jeho funkcií v aplikáciách už nevyžaduje ich viazanie príznakmi -lpthread, -ldl, -lutil a -lanl.
Ďalej sa uvádza, že boli urobené prípravy na integráciu libreolv do libc, s ktorou integrácia umožní plynulejší proces aktualizácie glibc a zjednoduší to implementáciu za behu a boli poskytnuté aj knižnice útržkov kvôli kompatibilite s aplikáciami vytvorenými so staršími verziami glibc.
Zmeny sa zamerali na Linux Glibc 2.34 zdôrazňuje pridaná možnosť používať 64 -bitový typ time_t v konfiguráciách ktorý tradične používal typ time_t 32 bitov. Táto funkcia je k dispozícii iba v systémoch s jadrom 5.1 a vyšším.
Ďalšou špecifickou zmenou pre Linux je implementácia funkcie execveatŽe umožňuje spustiť spustiteľný súbor z otvoreného deskriptora súborov. Nová funkcia sa používa aj pri implementácii volania fexecve, ktoré nevyžaduje pri spustení pripojenie pseudo-súborového systému / proc.
Bola pridaná aj funkcia close_range (), ktorý je k dispozícii pre Linux verzie 5.9 a vyššie a ktoré môžu byť slúži na umožnenie procesu zatvoriť celý rad deskriptorov súborov otvorené súčasne, navyše je implementovaný parameter glibc.pthread.stack_cache_size, ktorý je možné použiť na úpravu veľkosti vyrovnávacej pamäte zásobníka pthread.
Okrem toho, pridaná funkcia _Fork, náhrada pre funkciu vidlica ktorý spĺňa požiadavky „async-signal-safe“, to znamená, že ho možno bezpečne zavolať z obsluh signálov. Počas vykonávania _Forku sa vytvorí minimálne prostredie, dostatočné na vyvolanie funkcií v obsluhách signálov, ako je zvýšenie a spustenie, bez vyvolávania funkcií, ktoré môžu meniť zámky alebo vnútorný stav.
Pokiaľ ide o časť zraniteľností opravených v Glibc 2.34, sú uvedené tieto:
CVE-2021-27645: Proces nscd (démon ukladania do vyrovnávacej pamäte servera názvov) zlyhal z dôvodu dvojitého volania bezplatnej funkcie pri spracovávaní špeciálne vytvorených požiadaviek na sieťové skupiny.
CVE-2021-33574: prístup do oblasti pamäte, ktorá je už uvoľnená (use-after-free) vo funkcii mq_notify pri použití typu oznámenia SIGEV_THREAD s atribútom vlákna, pre ktorý je nastavená alternatívna maska väzby CPU. Problém môže spôsobiť zlyhanie, ale nie sú vylúčené ani ďalšie možnosti útoku.
CVE-2021-35942: Pretečenie veľkosti parametra vo funkcii wordexp môže spôsobiť zlyhanie aplikácie.
Z ďalších zmien ktoré vynikajú:
- Bola pridaná funkcia timespec_getres, definovaná v návrhu normy ISO C2X, a funkcia timespec_get bola rozšírená o možnosti podobné funkcii POSIX clock_getres.
- V súbore gconv-modules zostala iba minimálna sada hlavných modulov gconv a ostatné boli presunuté do dodatočného súboru gconv-modules-extra.conf umiestneného v adresári gconv-modules.d.
- Použitie symbolických odkazov na prepojenie inštalovateľných zdieľaných objektov s verziou Glibc bolo odstránené. Tieto objekty sú teraz nainštalované tak, ako sú (napr. Libc.so.6 je teraz súbor a nie odkaz na libc-2.34.so).
- V systéme Linux funkcie ako shm_open a sem_open teraz vyžadujú súborový systém pre zdieľanú pamäť pripojený k bodu pripojenia / dev / shm.
Konečne ak máte záujem dozvedieť sa o tom viac tejto novej verzie môžete skontrolovať podrobnosti v nasledujúcom odkaze.