Издаването на системната библиотека Glibc 2.40

След шестимесечно развитие, е публикувана версия на системната библиотека GNU C Library (glibc) 2.40, която изцяло отговаря на изискванията на стандартите ISO C11 и POSIX.1-2017. В новото издание са включени поправки от 68 разработчици.

От подобренията в Glibc 2.40 notable могат да се отбележат:

  • В заглавния файл math.h са добавени нови експоненциални и логаритмични функции, дефинирани в стандарт C23: exp2m1, exp10m1, log2p1, log10p1 и logp1. Функциите са налични в варианти за типовете float, double, long double, _FloatN и _FloatNx.
  • Добавен е макрос _ISOC23_SOURCE, който определя използването на възможности, предлагани в стандарт C23 (в момента в Glibc е реализирана само част от възможностите на C23). Използването на C23 също може да се активира при компилация чрез указване в GCC на опции -std=c23, -std=gnu23, -std=c2x или -std=gnu2x.
  • Добавена е настройка „glibc.rtld.enable_secure“, позволяваща при провеждане на тестове да се стартира програмата така, сякаш има флаг за смяна на идентификатора на потребителя (setuid).
  • На платформата Linux заглавният файл epoll.h е актуализиран за поддръжка на нови ioctl и структури epoll, появили се в ядрото на Linux 6.9.
  • Функционалността за откритие на потенциални препълвания на буфера и свързани със сигурността грешки по време на изпълнението на функции за работа със стрингове и управление на паметта („_FORTIFY_SOURCE“) е адаптирана за компилиране на Glibc с компилатора Clang.
  • В библиотеката с векторни математически функции (libmvec) са предложени реализации на функциите acosh, asinh, atanh, cbrt, cosh, erf, erfc, hypot, pow, sinh и tanh за архитектура Aarch64.
  • На системи x86 за ускоряване на записването на големи набори от данни в функцията memset е предоставена възможност за деактивиране на използването на временни буфери. Оптимизацията се активира с настройка „x86_memset_non_temporal_threshold“.
  • Макросите в заглавния файл stdbit.h, работещи с различни типове (типово-генерични), при използване на GCC 14 са преведени на използване на вградени функции __builtin_stdc_bit_ceil за поддръжка на операнди с типове __int128 и _BitInt(N).
  • Полета с епохален брояч на времето в структурите lastlog, utmp и utmpx са променени от използването на 32-битови знакови типове на беззнакови типове, което позволява максималното адресирано време от брояча да бъде удължено от 2038 година до 2106 година.
  • Устранени уязвимости:
    • CVE-2024-2961 — препълване на буфер при преобразуване на специално форматирани низове в кодирането ISO-2022-CN-EXT с функцията iconv(). В практиката уязвимостта може да бъде използвана за дистанционна атака на PHP приложения, водеща до изпълнение на код.
    • CVE-2024-33599 — препълване на буфер в кода за работа с кеша netgroup в процеса nscd (Name Service Cache Daemon). Уязвимостта може да бъде експлоатирана чрез изпращане на специално форматирана заявка от клиента.
    • CVE-2024-33600 — разименуване на нулев указател в процеса nscd, което може да доведе до аварийно приключване при обработка на определени заявки.
    • CVE-2024-33601 — грешка при работа с кеша netgroup може да доведе до аварийно приключване на процеса nscd поради провал при заделяне на памет.
    • CVE-2024-33602 — повреждане на паметта при работа с кеша netgroup в процеса nscd.

    Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster