Vydání systémové knihovny Glibc 2.32

Po šesti měsících vývoje byla vydána vydání systémové knihovny GNU C Library (glibc) 2.32, která plně vyhovuje normám ISO C11 a POSIX.1-2017. Nová verze obsahuje opravy od 67 vývojářů.

Zrealizováno v Glibc 2.32 vylepšení můžeme zmínit:

  • Byla přidána podpora procesorů Synopsys ARC HS (ARCv2 ISA). Pro funkčnost portu je potřeba alespoň binutils 2.32, gcc 8.3 a jádro Linux 5.1. Podporovány jsou tři varianty ABI arc-linux-gnu, arc-linux-gnuhf a arceb-linux-gnu (big-endian);
  • Bylo implementováno načítání modulů auditu uvedených v sekcích DT_AUDIT a
    DT_DEPAUDIT spustitelného souboru.
  • Pro architekturu powerpc64le byla implementována podpora typu IEEE128 long double, zahrnutá při sestavení s parametrem „-mabi=ieeelongdouble“.
  • Některé API jsou anotovány pomocí atributu GCC ‘access’, což umožňuje při kompilaci v GCC 10 generovat kvalitnější varování při určování možných přetečení bufferů a dalších variant výstupu za povolené hranice.
  • Pro systémy Linux byly implementovány funkce pthread_attr_setsigmask_np a
    pthread_attr_getsigmask_np, které aplikaci umožňují specifikovat masku signálů pro vlákna vytvořená pomocí pthread_create.
  • Data kódování, informace o typech znaků a tabulky transliterace byly aktualizovány pro podporu specifikace Unicode 13.0.0;
  • Byl přidán nový hlavičkový soubor , který definuje proměnnou __libc_single_threaded, jež může být použita v aplikacích pro optimalizace v jednovláknových aplikacích.
  • Byly přidány funkce sigabbrev_np a sigdescr_np, které vracejí zkrácený název a popis signálu (například „HUP“ a „Hangup“ pro SIGHUP).
  • Byly přidány funkce strerrorname_np a strerrordesc_np, které vracejí název a popis chyby (například „EINVAL“ a „Invalid argument“ pro EINVAL).
  • Pro platformu ARM64 byla přidána volba „—enable-standard-branch-protection“ (nebo -mbranch-protection=standard v GCC), která aktivuje mechanismus ARMv8.5-BTI (Branch Target Indicator) pro ochranu vykonávání sad instrukcí, na které by neměly být prováděny přechody během větvení. Blokování přechodů na libovolné části kódu bylo implementováno k prevenci vzniku gadgetů v exploitech, které využívají techniky návratově orientovaného programování (ROP — Return-Oriented Programming, útočník se nesnaží umístit svůj kód do paměti, ale operuje s již existujícími kousky strojových instrukcí, které končí instrukcí pro návrat řízení, z nichž se vytváří řetězec volání pro získání požadované funkčnosti).
  • Byla provedena výrazná očista zastaralých funkcí, včetně odstranění možností „—enable-obsolete-rpc“ a „—enable-obsolete-nsl“, hlavičkového souboru . Byly označeny za zastaralé funkce sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore a sigset, pole sys_siglist, _sys_siglist a sys_sigabbrev, symboly sys_errlist, _sys_errlist, sys_nerr a _sys_nerr, NSS modul hesiod.
  • ldconfig je nyní ve výchozím nastavení převeden na používání nového formátu ld.so.cache, který je podporován v glibc již téměř 20 let.
  • Opraveny zranitelnosti:
    • CVE-2016-10228 – zamykání v utilitě iconv, projevující se při spuštění s možností „-c“, když se zpracovávají neplatná multibyte data.
    • CVE-2020-10029 – poškození zásobníku při volání trigonometrických funkcí s pseudo-nulovým argumentem.
    • CVE-2020-1752 – přístup k oblasti paměti po jejím uvolnění (use-after-free) ve funkci glob při rozbalení odkazu na domovský adresář („~user“) v cestách.
    • CVE-2020-6096 – nesprávné zpracování na platformě ARMv7 záporných hodnot parametru v memcpy() a memmove(), určující velikost kopírované oblasti. Umožňuje organizovat provádění kódu při zpracování v funkcích memcpy() a memmove() specifickým způsobem formátovaných dat. Je pozoruhodné, že problém zůstal neopravený téměř dva měsíce od okamžiku veřejného oznámení a pět měsíců od upozornění vývojářů Glibc.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster