nylig udgivelsen af den nye version af Glibc 2.34 blev annonceret som kommer efter seks måneders udvikling, og hvor der er foretaget flere ganske vigtige ændringer, blandt hvilke inkluderingen af libpthread-, libdl-, libutil- og libanl -bibliotekerne samt forskellige fejlrettelser, hvoraf en af dem forårsagede blokeringer.
For dem, der ikke kender Glibc, bør de vide, hvad det er et GNU C -bibliotek, almindeligvis kendt som glibc er standard GNU C runtime -biblioteket. På systemer, hvor det bruges, dette C -bibliotek, der leverer og definerer systemopkald og andre grundlæggende funktioner, det bruges af næsten alle programmer.
Vigtigste nye funktioner i Glibc 2.34
I denne nye version af Glibc 2.34, der præsenteres libpthread, libdl, libutil og libanl er blevet integreret i hovedbiblioteket, brug af dets funktionalitet i applikationer kræver ikke længere at binde dem med flag -lpthread, -ldl, -lutil og -lanl.
Desuden nævnes det der er blevet forberedt på at integrere libreolv i libc, som integrationen tillader en jævnere glibc -opdateringsproces og det vil forenkle implementering af runtime, og stubbiblioteker er også blevet leveret til kompatibilitet med applikationer bygget med tidligere versioner af glibc.
Fra ændringernes side fokuserede på Linux Glibc 2.34 fremhæver tilføjet mulighed for at bruge 64 bit time_t type i konfigs der traditionelt brugte typen time_t 32 bit. Denne funktion er kun tilgængelig på systemer med kernel 5.1 og højere.
En anden specifik ændring for Linux er implementering af execveat -funktionenDet gør det muligt at køre en eksekverbar fil fra en åben filbeskrivelse. Den nye funktion bruges også til implementering af fexecve-opkaldet, hvilket ikke kræver, at / proc pseudo-filsystemet monteres ved opstart.
Funktionen blev også tilføjet close_range (), som er tilgængelig til Linux -version 5.9 og højere, og som kan være bruges til at tillade en proces at lukke en lang række filbeskrivelser åbent på samme tid, implementerer den også parameteren glibc.pthread.stack_cache_size, som kan bruges til at justere størrelsen på pthread stack -cachen.
Endvidere tilføjet _Fork -funktion, en erstatning til funktion gaffel som opfylder kravene til "async-signal-safe", hvilket betyder, at det kan kaldes sikkert fra signalbehandlere. Under _Fork -udførelse dannes et minimalt miljø, nok til at kalde funktioner i signalhåndterere som hæve og eksekvere uden at påberåbe funktioner, der kan ændre låse eller intern tilstand.
For den del af sårbarhederne, der er rettet i Glibc 2.34, nævnes følgende:
CVE-2021-27645: Nscd -processen (navneserver -caching -dæmon) mislykkedes på grund af et dobbeltopkald til gratisfunktionen under behandling af specielt udformede netværksgruppeanmodninger.
CVE-2021-33574: adgang til et hukommelsesområde, der allerede er frigjort (brug efter-fri) i mq_notify-funktionen, når du bruger meddelelsestypen SIGEV_THREAD med en trådattribut, for hvilken der er indstillet en alternativ CPU-bindingsmaske. Problemet kan forårsage et nedbrud, men andre angrebsmuligheder er ikke udelukket.
CVE-2021-35942: Parameterstørrelsesoverløb i wordexp -funktionen kan gå ned på applikationen.
Af de andre ændringer der skiller sig ud:
- Funktionen timespec_getres, defineret i udkastet til ISO C2X -standarden, er blevet tilføjet, og timespec_get -funktionen er blevet forøget med funktioner, der ligner funktionen POSIX clock_getres.
- I gconv-moduler-filen var der kun et minimalt sæt hovedgconv-moduler tilbage, og resten blev flyttet til en ekstra gconv-modules-extra.conf-fil i mappen gconv-modules.d.
- Brugen af symbolske links til at linke installerbare delte objekter til Glibc -versionen er blevet fjernet. Disse objekter er nu installeret som de er (f.eks. Libc.so.6 er nu en fil frem for et link til libc-2.34.so).
- På Linux kræver funktioner som shm_open og sem_open nu et filsystem til den delte hukommelse, der er monteret på / dev / shm -monteringspunktet.
Endelig hvis du er interesseret i at vide mere om det i denne nye version kan du kontrollere detaljer i følgende link.