Hat hónapos fejlesztés után megjelent a GNU C Library (glibc) 2.40 rendszerelem könyvtár kiadása, amely teljes mértékben megfelel az ISO C11 és POSIX.1-2017 szabványok követelményeinek. Az új kiadás 68 fejlesztő javításait tartalmazza.
A Glibc 2.40-ben megvalósított fejlesztések közül kiemelhetjük:
- A math.h fejlécfájlhoz új exponenciális és logaritmikus függvények kerültek hozzáadásra, amelyeket a C23 szabvány határoz meg: exp2m1, exp10m1, log2p1, log10p1 és logp1. A függvények elérhetők float, double, long double, _FloatN és _FloatNx típusok számára.
- Hozzáadásra került a _ISOC23_SOURCE makró, amely a C23 szabvány által javasolt lehetőségek használatát határozza meg (jelenleg a Glibc csak a C23 lehetőségeinek egy részét valósítja meg). A C23-at a GCC fordítóban a -std=c23, -std=gnu23, -std=c2x vagy -std=gnu2x opciókkal lehet aktiválni.
- Hozzáadásra került a „glibc.rtld.enable_secure” beállítás, amely lehetővé teszi a program tesztelésekor a felhasználóazonosító (setuid) választójelként történő futtatást.
- A Linux platformon az epoll.h fejlécfájl frissítésre került az új ioctl és epoll struktúrák támogatásához, amelyek megjelentek a Linux 6.9 kernelben.
- A memória kezelésével és a biztonsággal összefüggő hiba észleléséért felelős funkcionalitás („_FORTIFY_SOURCE”) a Glibc Clang fordítóval való összeállításához került alkalmazásra.
- A vektorszámítási függvények könyvtárában (libmvec) az Aarch64 architektúrához elérhetővé váltak az acosh, asinh, atanh, cbrt, cosh, erf, erfc, hypot, pow, sinh és tanh függvények implementációi.
- x86 rendszereken a nagyobb adathalmazok memset függvényébe írásának gyorsítása érdekében lehetőség nyílt a ideiglenes puffer használatának kikapcsolására. Az optimalizálás a „x86_memset_non_temporal_threshold” beállítással aktiválható.
- A stdbit.h fejlécfájlban a különböző típusokkal (type-generic) dolgozó makrók a GCC 14 használata közben az __builtin_stdc_bit_ceil beépített függvényekre történtek átállításra a __int128 és _BitInt(N) típusú operandusok támogatása érdekében.
- A lastlog, utmp és utmpx struktúrák időszámláló mezői 32 bites aláírt típusról aláíratlan típusra történtek átállításra, lehetővé téve ezzel a számító idő maximális címezhetőségének kiterjesztését 2038-ról 2106-ra.
- Sebezhetőségek kiküszöbölve:
- CVE-2024-2961 — puffer túlcsordulás az ISO-2022-CN-EXT kódolású, speciálisan formázott sztringek iconv() függvény általi konvertálása során. A gyakorlatban ezt a sebezhetőséget távoli támadásra lehet használni PHP-alkalmazások ellen, amely kód futtatásához vezethet.
- CVE-2024-33599 — puffer túltöltés a netgroup gyorsítótár kezelésére vonatkozó kódban az nscd (Név Szolgáltatás Gyorsítótár Daemon) folyamatban. A sebezhetőség kihasználható, ha a kliens egy speciálisan formázott kérést küld.
- CVE-2024-33600 — null pointer dereferálás az nscd folyamatban, amely bizonyos kérések feldolgozása során összeomláshoz vezethet.
- CVE-2024-33601 — a netgroup gyorsítótárral kapcsolatos hiba összeomláshoz vezethet az nscd folyamatban a memóriaallokációs hiba miatt.
- CVE-2024-33602 — memória sérülés a netgroup gyorsítótárral való munka során az nscd folyamatban.
Forrás: opennet.ru
