nedavno najavljeno je izdavanje nove verzije Glibca 2.34 koja dolazi nakon šest mjeseci razvoja i u kojoj je izvršeno nekoliko prilično važnih promjena, među kojima su uključivanje knjižnica libpthread, libdl, libutil i libanl, kao i različiti ispravci programskih pogreš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 knjižnica za vrijeme izvođenja. Na sustavima gdje se koristi, ova C knjižnica to pruža i definira sistemske pozive i druge osnovne funkcije, koriste ga gotovo svi programi.
Glavne nove značajke Glibca 2.34
U ovoj novoj verziji Glibca 2.34 koja je predstavljena libpthread, libdl, libutil i libanl integrirani su u glavnu knjižnicu, korištenje njihove funkcionalnosti u aplikacijama više ne zahtijeva njihovo povezivanje sa oznakama -lpthread, -ldl, -lutil i -lanl.
Nadalje, spominje se da izvršene su pripreme za integraciju libreolva u libc, s kojim integracija omogućit će glatkiji postupak ažuriranja glibca to će pojednostaviti implementaciju vremena izvođenja, a knjižnice stubova su također osigurane radi kompatibilnosti s aplikacijama izgrađenim s ranijim verzijama glibca.
Dio promjena usmjeren je na Linux Glibc 2.34 ističe dodana mogućnost korištenja 64 -bitnog tipa time_t u konfiguracijama koji je tradicionalno koristio tip time_t 32 bit. Ova je značajka dostupna samo na sustavima s kernelom 5.1 i novijim.
Još jedna specifična promjena za Linux je implementacija funkcije execveatDa omogućuje izvršavanje izvršne datoteke iz otvorenog deskriptora datoteke. Nova funkcija također se 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, osim toga implementiran je parametar glibc.pthread.stack_cache_size, koji se može koristiti za prilagodbu veličine predmemorije pthread stoga.
Štoviše, dodana funkcija _Fork, zamjena za funkciju viljuška koji zadovoljava zahtjeve "async-signal-safe", odnosno može se sigurno pozvati od rukovatelja signalom. Tijekom izvođenja _Fork -a, formira se minimalno okruženje, dovoljno za pozivanje funkcija u rukovateljima signala, poput podizanja i izvršavanja, bez dozivanja karakteristika koje mogu promijeniti zaključavanja ili unutarnje stanje.
Za dio ranjivosti popravljenih u Glibc 2.34 spominju se sljedeće:
CVE-2021-27645: Proces nscd (demon predmemorije 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 za povezivanje CPU-a. Problem može uzrokovati pad sustava, ali druge opcije napada nisu isključene.
CVE-2021-35942: Preljev veličine parametra u funkciji wordexp mogao 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 povećana sposobnostima 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.
- Uklonjeno je korištenje simboličkih veza za povezivanje instaliranih dijeljenih objekata s verzijom Glibc. Ti su objekti sada instalirani takvi kakvi jesu (na primjer, libc.so.6 je sada datoteka, a ne veza na 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 vas zanima više o tome ove nove verzije, možete provjeriti pojedinosti na sljedećem linku.