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.

Крім того, згадується, що було зроблено підготовку до інтеграції libreolv у libc, з якою інтеграція дозволить більш плавний процес оновлення glibc це спростить реалізацію під час виконання, а також надано бібліотеки заглушок для сумісності з програмами, створеними за допомогою попередніх версій glibc.

З боку змін, зосереджених на Linux Glibc 2.34 виділяє додана можливість використання 64 -розрядного типу time_t у конфігураціях які традиційно використовували тип time_t 32 біт. Ця функція доступна лише в системах з ядром 5.1 і вище.

Ще одна специфічна зміна для Linux - це реалізація функції execveatЩо дозволяє запускати виконуваний файл із відкритого дескриптора файлів. Нова функція також використовується у реалізації виклику fexecve, який не вимагає встановлення псевдофайлової системи / proc під час запуску.

Також була додана функція close_range (), який доступний для версій Linux 5.9 і вище і яке може бути використовується, щоб дозволити процесу закрити повний спектр дескрипторів файлів відкрити одночасно, додатково реалізовано параметр glibc.pthread.stack_cache_size, який можна використовувати для регулювання розміру кешу стека pthread.

Крім того, додана функція _Fork, заміна для функції вилка який відповідає вимогам "асинхронного сигналу", тобто його можна безпечно викликати з обробників сигналів. Під час виконання _Fork формується мінімальне середовище, достатнє для виклику функцій в обробниках сигналів, таких як підняття та виконання, без виклику функцій, які можуть змінювати блокування або внутрішній стан.

Для частини вразливостей, виправлених у Glibc 2.34, згадується наступне:

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

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