Glibc 2.32 rendszerkönyvtár kiadás

Hat hónapos fejlesztés után közzétett rendszerkönyvtár kiadás GNU C könyvtár (glibc) 2.32, amely teljes mértékben megfelel az ISO C11 és POSIX.1-2017 szabványok követelményeinek. Az új kiadás 67 fejlesztő javítását tartalmazza.

A Glibc 2.32-ban megvalósítottak közül fejlesztések megjegyzés:

  • Hozzáadott támogatás a Synopsys ARC HS (ARCv2 ISA) processzorokhoz. A port futtatásához legalább binutils 2.32, gcc 8.3 és Linux kernel 5.1 szükséges. Három ABI-változat támogatott: arc-linux-gnu, arc-linux-gnuhf és arceb-linux-gnu (big-endian);
  • A DT_AUDIT és szakaszokban meghatározott audit modulok betöltése
    A végrehajtható fájl DT_DEPAUDIT.

  • A powerpc64le architektúra esetében az IEEE128 long double típus támogatása van megvalósítva, amely a „-mabi=ieeelongdouble” opcióval történő építéskor engedélyezve van.
  • Egyes API-k a GCC „access” attribútumával vannak ellátva, amely jobb figyelmeztetések generálását teszi lehetővé a GCC 10-ben történő fordításkor a lehetséges puffertúlcsordulások és más határokon kívüli forgatókönyvek észlelésére.
  • Linux rendszereken a pthread_attr_setsigmask_np és a függvények
    pthread_attr_getsigmask_np, amelyek lehetővé teszik az alkalmazás számára, hogy jelmaszkot adjon meg a pthread_create használatával létrehozott szálakhoz.

  • A kódolási adatok, a karaktertípus-információk és az átírási táblázatok frissítésre kerültek, hogy támogassák a Unicode 13.0.0 specifikációt;
  • Új fejlécfájl hozzáadva , amely meghatározza a __libc_single_threaded változót, amely az egyszálú optimalizálás alkalmazásokban használható.
  • Hozzáadott sigabbrev_np és sigdescr_np függvények, amelyek a jel rövidített nevét és leírását adják vissza (például „HUP” és „Hangup” a SIGHUP esetén).
  • Hozzáadott strerrorname_np és strerrordesc_np függvények, amelyek visszaadják a hiba nevét és leírását (például "EINVAL" és "Érvénytelen argumentum" az EINVAL-hoz).
  • Az ARM64 platformhoz egy "--enable-standard-branch-protection" jelző került hozzáadásra (vagy -mbranch-protection=standard a GCC-ben), amely lehetővé teszi az ARMv8.5-BTI (Branch Target Indicator) mechanizmus védelmét a nem végrehajtandó utasításkészletek végrehajtása elágazó átmenetek. A kód tetszőleges szakaszaira való áttérés blokkolása azért van megvalósítva, hogy megakadályozza a modulok létrehozását a visszatérés-orientált programozási technikákat használó exploitokban (ROP – Return-Oriented Programming; a támadó nem próbálja meg elhelyezni a kódját a memóriában, hanem a már meglévő darabokon működik). gépi utasítások, amelyek egy visszatérési vezérlő utasítással végződnek, amelyekből egy híváslánc épül fel a kívánt funkcionalitás elérése érdekében).
  • Az elavult szolgáltatások jelentős tisztítása megtörtént, beleértve az „--enable-obsolete-rpc” és „--enable-obsolete-nsl” opciók fejlécfájljának eltávolítását. . Az sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore és sigset függvények, a sys_siglist, _sys_siglist és sys_sigabbrev tömbök, a sys_errlist, _sys_errlist, N modulated the he, precsi_yssner and precsi
  • Az ldconfig alapértelmezés szerint az új ld.so.cache formátum használatára került, amelyet a glibc már csaknem 20 éve támogat.
  • Sebezhetőség javítása:
    • CVE-2016-10228 – Az iconv segédprogramban egy hurok lép fel, ha a „-c” kapcsolóval fut, amikor helytelen többbájtos adatot dolgoz fel.
    • CVE-2020-10029 Veremsérülés trigonometrikus függvények pszeudo-null argumentumú meghívásakor.
    • CVE-2020-1752 – Felszabadítás utáni memória-hozzáférés a glob függvényben a saját könyvtárra („~user”) való hivatkozás kiterjesztésekor az útvonalakban.
    • CVE-2020-6096 – A negatív paraméterértékek helytelen kezelése az ARMv7 platformon a memcpy() és memmove() függvényekben, ami meghatározza a másolt terület méretét. Lehetővé teszi a kódvégrehajtás megszervezése a memcpy() és memmove() függvényekben meghatározott módon formázott adatok feldolgozásakor. Lényeges, hogy a probléma maradt csaknem két hónapja javítatlan az információ nyilvános közzététele óta, és öt hónapja a Glibc fejlesztői értesítése óta.

Forrás: opennet.ru

Hozzászólás