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

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

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

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° процСссоров Synopsys ARC HS (ARCv2 ISA). Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΡ€Ρ‚Π° трСбуСтся ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ binutils 2.32, gcc 8.3 ΠΈ ядро Linux 5.1. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Ρ‚Ρ€ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ABI arc-linux-gnu, arc-linux-gnuhf ΠΈ arceb-linux-gnu (big-endian);
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π°ΡƒΠ΄ΠΈΡ‚Π°, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² сСкциях DT_AUDIT ΠΈ
    DT_DEPAUDIT исполняСмого Ρ„Π°ΠΉΠ»Π°.

  • Для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ powerpc64le Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚ΠΈΠΏΠ° IEEE128 long double, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠ°Ρ ΠΏΡ€ΠΈ сборкС с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ «-mabi=ieeelongdouble».
  • НСкоторыС API Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ с использованиСм GCC-Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ‘access’, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈ компиляции Π² GCC 10 Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ качСствСнныС прСдупрСТдСния ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π²Ρ‹Ρ…ΠΎΠ΄Π° Π·Π° допустимыС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.
  • Для Linux-систСм Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ pthread_attr_setsigmask_np ΠΈ
    pthread_attr_getsigmask_np, Π΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ маску сигнала для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², созданных ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ pthread_create.

  • Π”Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ, информация ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… символов ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ транслитСрации ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ спСцификации Unicode 13.0.0;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» <sys/single_threaded.h>, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ __libc_single_threaded, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² прилоТСниях для ΠΎΠ΄Π½ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sigabbrev_np ΠΈ sigdescr_np, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ сокращённоС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ описаниС сигнала (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «HUP» ΠΈ Hangup» для SIGHUP).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ strerrorname_np ΠΈ strerrordesc_np, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ имя ΠΈ описаниС ошибки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «EINVAL» ΠΈ «Invalid argument» для EINVAL).
  • Для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ARM64 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Π»Π°Π³ «—enable-standard-branch-protection» (ΠΈΠ»ΠΈ -mbranch-protection=standard Π² GCC), Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ARMv8.5-BTI (Branch Target Indicator) для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ выполнСния Π½Π°Π±ΠΎΡ€ΠΎΠ² инструкций, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΈ Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΈ. Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ участки ΠΊΠΎΠ΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ для противодСйствия созданию Π³Π°Π΄ΠΆΠ΅Ρ‚ΠΎΠ² Π² эксплоитах, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΡ‘ΠΌΡ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования (ROP — Return-Oriented Programming, Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ Π½Π΅ пытаСтся Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ свой ΠΊΠΎΠ΄ Π² памяти, Π° ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈΡΡ кусками ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… инструкций, Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΡ…ΡΡ инструкциСй Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° управлСния, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² для получСния Π½ΡƒΠΆΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ).
  • ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° большая чистка ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… возмоТностСй, Π² Ρ‚ΠΎΠΌ числС ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ «—enable-obsolete-rpc» ΠΈ «—enable-obsolete-nsl», Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» <sys/sysctl.h>. ΠžΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore ΠΈ sigset, массивы sys_siglist, _sys_siglist ΠΈ sys_sigabbrev, символы sys_errlist, _sys_errlist, sys_nerr ΠΈ _sys_nerr, NSS-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ hesiod.
  • ldconfig ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½ Π½Π° использованиС Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ld.so.cache, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поддСрТиваСтся Π² glibc ΡƒΠΆΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΈ 20 Π»Π΅Ρ‚.
  • УстранСны уязвимости:
    • CVE-2016-10228 — Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΠ²Π°Π½ΠΈΠ΅ Π² ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ iconv, ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‰Π΅Π΅ΡΡ ΠΏΡ€ΠΈ запускС с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ «-c», Π² случаС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Ρ… ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….
    • CVE-2020-10029 — ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ стСка ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ тригономСтричСских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с псСвдонулСвым Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ.
    • CVE-2020-1752 — ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ области памяти послС Π΅Ρ‘ освобоТдСния (use-after-free) Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ glob ΠΏΡ€ΠΈ раскрытии ссылки Π½Π° домашний ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ («~user») Π² путях.
    • CVE-2020-6096 — нСкоррСктная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ARMv7 ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² memcpy() ΠΈ memmove(), ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ области. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π² функциях memcpy() ΠΈ memmove() ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΡΡ‚Π°Π²Π°Π»Π°ΡΡŒ нСисправлСнной ΠΏΠΎΡ‡Ρ‚ΠΈ Π΄Π²Π° мСсяца с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ раскрытия ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΏΡΡ‚ΡŒ мСсяцСв с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° увСдомлСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Glibc.

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

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