Izdanje sistemske biblioteke Glibc 2.32

Nakon šest mjeseci razvoja objavljeno izdanje sistemske biblioteke GNU C biblioteka (glibc) 2.32, koji je u potpunosti usklađen sa zahtjevima ISO C11 i POSIX.1-2017. Novo izdanje uključuje popravke od 67 programera.

Implementirano u Glibc 2.32 poboljšanja možete primetiti:

  • Dodata podrška za Synopsys ARC HS (ARCv2 ISA) procesore. Port zahtijeva najmanje binutils 2.32, gcc 8.3 i Linux kernel 5.1 za pokretanje. Podržane su tri ABI varijante: arc-linux-gnu, arc-linux-gnuhf i arceb-linux-gnu (big-endian);
  • Učitavanje modula revizije specificiranih u odjeljcima DT_AUDIT i
    DT_DEPAUDIT izvršne datoteke.

  • Za arhitekturu powerpc64le implementirana je podrška za IEEE128 long double tip, koji je omogućen kada se gradi sa opcijom “-mabi=ieeelongdouble”.
  • Neki API-ji su označeni atributom GCC 'access', koji omogućava generiranje boljih upozorenja kada se kompajliraju u GCC 10 radi otkrivanja mogućih prekoračenja bafera i drugih scenarija izvan granica.
  • Za Linux sisteme, funkcije pthread_attr_setsigmask_np i
    pthread_attr_getsigmask_np, koji aplikaciji daju mogućnost da specificira signalnu masku za niti kreirane pomoću pthread_create.

  • Podaci o kodiranju, informacije o tipu znakova i tablice transliteracije su ažurirane kako bi podržale Unicode 13.0.0 specifikaciju;
  • Dodan novi fajl zaglavlja , koji definira varijablu __libc_single_threaded, koja se može koristiti u aplikacijama za jednonitne optimizacije.
  • Dodane funkcije sigabbrev_np i sigdescr_np koje vraćaju skraćeno ime i opis signala (na primjer, “HUP” i “Hangup” za SIGHUP).
  • Dodane funkcije strerrorname_np i strerrordesc_np koje vraćaju ime i opis greške (na primjer, "EINVAL" i "Invalid argument" za EINVAL).
  • Za ARM64 platformu, dodana je zastavica "--enable-standard-branch-protection" (ili -mbranch-protection=standard u GCC-u), koja omogućava mehanizmu ARMv8.5-BTI (Branch Target Indicator) da zaštiti izvršavanje skupova instrukcija koje ne bi trebalo izvršavati grananje prijelaza. Blokiranje prijelaza na proizvoljne dijelove koda implementirano je kako bi se spriječilo stvaranje gadgeta u eksploatacijama koje koriste tehnike programiranja orijentiranog na povratak (ROP - Return-Oriented Programming; napadač ne pokušava smjestiti svoj kod u memoriju, već radi na već postojećim dijelovima strojnih instrukcija koje završavaju povratnom kontrolnom instrukcijom, iz koje se gradi lanac poziva kako bi se dobila željena funkcionalnost).
  • Izvršeno je veliko čišćenje zastarjelih funkcija, uključujući uklanjanje opcija "--enable-obsolete-rpc" i "--enable-obsolete-nsl", datoteke zaglavlja . Funkcije sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore i sigset, nizovi sys_siglist, _sys_siglist i sys_sigabbrev, simboli sys_errlist, _sys_errlist, sys_nerr i _sys_ss su uvedeni u modul.
  • ldconfig je po defaultu premješten da koristi novi ld.so.cache format, koji je podržan u glibc-u skoro 20 godina.
  • Popravljene ranjivosti:
    • CVE-2016-10228 – Do petlje u uslužnom programu iconv dolazi kada se pokrene s opcijom “-c” kada se obrađuju netačne višebajtne podatke.
    • CVE-2020-10029 Oštećenje steka prilikom pozivanja trigonometrijskih funkcija sa pseudo-nultim argumentom.
    • CVE-2020-1752 - Pristup memoriji bez upotrebe u funkciji glob kada se proširuje referenca na početni direktorij (“~korisnik”) u putanjama.
    • CVE-2020-6096 – Pogrešno rukovanje na ARMv7 platformi negativnih vrijednosti parametara u memcpy() i memmove(), što određuje veličinu kopiranog područja. Omogućuje organizirati izvršavanje koda prilikom obrade podataka formatiranih na određeni način u funkcijama memcpy() i memmove(). Značajno je da je problem ostao neispravljen skoro dva meseca od kada je informacija javno objavljena i pet meseci otkako su Glibc programeri obavešteni.

izvor: opennet.ru

Dodajte komentar