Vydanie systémovej knižnice Glibc 2.32

Po šiestich mesiacoch vývoja zverejnená vydanie systémovej knižnice Knižnica GNU C (glibc) 2.32, ktorý plne vyhovuje požiadavkám ISO C11 a POSIX.1-2017. Nové vydanie obsahuje opravy od 67 vývojárov.

Implementované v Glibc 2.32 vylepšenia môžete si všimnúť:

  • Pridaná podpora pre procesory Synopsys ARC HS (ARCv2 ISA). Port vyžaduje na spustenie aspoň binutils 2.32, gcc 8.3 a linuxové jadro 5.1. Podporované sú tri varianty ABI: arc-linux-gnu, arc-linux-gnuhf a arceb-linux-gnu (big-endian);
  • Načítanie modulov auditu špecifikovaných v sekciách DT_AUDIT a
    DT_DEPAUDIT spustiteľného súboru.

  • Pre architektúru powerpc64le je implementovaná podpora pre dlhý dvojitý typ IEEE128, ktorý je povolený pri zostavovaní s voľbou „-mabi=ieeelongdouble“.
  • Niektoré rozhrania API sú označené atribútom GCC 'access', ktorý umožňuje generovanie lepších upozornení pri kompilácii v GCC 10 na zistenie možného pretečenia vyrovnávacej pamäte a iných scenárov mimo hraníc.
  • Pre systémy Linux sú funkcie pthread_attr_setsigmask_np a
    pthread_attr_getsigmask_np, ktoré dávajú aplikácii možnosť špecifikovať masku signálu pre vlákna vytvorené pomocou pthread_create.

  • Údaje kódovania, informácie o type znakov a transliteračné tabuľky boli aktualizované, aby podporovali špecifikáciu Unicode 13.0.0;
  • Pridaný nový hlavičkový súbor , ktorý definuje premennú __libc_single_threaded, ktorú možno použiť v aplikáciách na jednovláknové optimalizácie.
  • Pridané funkcie sigabbrev_np a sigdescr_np, ktoré vracajú skrátený názov a popis signálu (napríklad „HUP“ a „Hangup“ pre SIGHUP).
  • Pridané funkcie strerrorname_np a strerrordesc_np, ktoré vracajú názov a popis chyby (napríklad „EINVAL“ a „Neplatný argument“ pre EINVAL).
  • Pre platformu ARM64 bol pridaný príznak "--enable-standard-branch-protection" (alebo -mbranch-protection=standard v GCC), ktorý umožňuje mechanizmu ARMv8.5-BTI (Branch Target Indicator) chrániť vykonávanie inštrukčných sád, ktoré by sa nemali vykonávať, vetvenie prechodov. Blokovanie prechodov do ľubovoľných častí kódu je implementované, aby sa zabránilo vytváraniu miniaplikácií v exploitoch, ktoré využívajú návratovo orientované programovanie (ROP - Return-Oriented Programming; útočník sa nepokúša umiestniť svoj kód do pamäte, ale operuje s už existujúcimi časťami strojových inštrukcií, ktoré sa končia návratovou riadiacou inštrukciou, z ktorej sa vytvorí reťazec volaní na získanie požadovanej funkčnosti).
  • Vykonalo sa veľké vyčistenie zastaraných funkcií, vrátane odstránenia možností „--enable-obsolete-rpc“ a „--enable-obsolete-nsl“, súbor hlavičky . Funkcie sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore a sigset, polia sys_siglist, _sys_siglist a sys_sigabbrev, symboly sys_errlist, _sys_errlist, sys_nerr a _sys_nerr a modul NSS boli deaktivované.
  • ldconfig bol štandardne presunutý tak, aby používal nový formát ld.so.cache, ktorý je podporovaný v glibc už takmer 20 rokov.
  • Opravené chyby zabezpečenia:
    • CVE-2016-10228 – Slučka v obslužnom programe iconv nastane pri spustení s voľbou „-c“ pri spracovaní nesprávnych viacbajtových údajov.
    • CVE-2020-10029 Poškodenie zásobníka pri volaní goniometrických funkcií s argumentom pseudo-null.
    • CVE-2020-1752 - Prístup do pamäte vo funkcii glob bez použitia po uvoľnení pri rozširovaní odkazu na domovský adresár („~user“) v cestách.
    • CVE-2020-6096 – Nesprávne spracovanie negatívnych hodnôt parametrov v memcpy() a memmove() na platforme ARMv7, ktoré určuje veľkosť skopírovanej oblasti. umožňuje organizovať vykonávanie kódu pri spracovaní údajov naformátovaných určitým spôsobom vo funkciách memcpy() a memmove(). Je príznačné, že problém zostal neopravené takmer dva mesiace od zverejnenia informácií a päť mesiacov od oznámenia vývojárov Glibc.

Zdroj: opennet.ru

Pridať komentár