Glibc 2.35 vine cu îmbunătățiri, remedieri de erori și multe altele

După șase luni de dezvoltare a fost anunțată lansarea noii versiuni de Glibc 2.35 in care include remedieri de la 66 de dezvoltatori și dintre îmbunătățirile implementate putem găsi că a fost adăugat suport pentru localitatea „C.UTF-8”, care include colaționări pentru toate codurile Unicode, dar se limitează la utilizarea intervalelor ASCII în funcțiile fnmatch, regexec și regcomp pentru a salva spaţiu.

Localitatea este de aproximativ 400 KB, din care 346 KB sunt date LC_CTYPE pentru Unicode și trebuie instalate separat (nu sunt încorporate în Glibc). Datele de codificare, informațiile despre tipul de caractere și tabelele de transliterare au fost actualizate pentru a accepta specificația Unicode 14.0.0.

O altă schimbare care iese în evidență este că Y implementați funcții și macrocomenzi care rotunjesc rezultatul la un tip mai restrâns, Pe lângă implementarea funcțiilor și macrocomenzilor pentru a găsi numărul minim și maxim de numere în virgulă mobilă de tipurile float, long double, _FloatN și _FloatNx, descrise în specificația IEEE 754-2019.

pentru funcții exp10, macrocomenzile corespunzătoare sunt adăugate la fișierul antet, care nu sunt legate de anumite tipuri, plus macrocomanda _PRINTF_NAN_LEN_MAX a fost adăugată la , propus în proiectul standardului ISO C2X.

Sistemul de legătură dinamică implementează un nou algoritm de clasificare DSO folosind căutarea în adâncime (DFS) pentru a aborda problemele de performanță atunci când se gestionează dependențele buclei. Pentru a selecta algoritmul de sortare DSO, este propus parametrul glibc.rtld.dynamic_sort, care poate fi setat la „1” pentru a reveni la algoritmul anterior.

Pe lângă ea a adăugat suport pentru o nouă funcție „__memcmpeq” la ABI, care este folosit de compilatori pentru a optimiza utilizarea „memcmp” atunci când valoarea returnată a acestei funcții este folosită doar pentru a verifica starea de finalizare a unei operațiuni.

The suport pentru înregistrarea automată a firelor folosind apelul de sistem rseq (secvențe repornitoare) furnizat începând cu kernel-ul Linux 4.18. Apelul de sistem rseq permite organizarea executării continue a unui grup de instrucţiuni care nu se întrerupe şi comite rezultatul cu ultima declaraţie din grup. În esență, oferă o facilitate pentru execuția atomică foarte rapidă a operațiunilor care, dacă sunt întrerupte de un alt fir, sunt curățate și reîncercate.

Pe de altă parte, oferă compilarea implicită a tuturor fișierelor executabile a programelor încorporate și o suită de teste în modul PIE (executable independent de poziție).

Pentru a dezactiva acest comportament, este oferită opțiunea „–disable-default-pie”., plus pentru Linux, a adăugat o setare glibc.malloc.hugetlb pentru a schimba implementarea malloc pentru a utiliza apelul de sistem madvise cu steag MADV_HUGEPAGE pentru mmap și sbrk sau pentru a utiliza direct paginile mari de memorie prin specificarea steagului MAP_HUGETLB în apelurile mmap.

În primul caz, o creștere a performanței poate fi obținută prin utilizarea paginilor uriașe transparente în modul nebun, iar în al doilea caz, puteți utiliza pagini uriașe rezervate de sistem (pagini uriașe).

De asemenea, trebuie remarcat faptul că unele vulnerabilități au fost remediate în această nouă versiune:

  • CVE-2022-23218, CVE-2022-23219: O depășire a memoriei tampon în funcțiile svcunix_create și clnt_create cauzată de copierea conținutului unui parametru de nume de fișier pe stivă fără a verifica dimensiunea datelor copiate. Pentru aplicațiile construite fără protecție a stivei și care utilizează protocolul „unix”, vulnerabilitatea poate duce la execuția de cod rău intenționat atunci când procesează nume de fișiere foarte lungi.
  • CVE-2021-3998: o vulnerabilitate în funcția realpath() cauzată de returnarea unei valori incorecte în anumite condiții care conține date reziduale necurățate din stivă. Pentru programul SUID-root fusermount, vulnerabilitatea poate fi utilizată pentru a obține informații sensibile din memoria procesului, de exemplu, pentru a obține informații despre indicator.
  • CVE-2021-3999: depășirea tamponului de un singur octet în funcția getcwd(). Problema este cauzată de o eroare care există din 1995. Pentru a apela un overflow, într-un spațiu de nume separat al punctului de montare, trebuie doar să apelați chdir() în directorul „/”.

În cele din urmă Dacă sunteți interesat să aflați mai multe despre asta, puteți verifica detaliile în următorul link.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.