Glibc 2.34 přichází s opravami zranitelností, novými funkcemi pro Linux a dalšími

Nedávno bylo oznámeno vydání nové verze Glibc 2.34 který přichází po šesti měsících vývoje a ve kterém bylo provedeno několik docela důležitých změn, mezi které patří začlenění knihoven libpthread, libdl, libutil a libanl a také různé opravy chyb, u nichž jedna způsobila zablokování.

Pro ty, kteří nejsou obeznámeni s Glibcem, by měli vědět, co to je knihovna GNU C, běžně známá jako glibc je standardní runtime knihovna GNU C. Na systémech, kde se používá, tato C knihovna, která poskytuje a definuje systémová volání a další základní funkce, používají ho téměř všechny programy. 

Hlavní nové funkce Glibc 2.34

V této nové verzi Glibc 2.34, která je představena libpthread, libdl, libutil a libanl byly integrovány do hlavní knihovny, používání jeho funkcí v aplikacích již nevyžaduje jejich vázání pomocí příznaků -lpthread, -ldl, -lutil a -lanl.

Dále je uvedeno, že byly provedeny přípravy k integraci libreolv do libc, s níž integrace umožní plynulejší proces aktualizace glibc a zjednoduší to běhovou implementaci a pro kompatibilitu s aplikacemi vytvořenými s dřívějšími verzemi glibc byly také poskytnuty knihovny stubů.

Změny se zaměřily na Linux Glibc 2.34 zdůrazňuje přidána možnost používat v konfiguracích 64bitový typ time_t který tradičně používal typ time_t 32 bitů. Tato funkce je k dispozici pouze v systémech s jádrem 5.1 a vyšším.

Další specifickou změnou pro Linux je implementace funkce execveatŽe umožňuje spustit spustitelný soubor z otevřeného deskriptoru souboru. Nová funkce se také používá při implementaci volání fexecve, které nevyžaduje, aby byl při spuštění připojen pseudosouborový systém / proc.

Byla také přidána funkce close_range (), který je k dispozici pro Linux verze 5.9 a vyšší a které mohou být slouží k tomu, aby proces mohl zavřít celou řadu deskriptorů souborů současně otevřený, navíc je implementován parametr glibc.pthread.stack_cache_size, který lze použít k úpravě velikosti mezipaměti zásobníku pthread.

Kromě toho, přidána funkce _Fork, náhrada pro funkci vidlice který splňuje požadavky „async-signal-safe“, to znamená, že jej lze bezpečně volat ze zpracovatelů signálu. Během provádění _Fork se vytvoří minimální prostředí, dostatečné k volání funkcí v obslužných rutinách signálu, jako je vyvolání a spouštění, bez vyvolání funkcí, které mohou změnit zámky nebo vnitřní stav.

Pokud jde o část zranitelností opravených v Glibc 2.34, jsou uvedeny následující:

CVE-2021-27645: Proces nscd (démon ukládání do mezipaměti názvového serveru) selhal kvůli dvojitému volání bezplatné funkce při zpracování speciálně vytvořených požadavků na síťové skupiny.

CVE-2021-33574: přístup k již uvolněné oblasti paměti (použití po uvolnění) ve funkci mq_notify při použití typu oznámení SIGEV_THREAD s atributem vlákna, pro který je nastavena alternativní maska ​​vazby CPU. Problém může způsobit zhroucení, ale nejsou vyloučeny ani jiné možnosti útoku.

CVE-2021-35942: Přetečení velikosti parametru ve funkci wordexp může způsobit pád aplikace.

Z dalších změn které vynikají:

  • Byla přidána funkce timespec_getres, definovaná v návrhu normy ISO C2X, a funkce timespec_get byla zvýšena o možnosti podobné funkci POSIX clock_getres.
  • V souboru gconv-modules zůstala jen minimální sada hlavních modulů gconv a zbytek byl přesunut do dalšího souboru gconv-modules-extra.conf umístěného v adresáři gconv-modules.d.
  • Bylo odstraněno používání symbolických odkazů k propojení instalovatelných sdílených objektů s verzí Glibc. Tyto objekty jsou nyní nainstalovány tak, jak jsou (např. Libc.so.6 je nyní soubor, nikoli odkaz na libc-2.34.so).
  • V systému Linux funkce jako shm_open a sem_open nyní vyžadují souborový systém pro sdílenou paměť připojenou k bodu připojení / dev / shm.

Konečně pokud máte zájem o tom vědět více této nové verze můžete zkontrolovat podrobnosti v následujícím odkazu.


Přidat jako preferovaný zdroj v Googlu