Glibc 2.32 Sistem Kitabxanası Buraxılışı

Altı aylıq inkişafdan sonra nəşr olundu sistem kitabxanasının buraxılışı GNU C Kitabxanası (glibc) 2.32, ISO C11 və POSIX.1-2017 tələblərinə tam uyğundur. Yeni buraxılışa 67 tərtibatçı tərəfindən düzəlişlər daxildir.

Glibc 2.32-da həyata keçirilir təkmilləşdirmələr qeyd edə bilərsiniz:

  • Synopsys ARC HS (ARCv2 ISA) prosessorları üçün əlavə dəstək. Portun işləməsi üçün ən azı binutils 2.32, gcc 8.3 və Linux kernel 5.1 tələb olunur. Üç ABI variantı dəstəklənir: arc-linux-gnu, arc-linux-gnuhf və arceb-linux-gnu (big-endian);
  • DT_AUDIT və bölmələrində göstərilən audit modullarının yüklənməsi
    İcra edilə bilən faylın DT_DEPAUDIT.

  • Powerpc64le arxitekturası üçün “-mabi=ieeelongdouble” seçimi ilə qurarkən aktivləşdirilən IEEE128 uzun qoşa tip üçün dəstək həyata keçirilir.
  • Bəzi API-lər GCC 'giriş' atributu ilə şərh olunur, bu, mümkün bufer daşqınlarını və digər hüduddan kənar ssenariləri aşkar etmək üçün GCC 10-da tərtib edildikdə daha yaxşı xəbərdarlıqlar yaratmağa imkan verir.
  • Linux sistemləri üçün pthread_attr_setsigmask_np və funksiyaları
    pthread_attr_getsigmask_np, proqrama pthread_create istifadə edərək yaradılmış mövzular üçün siqnal maskası təyin etmək imkanı verir.

  • Unicode 13.0.0 spesifikasiyasını dəstəkləmək üçün kodlaşdırma məlumatları, simvol tipi məlumatı və transliterasiya cədvəlləri yeniləndi;
  • Yeni başlıq faylı əlavə edildi , __libc_single_threaded dəyişənini təyin edən, tək yivli optimallaşdırmalar üçün tətbiqlərdə istifadə oluna bilər.
  • Siqnalın qısaldılmış adını və təsvirini qaytaran sigabbrev_np və sigdescr_np funksiyaları əlavə edildi (məsələn, SIGHUP üçün “HUP” və “Hangup”).
  • Xətanın adını və təsvirini qaytaran strerrorname_np və strerrordesc_np funksiyaları əlavə edildi (məsələn, EINVAL üçün "EINVAL" və "Etibarsız arqument").
  • ARM64 platforması üçün ARMv8.5-BTI (Branch Target Indicator) mexanizmini qorumağa imkan verən "--enable-standard-branch-protection" (və ya -mranch-protection=GCC-də standart) bayrağı əlavə edilmişdir. yerinə yetirilməməli olan göstərişlər toplularının yerinə yetirilməsi.budaqlanan keçidlər. Kodun ixtiyari bölmələrinə keçidlərin bloklanması qaytarılma yönümlü proqramlaşdırma üsullarından (ROP - Return-Oriented Programming) istifadə edən istismarlarda qadcetlərin yaradılmasının qarşısını almaq üçün həyata keçirilir. İstənilən funksionallığı əldə etmək üçün zənglər zənciri qurulan qaytarma idarəetmə təlimatı ilə bitən maşın təlimatları).
  • “--enable-obsolete-rpc” və “--enable-obsolete-nsl” seçimlərinin, başlıq faylının silinməsi də daxil olmaqla köhnəlmiş funksiyaların əsaslı təmizlənməsi həyata keçirilib. . sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore və sigset funksiyaları, sys_siglist, _sys_siglist və sys_sigabbrev massivləri, sys_errlist, _sys_errlist, sys_nerr və _thesys_nerr modulları əvvəlcədən hazırlanıb.
  • ldconfig, demək olar ki, 20 ildir glibc-də dəstəklənən yeni ld.so.cache formatından istifadə etmək üçün defolt olaraq köçürülüb.
  • Zəifliklər düzəldildi:
    • CVE-2016-10228 – Yanlış çox baytlıq məlumatları emal edərkən “-c” seçimi ilə işə salındıqda iconv yardım proqramında döngə yaranır.
    • CVE-2020-10029 Pseudo-null arqumenti ilə triqonometrik funksiyaları çağırarkən stack korrupsiyası.
    • CVE-2020-1752 - Yollarda ev kataloquna (“~istifadəçi”) istinad genişləndirilərkən glob funksiyasında istifadədən sonra boş yaddaşa giriş.
    • CVE-2020-6096 – Kopyalanan sahənin ölçüsünü təyin edən memcpy() və memmove()-də mənfi parametr dəyərlərinin ARMv7 platformasında səhv işləməsi. İmkan verir memcpy() və memmove() funksiyalarında müəyyən şəkildə formatlaşdırılmış verilənləri emal edərkən kodun icrasını təşkil edin. Problemin olması əhəmiyyətlidir qaldı Məlumatın ictimaiyyətə açıqlanmasından və Glibc tərtibatçılarının xəbərdar edilməsindən sonra təxminən iki ay ərzində düzəliş edilməmişdir.

Mənbə: opennet.ru

Добавить комментарий