A Glibc 2.34 új verziójának megjelenését nemrég jelentették be. Hat hónapnyi fejlesztés után jelent meg, és számos fontos változást tartalmaz, amelyek közül a legfontosabb a libpthread, libdl, libutil és libanl könyvtárak beillesztése, valamint számos hibajavítás, amelyek közül az egyik összeomlásokat okozott.
Azok számára, akik nem ismerik a Glibc-t: ez egy GNU C könyvtár, közismert nevén glibc, és a GNU C nyelv szabványos futásidejű könyvtára. Azokon a rendszereken, ahol használják, ezt a C könyvtárat, amely rendszerhívásokat és más alapvető függvényeket biztosít és definiál, szinte minden program használja.
A Glibc 2.34 főbb újdonságai
A Glibc 2.34 új verziójában a libpthread, libdl, libutil és libanl főkönyvtárak integrálva lettek ; funkcionalitásuk alkalmazásokban való használatához már nem kell összekapcsolni őket az -lpthread, -ldl, -lutil és -lanl indikátorokkal.
Továbbá megemlítik, hogy előkészületek történtek a libresolv libc-be való integrálására, ami zökkenőmentesebb glibc frissítési folyamatot tesz lehetővé és egyszerűsíti a futásidejű megvalósítást. A glibc korábbi verzióival készült alkalmazásokkal való kompatibilitás érdekében csonkkönyvtárakat is biztosítottak.
A Glibc 2.34 Linuxra vonatkozó változásai közül a legfigyelemreméltóbb a 64 bites time_t típus használatának lehetősége olyan konfigurációkban , amelyek hagyományosan a 32 bites time_t típust használták . Ez a funkció csak az 5.1-es és újabb kernelverzióval rendelkező rendszereken érhető el.
Egy másik, Linux-specifikus változás az `execveat` függvény implementációja , amely lehetővé teszi egy futtatható fájl végrehajtását egy nyitott fájlleíróból . Ez az új függvény a `fexecve` hívás implementációjában is használatos, amely nem igényli a `/proc` pszeudo-fájlrendszer felcsatolását indításkor.
Hozzáadták a close_range() függvényt is, amely a Linux 5.9-es és újabb verzióiban érhető el , és lehetővé teszi egy folyamat számára, hogy egyszerre több megnyitott fájlleírót is bezárjon. Ezenkívül implementálták a glibc.pthread.stack_cache_size paramétert, amellyel a pthread verem gyorsítótárának mérete állítható be.
Továbbá hozzáadták a `_Fork` függvényt, amely a `fork` függvény helyettesítője , és megfelel az "async-signal-safe" követelményeknek, ami azt jelenti, hogy biztonságosan meghívható jelkezelőkből. A `_Fork` végrehajtása során egy minimális környezet jön létre, amely elegendő a jelkezelőkben található olyan függvények meghívásához, mint a `raise` és az `execute`, anélkül, hogy olyan funkciókat hívnának meg, amelyek megváltoztathatnák a zárolásokat vagy a belső állapotot.
A Glibc 2.34 -ben javított biztonsági rések egy részénél a következők szerepelnek:
CVE-2021-27645: az nscd folyamat (névkiszolgáló gyorsítótárazási démon) hibát okozott a free függvény dupla hívása miatt a speciálisan létrehozott hálózati csoportkérelmek feldolgozása közben.
CVE-2021-33574: Hozzáférés egy felszabadítás utáni használatra szánt memóriaterülethez az mq_notify függvényben, amikor a SIGEV_THREAD értesítéstípust olyan szál attribútummal használja, amelyhez alternatív CPU-kötési maszk van beállítva. Ez a probléma összeomlást okozhat, de más támadási lehetőségek sem kizártak.
CVE-2021-35942: A wordexp függvényben a paraméterméret túlcsordulása az alkalmazás összeomlását okozhatta.
Egyéb figyelemre méltó változások a következők:
- Az ISO C2X szabvány tervezetében meghatározott timespec_getres függvény hozzáadásra került, és a timespec_get függvény a POSIX clock_getres függvényhez hasonló képességekkel bővült.
- A gconv-modules fájlban csak minimális számú gconv modul maradt, a többit pedig egy további gconv-modules-extra.conf fájlba helyezték át, amely a gconv-modules.d könyvtárban található.
- Megszűnt a szimbolikus hivatkozások használata a telepíthető megosztott objektumok Glibc verzióhoz való kapcsolására. Ezek az objektumok most telepítve vannak (pl. A libc.so.6 ma már fájl, nem pedig a libc-2.34.so link).
- Linuxon az olyan funkciók, mint az shm_open és a sem_open, mostantól fájlrendszert igényelnek a / dev / shm csatolási pontra szerelt megosztott memóriához.
Végül, ha többet szeretne megtudni erről az új verzióról, a részleteket az alábbi linken találja .