Glibc 2.34 пристига с корекции на уязвимости, нови функции за Linux и др

Наскоро беше обявено пускането на новата версия на Glibc 2.34. Тя идва след шест месеца разработка и включва няколко важни промени, най-вече включването на библиотеките libpthread, libdl, libutil и libanl, както и различни корекции на грешки, една от които причиняваше сривове.

За тези, които не са запознати с Glibc, това е GNU C библиотека, известна като glibc, и е стандартната библиотека за изпълнение на езика GNU C. В системите, където се използва, тази C библиотека, която предоставя и дефинира системни повиквания и други основни функции, се използва от почти всички програми.

Основни нови функции на Glibc 2.34

В тази нова версия на Glibc 2.34, основните библиотеки libpthread, libdl, libutil и libanl са интегрирани ; използването на тяхната функционалност в приложения вече не изисква свързването им с индикаторите -lpthread, -ldl, -lutil и -lanl.

Освен това се споменава, че са направени подготовки за интегриране на libresolv в libc, което ще позволи по-плавен процес на надграждане на glibc и ще опрости имплементацията по време на изпълнение. Предоставени са и библиотеки тип „stub“ за съвместимост с приложения, изградени с помощта на по-ранни версии на glibc.

Сред промените, насочени към Linux в Glibc 2.34, най-забележителната е добавената възможност за използване на 64-битовия тип time_t в конфигурации , които традиционно използваха 32-битовия тип time_t . Тази функция е достъпна само на системи с версия на ядрото 5.1 и по-висока.

Друга промяна, специфична за Linux, е имплементацията на функцията `execveat` , която ви позволява да изпълните изпълним файл от отворен файлов дескриптор . Тази нова функция се използва и при имплементацията на извикването `fexecve`, което не изисква псевдофайловата система `/proc` да бъде монтирана при стартиране.

Добавена е и функцията close_range(), която е достъпна за Linux версии 5.9 и по-нови и може да се използва, за да позволи на процес да затвори цял диапазон от отворени файлови дескриптори наведнъж. Освен това е имплементиран параметърът glibc.pthread.stack_cache_size, който може да се използва за регулиране на размера на кеша на pthread стека.

Освен това е добавена функцията `_Fork`, заместител на функцията `fork` , която отговаря на изискванията за "async-signal-safe", което означава, че може да бъде безопасно извикана от обработчици на сигнали. По време на изпълнението на `_Fork` се формира минимална среда, достатъчна за извикване на функции в обработчици на сигнали като `raise` и `execute`, без да се извикват функции, които биха могли да променят заключванията или вътрешното състояние.

За частта от уязвимостите, фиксирана в Glibc 2.34, се споменава следното:

CVE-2021-27645: Неуспех на процеса nscd (демон за кеширане на сървъри за имена) поради двойно извикване на функцията free при обработка на специално създадени заявки за мрежови групи.

CVE-2021-33574: Достъп до област от паметта, използвана след освобождаване на място, във функцията mq_notify при използване на типа известие SIGEV_THREAD с атрибут на нишка, за който е зададена алтернативна маска за свързване с процесора. Този проблем може да причини срив, но не са изключени и други опции за атака.

CVE-2021-35942: Препълване на размера на параметъра във функцията wordexp може да доведе до срив на приложението.

Други забележителни промени включват:

  • Добавена е функцията timespec_getres, дефинирана в проекта на ISO C2X стандарт и функцията timespec_get е увеличена с възможности, подобни на функцията POSIX clock_getres.
  • Във файла gconv-modules остана само минимален набор от основни модули gconv, а останалите бяха преместени в допълнителен файл gconv-modules-extra.conf, разположен в директорията gconv-modules.d.
  • Премахнато е използването на символни връзки за свързване на инсталируеми споделени обекти с версията на Glibc. Тези обекти вече са инсталирани такива, каквито са (например libc.so.6 вече е файл, а не връзка към libc-2.34.so).
  • В Linux функции като shm_open и sem_open вече изискват файлова система за споделената памет, монтирана на / dev / shm точката на монтиране.

И накрая, ако се интересувате да научите повече за тази нова версия, можете да намерите подробностите на следния линк.


Добавяне като предпочитан източник в Google