Glibc 2.32 sistemos bibliotekos leidimas

Po šešių mėnesių vystymosi paskelbti sistemos bibliotekos leidimas GNU C biblioteka (glibc) 2.32, kuris visiškai atitinka ISO C11 ir POSIX.1-2017 standartų reikalavimus. Naujajame leidime yra 67 kūrėjų pataisymai.

Iš įdiegtų Glibc 2.32 patobulinimai galite atkreipti dėmesį:

  • Pridėtas Synopsys ARC HS (ARCv2 ISA) procesorių palaikymas. Kad prievadas veiktų, reikalingas bent binutils 2.32, gcc 8.3 ir Linux branduolys 5.1. Palaikomi trys ABI variantai: arc-linux-gnu, arc-linux-gnuhf ir arceb-linux-gnu (big-endian);
  • DT_AUDIT ir skyriuose nurodytų audito modulių įkėlimas
    Vykdomojo failo DT_DEPAUDIT.

  • Powerpc64le architektūrai įdiegtas IEEE128 long double tipo palaikymas, kuris įjungiamas kuriant naudojant „-mabi=ieeelongdouble“ parinktį.
  • Kai kurios API yra pažymėtos GCC prieigos atributu, kuris leidžia generuoti geresnius įspėjimus, kai jie sudaromi GCC 10, kad būtų galima aptikti galimą buferio perpildymą ir kitus scenarijus, kurie viršija ribas.
  • „Linux“ sistemoms funkcijos pthread_attr_setsigmask_np ir
    pthread_attr_getsigmask_np, kurie suteikia programai galimybę nurodyti signalo kaukę gijomis, sukurtomis naudojant pthread_create.

  • Kodavimo duomenys, simbolių tipo informacija ir transliteracijos lentelės buvo atnaujintos, kad palaikytų Unicode 13.0.0 specifikaciją;
  • Pridėtas naujas antraštės failas , kuris apibrėžia __libc_single_threaded kintamąjį, kuris gali būti naudojamas vienos gijos optimizavimo programose.
  • Pridėtos funkcijos sigabbrev_np ir sigdescr_np, grąžinančios sutrumpintą signalo pavadinimą ir aprašymą (pvz., „HUP“ ir „Hangup“ SIGHUP).
  • Pridėtos funkcijos strerrorname_np ir strerrordesc_np, kurios grąžina klaidos pavadinimą ir aprašymą (pvz., "EINVAL" ir "Netinkamas argumentas" EINVAL).
  • ARM64 platformoje buvo pridėta žyma „--enable-standard-branch-protection“ (arba -mbranch-protection=standartas GCC), kuri įgalina ARMv8.5-BTI (Branch Target Indicator) mechanizmą apsaugoti komandų rinkinių, kurių nereikėtų vykdyti, vykdymas.šakos perėjimai. Perėjimų į savavališkas kodo dalis blokavimas įgyvendinamas siekiant užkirsti kelią programėlių kūrimui išnaudojimuose, kuriuose naudojamos į grąžinimą orientuotos programavimo technikos (ROP – į sugrįžimą orientuotas programavimas; užpuolikas nebando įdėti savo kodo į atmintį, o veikia su jau esamomis dalimis). mašininių instrukcijų, kurios baigiasi grįžimo valdymo instrukcija, iš kurios sukuriama iškvietimų grandinė norint gauti pageidaujamą funkcionalumą).
  • Buvo atliktas esminis pasenusių funkcijų išvalymas, įskaitant parinkčių „--enable-obsolete-rpc“ ir „--enable-obsolete-nsl“ antraštės failo pašalinimą. . Funkcijos sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore ir sigset, masyvai sys_siglist, _sys_siglist ir sys_sigabbrev, simboliai sys_errlist, _sys_errlist, N modulis the.he irprecated the.
  • Pagal numatytuosius nustatymus ldconfig buvo perkelta į naują ld.so.cache formatą, kuris glibc palaikomas beveik 20 metų.
  • Ištaisytos spragos:
    • CVE-2016-10228 – Apdorojant neteisingus kelių baitų duomenis, paleidžiant su parinktimi „-c“ atsiranda kilpa „iconv“ programoje.
    • CVE-2020-10029 Stack sugadinimas kviečiant trigonometrines funkcijas su pseudo-null argumentu.
    • CVE-2020-1752 – laisvos atminties prieiga prie globos funkcijos, kai keliuose išplečiama nuoroda į namų katalogą („~vartotojas“).
    • CVE-2020-6096 – Neteisingas neigiamų parametrų verčių tvarkymas ARMv7 platformoje memcpy() ir memmove(), kuris lemia nukopijuojamos srities dydį. Leidžia organizuoti kodo vykdymą apdorojant duomenis tam tikru būdu funkcijose memcpy() ir memmove(). Svarbu, kad problema liko netaisyta beveik du mėnesius nuo tada, kai informacija buvo viešai paskelbta, ir penkis mėnesius nuo tada, kai buvo pranešta „Glibc“ kūrėjams.

Šaltinis: opennet.ru

Добавить комментарий