Glibc 2.32 Системалык китепкананын чыгарылышы

алты айдан кийин иштеп чыгуу жарыяланган системалык китепкана чыгаруу GNU C китепканасы (glibc) 2.32, ал толугу менен ISO C11 жана POSIX.1-2017 стандарттарынын талаптарына жооп берет. Жаңы релиз 67 иштеп чыгуучунун оңдоолорун камтыйт.

Glibc 2.32де ишке ашырылгандардан жакшыртуулар сиз белгилей аласыз:

  • Synopsys ARC HS (ARCv2 ISA) процессорлоруна колдоо кошулду. Портту иштетүү үчүн кеминде binutils 2.32, gcc 8.3 жана Linux kernel 5.1 талап кылынат. Үч ABI варианты колдоого алынат: arc-linux-gnu, arc-linux-gnuhf жана arceb-linux-gnu (биг-эндиан);
  • DT_AUDIT жана бөлүмдөрүндө көрсөтүлгөн аудит модулдарын жүктөө
    Аткарылуучу файлдын DT_DEPAUDIT.

  • Powerpc64le архитектурасы үчүн "-mabi=ieeelongdouble" опциясы менен курууда иштетилген IEEE128 узун кош түрүн колдоо ишке ашырылат.
  • Кээ бир API'лер GCC "кирүү" атрибуту менен аннотацияланган, бул мүмкүн болгон буфердик толуп кетүүлөрдү жана башка чектен чыгуу сценарийлерин аныктоо үчүн GCC 10 компиляциясында жакшыраак эскертүүлөрдү түзүүгө мүмкүндүк берет.
  • Linux системалары үчүн pthread_attr_setsigmask_np жана функциялары
    pthread_attr_getsigmask_np, бул колдонмого pthread_create аркылуу түзүлгөн жиптер үчүн сигнал маскасын көрсөтүү мүмкүнчүлүгүн берет.

  • Юникод 13.0.0 спецификациясын колдоо үчүн коддоо маалыматтары, символдордун түрү жөнүндө маалымат жана транслитерация таблицалары жаңыртылды;
  • Жаңы баш файл кошулду , __libc_single_threaded өзгөрмөсүн аныктайт, ал бир жиптүү оптималдаштыруу үчүн колдонмолордо колдонулушу мүмкүн.
  • sigabbrev_np жана sigdescr_np функциялары кошулду, сигналдын кыскартылган атын жана сыпаттамасын кайтарат (мисалы, SIGHUP үчүн “HUP” жана “Hangup”).
  • Катанын атын жана сыпаттамасын кайтаруучу strerrorname_np жана strerrordesc_np функциялары кошулду (мисалы, EINVAL үчүн "EINVAL" жана "Жарамсыз аргумент").
  • ARM64 платформасы үчүн "--enable-standard-branch-protection" желек кошулду (же -mranch-protection=GCCде стандарт), ал ARMv8.5-BTI (Branch Target Indicator) механизмин коргоого мүмкүндүк берет. аткарылбашы керек болгон инструкциялар топтомдорунун аткарылышы.тармактуу өтүүлөр. Коддун ыктыярдуу бөлүмдөрүнө өтүүлөрдү бөгөттөө кайтарууга багытталган программалоо ыкмаларын (ROP - Return-Oriented Programming; чабуулчу өз кодун эстутумга жайгаштырууга аракет кылбайт, бирок мурунтан эле бар болгон бөлүктөр менен иштейт) эксплойттерде гаджеттерди түзүүнү болтурбоо үчүн ишке ашырылат. Каалаган функцияны алуу үчүн чалуулардын тизмеги түзүлө турган кайра башкаруу инструкциясы менен аяктаган машина көрсөтмөлөрүнүн).
  • Эскирген функцияларды чоң тазалоо жүргүзүлдү, анын ичинде “--enable-obsolete-rpc” жана “--enable-obsolete-nsl” опциялары, баш файл. . sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore жана sigset функциялары, sys_siglist, _sys_siglist жана sys_sigabbrev массивдери, sys_errlist, _sys_errlist, sys_nerr жана _thesys_nerr белгилери алдын ала даярдалган, hesys_nerr жана _thesys_nerr.
  • ldconfig дээрлик 20 жылдан бери glibcде колдоого алынган жаңы ld.so.cache форматын колдонуу үчүн демейки боюнча жылдырылды.
  • Оңдолгон кемчиликтер:
    • CVE-2016-10228 – iconv утилитасындагы цикл туура эмес көп байт берилиштерди иштетүүдө “-c” опциясы менен иштетилгенде пайда болот.
    • CVE-2020-10029 псевдо-нөл аргумент менен тригонометриялык функцияларды чакырганда стек бузулушу.
    • CVE-2020-1752 - Жолдордогу үй каталогуна (“~пайдалануучу”) шилтемени кеңейтүүдө glob функциясында эстутумга кийин бош колдонуу мүмкүнчүлүгү.
    • CVE-2020-6096 - ARMv7 платформасында memcpy() жана memmove()деги терс параметр маанилерин туура эмес иштетүү, көчүрүлгөн аймактын өлчөмүн аныктайт. берет memcpy() жана memmove() функцияларында маалыматтарды белгилүү бир жол менен иштетүүдө коддун аткарылышын уюштуруу. Маанилүү маселе болуп саналат калды маалымат ачыкка чыккандан бери дээрлик эки ай бою жана Glibc иштеп чыгуучулары кабарлангандан бери беш ай бою оңдолбогон.

Source: opennet.ru

Комментарий кошуу