Nedavno najavljeno je izdavanje nove verzije Glibca 2.34 koja dolazi nakon šest mjeseci razvoja i u kojoj je napravljeno nekoliko prilično važnih promjena, među kojima su uključivanje biblioteka libpthread, libdl, libutil i libanl, kao i različiti ispravci grešaka od kojih je jedan uzrokovao blokade.
Za one kojima Glibc nije poznat, trebali bi znati o čemu se radi biblioteka GNU C, općenito poznat kao glibc standardna je GNU C biblioteka za vrijeme izvođenja. Na sistemima gdje se koristi, ova C biblioteka to pruža i definira sistemske pozive i druge osnovne funkcije, koriste ga gotovo svi programi.
Glavne nove funkcije Glibca 2.34
U ovoj novoj verziji Glibca 2.34 koja je predstavljena libpthread, libdl, libutil i libanl su integrirani u glavnu biblioteku, korištenje njihove funkcionalnosti u aplikacijama više ne zahtijeva njihovo povezivanje sa oznakama -lpthread, -ldl, -lutil i -lanl.
Nadalje, to se spominje izvršene su pripreme za integraciju libreolva u libc, sa kojim se vrši integracija omogućit će glatkiji proces ažuriranja glibc -a to će pojednostaviti implementaciju u vrijeme izvođenja, a biblioteke stub su također osigurane radi kompatibilnosti s aplikacijama izgrađenim sa ranijim verzijama glibc -a.
Dio promjena fokusiran je na Linux Glibc 2.34 ističe dodatna mogućnost korištenja 64 -bitnog tipa time_t u konfiguracijama koji je tradicionalno koristio tip time_t 32 bit. Ova funkcija je dostupna samo na sistemima sa kernelom 5.1 i novijim.
Još jedna specifična promjena za Linux je implementacija funkcije execveatque omogućava pokretanje izvršne datoteke iz otvorenog deskriptora datoteke. Nova funkcija se također koristi u implementaciji poziva fexecve, koji ne zahtijeva da se / proc pseudo-datotečni sustav montira pri pokretanju.
Dodana je i funkcija close_range () koji je dostupan za Linux verzije 5.9 i više i što može biti koristi se za omogućavanje procesa da zatvori cijeli niz deskriptora datoteka otvoriti u isto vrijeme, dodatno je implementiran parametar glibc.pthread.stack_cache_size, koji se može koristiti za podešavanje veličine predmemorije pthread steka.
Sa druge strane, dodana funkcija _Fork, zamjena za funkciju viljuška koji ispunjava zahtjeve "async-signal-safe", odnosno može se sigurno pozvati od rukovatelja signalom. Tokom izvođenja _Fork, formira se minimalno okruženje, dovoljno za pozivanje funkcija u rukovateljima signala poput podizanja i izvršavanja, bez pozivanja funkcija koje mogu promijeniti zaključavanja ili unutrašnje stanje.
Za dio ranjivosti popravljenih u Glibc 2.34, spominju se sljedeće:
CVE-2021-27645: Proces nscd (demon keširanja poslužitelja imena) nije uspio zbog dvostrukog poziva besplatne funkcije tijekom obrade posebno izrađenih zahtjeva mrežne grupe.
CVE-2021-33574: pristup memorijskom području koje je već oslobođeno (use-after-free) u funkciji mq_notify kada se koristi tip obavijesti SIGEV_THREAD s atributom niti za koji je postavljena alternativna maska vezivanja CPU-a. Problem može uzrokovati pad, ali druge opcije napada nisu isključene.
CVE-2021-35942: Prekoračenje veličine parametra u funkciji wordexp moglo bi srušiti aplikaciju.
Od ostalih promjena koji se ističu:
- Dodana je funkcija timespec_getres, definirana u nacrtu ISO C2X standarda, a funkcija timespec_get je povećana mogućnostima sličnim POSIX clock_getres funkciji.
- U datoteci gconv-modules ostao je samo minimalni skup glavnih gconv modula, a ostali su premješteni u dodatnu datoteku gconv-modules-extra.conf koja se nalazi u direktoriju gconv-modules.d.
- Uklonjena je upotreba simboličkih veza za povezivanje instaliranih dijeljenih objekata s verzijom Glibc. Ovi objekti su sada instalirani takvi kakvi jesu (npr. Libc.so.6 je sada datoteka, a ne veza do libc-2.34.so).
- Na Linuxu, funkcije poput shm_open i sem_open sada zahtijevaju datotečni sustav za dijeljenu memoriju montiranu na / dev / shm točki montiranja.
Konačno ako ste zainteresirani da saznate više o tome ove nove verzije, možete provjeriti detalje na sljedećem linku.