Выпуск систСмной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Glibc 2.35

ПослС ΡˆΠ΅ΡΡ‚ΠΈ мСсяцСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Ρ€Π΅Π»ΠΈΠ· систСмной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GNU C Library (glibc) 2.35, которая ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ слСдуСт трСбованиям стандартов ISO C11 ΠΈ POSIX.1-2017. Π’ состав Π½ΠΎΠ²ΠΎΠ³ΠΎ выпуска Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ исправлСния ΠΎΡ‚ 66 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Из Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² Glibc 2.35 ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π»ΠΎΠΊΠ°Π»ΠΈ «C.UTF-8», Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€Π°Π²ΠΈΠ»Π° сортировки для всСх Unicode-ΠΊΠΎΠ΄ΠΎΠ², Π½ΠΎ для экономии мСста ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ использованиСм ASCII-Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² Π² функциях fnmatch, regexec ΠΈ regcomp. Π›ΠΎΠΊΠ°Π»ΡŒ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 400 ΠšΠ‘, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… 346 ΠšΠ‘ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ LC_CTYPE для Unicode, ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ установки (Π½Π΅ встроСна Π² Glibc).
  • Π”Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ, информация ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… символов ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ транслитСрации ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ спСцификации Unicode 14.0.0.
  • Π’ <math.h> ΠΈ <tgmath.h> Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ макросы, ΠΎΠΊΡ€ΡƒΠ³Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ·ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°: fsqrt, fsqrtl, dsqrtl, ffma, ffmal, dfmal, fMsqrtfN, fMsqrtfNx, fMxsqrtfN, fMxsqrtfNx, fMfmafN, fMfmafNx, fMxfmafN ΠΈ fMxfmafNx. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ описаны Π² спСцификациях TS 18661-1:2014, TS 18661-3:2015 ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ Π‘ΠΈ-стандарта ISO C2X.
  • Π’ <math.h> ΠΈ <tgmath.h> Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ макросы для нахоТдСния ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° ΠΈ максимума чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ float, long double, _FloatN ΠΈ _FloatNx, описанныС Π² спСцификации IEEE 754-2019 ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ Π‘ΠΈ-стандарта ISO C2X: fmaximum, fmaximum_num, fmaximum_mag, fmaximum_mag_num, fminimum, fminimum_num, fminimum_mag, fminimum_mag_num.
  • Π’ <math.h> Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ константы для чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ точности: M_Ef, M_LOG2Ef, M_LOG10Ef, M_LN2f, M_LN10f, M_PIf, M_PI_2f, M_PI_4f, M_1_PIf, M_2_PIf, M_2_SQRTPIf, M_SQRT2f ΠΈ M_SQRT1_2f.
  • Для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ exp10 Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» <tgmath.h> Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ°ΠΊΡ€ΠΎcΡ‹, Π½Π΅ привязанныС ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ.
  • Π’ <stdio.h> Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ макрос _PRINTF_NAN_LEN_MAX, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π² Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊΠ΅ стандарта ISO C2X.
  • Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сСмСйства printf Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ спСцификаторы Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° «%b» ΠΈ «%B» для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ†Π΅Π»Ρ‹Ρ… чисСл Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ прСдставлСнии.
  • Π’ систСмС динамичСского связывания Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½ΠΎΠ²Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сортировки DSO, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ поиска Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ (DFS) для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π·Π°Ρ†ΠΈΠΊΠ»Π΅Π½Π½Ρ‹Ρ… зависимостСй. Для Π²Ρ‹Π±ΠΎΡ€Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сортировки DSO ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ glibc.rtld.dynamic_sort, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «1» для ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° старый Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ.
  • Π’ ABI Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ‘__memcmpeq’, примСняСмой компиляторами для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ использования ‘memcmp’, Π² случаС Ссли Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ статуса Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° автоматичСской рСгистрации ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ систСмный Π²Ρ‹Π·ΠΎΠ² rseq (restartable sequences), прСдоставляСмый начиная с ядра Linux 4.18. БистСмный Π²Ρ‹Π·ΠΎΠ² rseq позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ инструкций, Π½Π΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‰Π΅ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ послСднСй инструкциСй Π² Π³Ρ€ΡƒΠΏΠΏΠ΅. По сути прСдоставляСтся срСдство для ΠΎΡ‡Π΅Π½ΡŒ быстрого Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠ³ΠΎ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² случаС прСрывания Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ ΠΎΡ‡ΠΈΡ‰Π°ΡŽΡ‚ΡΡ ΠΈ прСдпринимаСтся повторная ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° выполнСния.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° символичСская ссылка /usr/bin/ld.so.
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° сборка ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ всСх исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² встроСнных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ тСстового Π½Π°Π±ΠΎΡ€Π° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ PIE (position independent executable). Для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ повСдСния прСдусмотрСна опция «—disable-default-pie».
  • Для Linux Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° настройка glibc.malloc.hugetlb, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ malloc Π½Π° использованиС систСмного Π²Ρ‹Π·ΠΎΠ²Π° madvise с Ρ„Π»Π°Π³ΠΎΠΌ MADV_HUGEPAGE для mmap ΠΈ sbrk ΠΈΠ»ΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ большиС страницы памяти Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ„Π»Π°Π³Π° MAP_HUGETLB Π² Π²Ρ‹Π·ΠΎΠ²Π°Ρ… mmap. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ увСличСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ссли Transparent Huge Pages ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ madvise, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ прСдоставляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… систСмой Π±ΠΎΠ»ΡŒΡˆΠΈΡ… страниц (Huge Pages).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция _dl_find_object, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для добавлСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ раскруткС стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² (unwind).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ OpenRISC (or1k-linux-gnu) Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой (soft-float). Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΡ€Ρ‚Π° трСбуСтся binutils 2.35, GCC 11, ΠΈ ядро Linux 5.4.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ сборочный Ρ„Π»Π°Π³ «—with-rtld-early-cflags», ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π»Π°Π³ΠΈ компиляции, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈ сборкС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° для динамичСского связывания.
  • Для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Linux Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция epoll_pwait2, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰Π°ΡΡΡ ΠΎΡ‚ epoll_wait ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π° с наносСкундной Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция posix_spawn_file_actions_addtcsetpgrp_np, ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°Ρ состояния Π³ΠΎΠ½ΠΊΠΈ ΠΏΡ€ΠΈ установкС ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° для Π½ΠΎΠ²ΠΎΠ³ΠΎ процСсса.
  • Для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… с Glibc ΠΈ GCC 12+, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ€Π΅ΠΆΠΈΠΌ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ «_FORTIFY_SOURCE=3», Π²Ρ‹ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ пСрСполнСния Π±ΡƒΡ„Π΅Ρ€Π° ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ строковых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ string.h. ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌΠ° «_FORTIFY_SOURCE=2» сводится ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ сниТСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.
  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Intel MPX (Memory Protection Extensions), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° соблюдСниС Π³Ρ€Π°Π½ΠΈΡ† областСй памяти (указанная тСхнология Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° распространСния ΠΈ ΡƒΠΆΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π° ΠΈΠ· GCC ΠΈ LLVM).
  • ОбъявлСн ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Ρ‘Π½ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ выпускС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ prelink ΠΈ связанныС с Π½ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния LD_TRACE_PRELINKING ΠΈ LD_USE_LOAD_BIAS.

    УстранСны уязвимости:

    • CVE-2022-23218, CVE-2022-23219 — ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Π° Π² функциях svcunix_create ΠΈ clnt_create, Π²Ρ‹Π·Π²Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² стСк содСрТимого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π° Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, собранных Π±Π΅Π· Π·Π°Ρ‰ΠΈΡ‚Ρ‹ стСка ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» «unix», ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ выполнСния ΠΊΠΎΠ΄Π° Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ° ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… ΠΈΠΌΡ‘Π½ Ρ„Π°ΠΉΠ»ΠΎΠ².
    • CVE-2021-3998 — ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ realpath(), вызванная Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… условиях Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ значСния, содСрТащСго Π½Π΅ΠΎΡ‡ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ остаточныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· стСка. Для SUID-root ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ fusermount ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для получСния ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… свСдСний ΠΈΠ· памяти процСсса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для получСния свСдСний ΠΎΠ± указатСлях.
    • CVE-2021-3999 — ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Π° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ getcwd(). ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²Ρ‹Π·Π²Π°Π½Π° ошибкой, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ с 1995 Π³ΠΎΠ΄Π°. Для Π²Ρ‹Π·ΠΎΠ²Π° пСрСполнСния достаточно Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ пространствС ΠΈΠΌΡ‘Π½ Ρ‚ΠΎΡ‡Π΅ΠΊ монтирования Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² chdir() для ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° «/».

    Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ