Glibc 2.32 süsteemiteegi väljalase

Pärast kuuekuulist arengut avaldatud süsteemiteegi väljalase GNU C raamatukogu (glibc) 2.32, mis vastab täielikult ISO C11 ja POSIX.1-2017 standardite nõuetele. Uus väljalase sisaldab parandusi 67 arendajalt.

Nendest, mis on rakendatud versioonis Glibc 2.32 täiustused võite märkida:

  • Lisatud tugi Synopsys ARC HS (ARCv2 ISA) protsessoritele. Port vajab käitamiseks vähemalt binutils 2.32, gcc 8.3 ja Linuxi kernel 5.1. Toetatud on kolm ABI varianti: arc-linux-gnu, arc-linux-gnuhf ja arceb-linux-gnu (big-endian);
  • Sektsioonides DT_AUDIT ja määratletud auditimoodulite laadimine
    Käivitatava faili DT_DEPAUDIT.

  • Powerpc64le arhitektuuri jaoks on juurutatud IEEE128 pika topelttüübi tugi, mis on lubatud, kui ehitate valikuga "-mabi=ieeelongdouble".
  • Mõned API-d on varustatud GCC juurdepääsu atribuudiga, mis võimaldab genereerida paremaid hoiatusi, kui need on koostatud GCC 10-s, et tuvastada võimalikke puhvri ületäitumisi ja muid piiridest väljuvaid stsenaariume.
  • Linuxi süsteemide puhul funktsioonid pthread_attr_setsigmask_np ja
    pthread_attr_getsigmask_np, mis annavad rakendusele võimaluse määrata pthread_create abil loodud lõimede jaoks signaalimask.

  • Kodeerimisandmeid, märgitüüpide teavet ja transliteratsioonitabeleid on värskendatud, et toetada Unicode'i 13.0.0 spetsifikatsiooni;
  • Lisatud uus päisefail , mis määratleb muutuja __libc_single_threaded, mida saab kasutada ühe lõimega optimeerimise rakendustes.
  • Lisatud funktsioonid sigabbrev_np ja sigdescr_np, mis tagastavad signaali lühendatud nime ja kirjelduse (näiteks SIGHUP puhul “HUP” ja “Hangup”).
  • Lisatud funktsioonid strerrorname_np ja strerrordesc_np, mis tagastavad vea nime ja kirjelduse (näiteks EINVALi jaoks "EINVAL" ja "Vigane argument".
  • ARM64 platvormi jaoks on lisatud lipp "--enable-standard-branch-protection" (või -mbranch-protection=standard GCC-s), mis võimaldab ARMv8.5-BTI (Branch Target Indicator) mehhanismil kaitsta Käsukomplektide täitmine, mida ei tohiks käivitada.hargnevad üleminekud. Üleminekute blokeerimine suvalistele koodiosadele on rakendatud selleks, et vältida vidinate loomist exploitides, mis kasutavad tagasisaatmisele orienteeritud programmeerimistehnikaid (ROP – Return-Oriented Programming; ründaja ei püüa oma koodi mällu paigutada, vaid tegutseb juba olemasolevate tükkidega masinkäskudest, mis lõpevad tagastusjuhtimise käsuga, millest koostatakse soovitud funktsionaalsuse saamiseks kõnede ahel).
  • Vananenud funktsioonidest on tehtud suurpuhastus, sealhulgas päisefaili suvandite "--enable-obsolete-rpc" ja "--enable-obsolete-nsl" eemaldamine . Funktsioonid sstk, siginterrupt, sigpause, sighold, sigrelse, siggnore ja sigset, massiivid sys_siglist, _sys_siglist ja sys_sigabbrev, sümbolid sys_errlist, _sys_errlist, N modulated the heprecsi, sys_ys_nerr ja.
  • ldconfig on vaikimisi teisaldatud, et kasutada uut vormingut ld.so.cache, mida glibc on toetanud peaaegu 20 aastat.
  • Parandatud haavatavused:
    • CVE-2016-10228 – utiliidi iconv silmus tekib valede mitmebaidiliste andmete töötlemisel valikuga „-c” käivitamisel.
    • CVE-2020-10029 Viru korruptsioon trigonomeetriliste funktsioonide kutsumisel pseudo-null argumendiga.
    • CVE-2020-1752 – kasutus-pärast-vaba mälujuurdepääs funktsioonis glob, kui laiendatakse viidet kodukataloogile (“~kasutaja”) teedes.
    • CVE-2020-6096 – ARMv7 platvormil negatiivsete parameetrite väärtuste vale käsitlemine funktsioonides memcpy() ja memmove(), mis määrab kopeeritava ala suuruse. Võimaldab korraldab koodi täitmist funktsioonides memcpy() ja memmove() teatud viisil vormindatud andmete töötlemisel. On märkimisväärne, et probleem jäi parandamata peaaegu kaks kuud pärast teabe avalikustamist ja viis kuud pärast Glibci arendajate teavitamist.

Allikas: opennet.ru

Lisa kommentaar