nemrég bejelentették a Glibc 2.34 új verziójának megjelenését amely hat hónapos fejlesztés után következik, és amelyben számos meglehetősen fontos változtatást hajtottak végre, köztük a libpthread, libdl, libutil és libanl könyvtárak felvételét, valamint különböző hibajavításokat, amelyek közül az egyik blokkolást okozott.
Azok számára, akik nem ismerik a Glibc -et, tudnia kell, mi az GNU C könyvtár, közismert nevén glibc a standard GNU C futásidejű könyvtár. Azon rendszereken, ahol használják, ez a C könyvtár az biztosítja és meghatározza a rendszerhívásokat és egyéb alapvető funkciókat, szinte minden program használja.
A Glibc 2.34 főbb újdonságai
A Glibc 2.34 új verziójában bemutatjuk A libpthread, a libdl, a libutil és a libanl a fő könyvtárba lett integrálva, funkcionalitásának alkalmazása az alkalmazásokban már nem igényli a -lpthread, -ldl, -lutil és -lanl zászlókhoz való kötést.
Továbbá megemlítik, hogy előkészületek történtek a libreolv integrálására a libc -be, amellyel az integráció gördülékenyebb glibc frissítési folyamatot tesz lehetővé és leegyszerűsíti a futásidejű megvalósítást, és a csonkkönyvtárakat is kompatibilisnek találták a glibc korábbi verzióival készült alkalmazásokkal.
A változások részéről a Linuxra fókuszáltak A Glibc 2.34 kiemeli a hozzáadott képesség a 64 bites time_t típus használatához a konfigurációkban hogy hagyományosan a time_t típust használták 32 bit. Ez a funkció csak az 5.1 -es és újabb kernelt tartalmazó rendszereken érhető el.
Egy másik specifikus változás a Linux számára a az execveat függvény megvalósításaHogy lehetővé teszi egy futtatható fájl futtatását nyílt fájlleíróból. Az új funkciót a fexecve hívás megvalósításában is használják, amely nem igényli a / proc pszeudo-fájlrendszer telepítését indításkor.
A funkciót is hozzáadták close_range (), amely elérhető a Linux 5.9 verzióhoz és magasabb és ami lehet lehetővé teszi egy folyamat számára a fájlleírók teljes körének bezárását egyidejűleg nyitva, ezen kívül megvalósul a glibc.pthread.stack_cache_size paraméter, amellyel beállítható a pthread stack gyorsítótár mérete.
Sőt, hozzáadott _Fork funkció, csere a funkcióhoz villa amely megfelel az "aszinkronjel-biztonságos" követelményeknek, vagyis biztonságosan hívható a jelkezelőktől. A _Fork végrehajtása során minimális környezet alakul ki, amely elegendő ahhoz, hogy olyan funkciókat hívjon le a jelkezelőkben, mint a lift és a execve, anélkül, hogy olyan funkciókat hívna meg, amelyek megváltoztathatják a zárolást 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évszerver gyorsítótárazási démon) meghiúsult, mert kétszer hívták az ingyenes funkciót, miközben a speciálisan kialakított hálózati csoport kéréseket dolgozta fel.
CVE-2021-33574: hozzáférés a mq_notify funkcióban már felszabadított (használat nélküli) memóriaterülethez, ha a SIGEV_THREAD értesítési típust olyan szál attribútummal használja, amelyhez alternatív CPU-kötési maszk van beállítva. A probléma összeomlást okozhat, de más támadási lehetőségek nincsenek kizárva.
CVE-2021-35942: A paraméterméret túlcsordulása a wordexp függvényben összeomolhat.
A többi változás közül amelyek kiemelkednek:
- 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 érdekel, hogy többet tudjon meg róla ennek az új verziónak ellenőrizheti a részletek a következő linken.