Glibc 2.34 pojawia się z poprawkami podatności, nowymi funkcjami dla Linuksa i nie tylko

Niedawno ogłoszono wydanie nowej wersji Glibc 2.34. Ukazała się ona po sześciu miesiącach prac i zawiera kilka istotnych zmian, w tym dodanie bibliotek libpthread, libdl, libutil i libanl, a także poprawki błędów, z których jedna powodowała awarie.

Dla osób niezaznajomionych z Glibc: jest to biblioteka GNU C, powszechnie znana jako glibc, będąca standardową biblioteką środowiska uruchomieniowego języka GNU C. W systemach, w których jest używana, ta biblioteka C, która udostępnia i definiuje wywołania systemowe oraz inne podstawowe funkcje, jest używana przez niemal wszystkie programy.

Główne nowe funkcje Glibc 2.34

W nowej wersji Glibc 2.34 zintegrowano główne biblioteki libpthread, libdl, libutil i libanl ; korzystanie z ich funkcjonalności w aplikacjach nie wymaga już łączenia ich wskaźnikami -lpthread, -ldl, -lutil i -lanl.

Ponadto wspomniano, że poczyniono przygotowania do integracji libresolv z libc, co usprawni proces aktualizacji glibc i uprości implementację w środowisku uruchomieniowym. Udostępniono również biblioteki zastępcze dla zapewnienia kompatybilności z aplikacjami zbudowanymi z wykorzystaniem wcześniejszych wersji glibc.

Spośród zmian skoncentrowanych na Linuksie w Glibc 2.34, najbardziej godna uwagi jest dodana możliwość korzystania z 64-bitowego typu time_t w konfiguracjach , które tradycyjnie korzystały z 32-bitowego typu time_t . Funkcja ta jest dostępna tylko w systemach z jądrem w wersji 5.1 i nowszych.

Kolejną zmianą specyficzną dla Linuksa jest implementacja funkcji `execveat` , która umożliwia wykonanie pliku wykonywalnego z otwartego deskryptora pliku . Ta nowa funkcja jest również wykorzystywana w implementacji wywołania `fexecve`, które nie wymaga montowania pseudosystemu plików `/proc` podczas uruchamiania.

Dodano również funkcję close_range(), dostępną dla Linuksa w wersji 5.9 i nowszych, która umożliwia procesowi jednoczesne zamknięcie całego zakresu otwartych deskryptorów plików. Dodatkowo zaimplementowano parametr glibc.pthread.stack_cache_size, który umożliwia dostosowanie rozmiaru pamięci podręcznej stosu wątków pthread.

Ponadto dodano funkcję `_Fork`, zastępującą funkcję `fork` , która spełnia wymagania „async-signal-safe”, co oznacza, że ​​można ją bezpiecznie wywołać z procedur obsługi sygnałów. Podczas wykonywania funkcji `_Fork` tworzone jest minimalne środowisko, wystarczające do wywołania funkcji w procedurach obsługi sygnałów, takich jak `raise` i `execute`, bez wywoływania funkcji, które mogłyby zmienić blokady lub stan wewnętrzny.

W przypadku części luk naprawionych w Glibc 2.34 wymieniono:

CVE-2021-27645: awaria procesu nscd (demona buforującego serwer nazw) spowodowana podwójnym wywołaniem funkcji free podczas przetwarzania specjalnie spreparowanych żądań grup sieciowych.

CVE-2021-33574: Dostęp do obszaru pamięci używanego po zwolnieniu w funkcji mq_notify podczas korzystania z typu powiadomienia SIGEV_THREAD z atrybutem wątku, dla którego ustawiono alternatywną maskę powiązania procesora. Ten problem może spowodować awarię, ale nie wyklucza innych opcji ataku.

CVE-2021-35942: Przekroczenie rozmiaru parametru w funkcji wordexp może spowodować awarię aplikacji.

Inne istotne zmiany obejmują:

  • Dodano funkcję timespec_getres, zdefiniowaną w projekcie standardu ISO C2X, a funkcję timespec_get rozszerzono o możliwości podobne do funkcji clock_getres POSIX.
  • W pliku gconv-modules pozostał tylko minimalny zestaw głównych modułów gconv, a reszta została przeniesiona do dodatkowego pliku gconv-modules-extra.conf znajdującego się w katalogu gconv-modules.d.
  • Użycie dowiązań symbolicznych do łączenia instalowalnych obiektów współdzielonych z wersją Glibc zostało usunięte. Obiekty te są teraz instalowane tak, jak są (np. libc.so.6 jest teraz plikiem, a nie linkiem do libc-2.34.so).
  • W systemie Linux funkcje takie jak shm_open i sem_open wymagają teraz systemu plików dla pamięci współdzielonej zamontowanej w punkcie montowania / dev / shm.

Jeśli chcesz dowiedzieć się więcej o tej nowej wersji, szczegóły znajdziesz pod poniższym linkiem.


Dodaj jako preferowane źródło w Google