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

Ostatnio ogłoszono wydanie nowej wersji Glibc 2.34 który nadchodzi po sześciu miesiącach rozwoju i w którym dokonano kilku dość ważnych zmian, wśród których znalazły się biblioteki libpthread, libdl, libutil i libanl, a także różne poprawki błędów, z których jedna powodowała blokady.

Dla tych, którzy nie są zaznajomieni z Glibc, powinni wiedzieć, co to jest biblioteka GNU C, powszechnie znana jako glibc to standardowa biblioteka uruchomieniowa GNU C. W systemach, w których jest używany, ta biblioteka C, która udostępnia i definiuje wywołania systemowe i inne podstawowe funkcje, jest używany przez prawie wszystkie programy. 

Główne nowe funkcje Glibc 2.34

W tej nowej wersji Glibc 2.34, która jest prezentowana libpthread, libdl, libutil i libanl zostały zintegrowane z główną biblioteką, korzystanie z jego funkcji w aplikacjach nie wymaga już wiązania ich z flagami -lpthread, -ldl, -lutil i -lanl.

Ponadto jest o tym mowa poczyniono przygotowania do integracji libreolv z libc, z którym integracja pozwoli na płynniejszy proces aktualizacji glibc Uprości to implementację środowiska uruchomieniowego, a biblioteki pośredniczące zostały również udostępnione w celu zapewnienia kompatybilności z aplikacjami zbudowanymi we wcześniejszych wersjach glibc.

Ze strony zmian skupionych na Linuksie Glibc 2.34 podkreśla dodano możliwość używania 64-bitowego typu time_t w configs który tradycyjnie używał typu time_t 32-bitowy. Ta funkcja jest dostępna tylko w systemach z jądrem 5.1 i wyższym.

Kolejną konkretną zmianą dla Linuksa jest realizacja funkcji execveatŻe pozwala na uruchomienie pliku wykonywalnego z otwartego deskryptora pliku. 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(), który jest dostępny dla wersji Linuksa 5.9 i wyższe i które mogą być używany, aby umożliwić procesowi zamknięcie pełnego zakresu deskryptorów plików otwarte w tym samym czasie, dodatkowo zaimplementowany jest parametr glibc.pthread.stack_cache_size, który może być użyty do dostosowania rozmiaru pamięci podręcznej stosu pthread.

Ponadto dodano funkcję _Fork, zamiennik dla funkcji widelec który spełnia wymagania „bezpiecznego dla sygnału asynchronicznego”, to znaczy, że można go bezpiecznie wywołać z programów obsługi sygnałów. Podczas wykonywania _Fork tworzone jest minimalne środowisko, wystarczające do wywoływania funkcji w procedurach obsługi sygnałów, takich jak raise i execve, bez wywoływania funkcji, które mogą zmieniać blokady lub stan wewnętrzny.

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

CVE-2021-27645: Proces nscd (demon buforowania serwera nazw) nie powiódł się z powodu podwójnego wywołania funkcji free podczas przetwarzania specjalnie spreparowanych żądań grup sieciowych.

CVE-2021-33574: dostęp do obszaru pamięci już zwolnionego (użyj po zwolnieniu) w funkcji mq_notify podczas używania typu powiadomienia SIGEV_THREAD z atrybutem wątku, dla którego ustawiono alternatywną maskę powiązania procesora. Problem może spowodować awarię, ale inne opcje ataku nie są wykluczone.

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

Z innych zmian które wyróżniają się:

  • 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.

W końcu jeśli chcesz dowiedzieć się więcej na ten temat tej nowej wersji możesz sprawdzić szczegóły w poniższym linku.


Treść artykułu jest zgodna z naszymi zasadami etyka redakcyjna. Aby zgłosić błąd, kliknij tutaj.

Bądź pierwszym który skomentuje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.