Pas 6 muajsh zhvillimi u publikua versioni i bibliotekës sistemore GNU C Library (glibc) 2.41, i cili i plotëson plotësisht kërkesat e standardeve ISO C11 dhe POSIX.1-2017. Në krijimin e këtij versioni morën pjesë 79 zhvillues.
Disa nga përmirësimet e zbatuara në Glibc 2.41 përfshijnë:
- Për platformën Linux janë shtuar funksionet e reja sched_setattr dhe sched_getattr, përmes të cilave mund të vendosni/lexoni parametrat e planifikuesit të detyrave. Në praktikë, këto funksione lejojnë konfigurimin e politikave të planifikimit të kërkesave, si SCHED_DEADLINE, të cilat përdorin parametra të shtuar përveç prioriteteve.
- Në utilitarin iconv është shtuar mbështetje për konvertimin e kodimeve në vend (nëse emrat e skedarëve hyrës dhe dalës përkojnë, iconv tani krijon automatikisht një skedar të përkohshëm dhe pas përfundimit të konvertimit e zëvendëson atë me skedarin origjinë).
- Në skedarin e titullit math.h janë shtuar funksione trigonometrike që shfaqen në standardin C23 (TS 18661-4:2015): acospi, asinpi, atan2pi, atanpi, cospi, sinpi dhe tanpi.
- Nga projekti CORE-MATH janë transferuar funksionet e optimizuara dhe ato që përdorin rrethim të saktë, si exp10m1f, exp2m1f, expm1f, log10f, log2p1f, log1pf, log10p1f, cbrtf, erff, erfcf, lgammaf, tgammaf, tanf, acosf, acoshf, asinf, asinhf, atanf, atan2f, atanhf, coshf, sinhf dhe tanhf.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r zgjerimin ARM64 GCS (Guarded Control Stack) pĂ«r mbrojtjen harduerike tĂ« adresave tĂ« rikthimit nga funksionet dhe bllokimin e eksploitĂ«ve qĂ« pĂ«rdorin metodat e programimit tĂ« orientuar ndaj rikthimit (ROP â Return-Oriented Programming, ku eksploitĂ« formohet nga copĂ«za tĂ« shumicĂ«s sĂ« instruksioneve tĂ« makinerisĂ« qĂ« pĂ«rfundojnĂ« me instrukcioni i rikthimit tĂ« kontrollit). ARM64 GCS lejon pĂ«rdorimin e teknikĂ«s sĂ« stack-ut tĂ« hijeve (shadow stack) pĂ«r mbrojtjen e proceseve nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit â pas kalimit tĂ« kontrollit nĂ« funksion, adresat e rikthimit ruhet nga procesori jo vetĂ«m nĂ« stack-un e zakonshĂ«m, por po ashtu edhe nĂ« njĂ« stack tĂ« veçantĂ« hije, i cili nuk mund tĂ« ndryshohet drejtpĂ«rdrejt. Para dalje nga funksioni, adresa e rikthimit nxirret nga stack-u i hijeve dhe krahasohet me adresĂ«n e rikthimit nga stack-u kryesor. PĂ«r ndĂ«rtimin e Glibc me mbĂ«shtetje pĂ«r GCS kĂ«rkohet tĂ« paktĂ«n versionet binutils 2.44 dhe GCC 15.
- ĂshtĂ« bĂ«rĂ« njĂ« punĂ« e madhe pĂ«r tĂ« pĂ«rmirĂ«suar gjenerimin e kodit dhe pĂ«r tĂ« rritur performancĂ«n e funksioneve matematikore pĂ«r arkitekturĂ«n ARM64/AArch64. JanĂ« realizuar optimizime duke pĂ«rdorur instrukcione vektoriale (SVE, Scalable Vector Extension) dhe zgjerime SIMD (Neon).
- Për sistemet me procesorë ARM64/AArch64 është shtuar mbështetje për mekanizmin Memory Protection Keys, i cili përdoret për të kufizuar qasjen në faqet e memories pa ndryshuar tabelën e faqes së memories.
- Për sistemet me procesorë PowerPC64 është shtuar mbështetje për instrukcione të zgjeruara për t'u mbrojtur nga përdorimi i programimit të orientuar nga kthimi në eksploit.
- ĂshtĂ« shtuar njĂ« lloj i ri arkitekture arch_kind_hygon pĂ«r procesorĂ«t x86-64 Hygon kinezĂ«, tĂ« ndĂ«rtuar nĂ« bazĂ« tĂ« teknologjive AMD.
- ĂshtĂ« zgjeruar ndjeshĂ«m disposioni pĂ«r testimin e glibc, numri i testeve nĂ« tĂ« cilin Ă«shtĂ« rritur nga 5408 nĂ« 6232 krahasuar me versionin e kaluar.
- ĂshtĂ« shtuar mundĂ«sia pĂ«r testimin e ndĂ«rtimit tĂ« glibc duke pĂ«rdorur kompilerĂ« C dhe C++ qĂ« janĂ« tĂ« ndryshĂ«m nga ata qĂ« janĂ« pĂ«rdorur pĂ«r ndĂ«rtimin aktual. PĂ«r shembull, âconfigure TEST_CC="gcc-6.4.1" TEST_CXX="g++-6.4.1"â dhe âconfigure TEST_CC="clang" TEST_CXX="clang++"â.
- Në opsionet e përcaktuara në skedarin /etc/resolv.conf dhe në variablën e mjedisit RES_OPTIONS, është e mundur të përdoret prefiksi "-" për të pastruar opsionin e mëparshëm me këtë emër. Për shembull, nëse në skedarin /etc/resolv.conf është e specifikuar "options no-aaaa", atëherë kur procesi aktivizohet me variablën e mjedisit "RES_OPTIONS=-no-aaaa", do të pezullohet ndalimi për dërgimin e kërkesave DNS për të marrë regjistrin AAAA.
- Në DNS-resolverin është shtuar mbështetje për opsionin "strict-error", ku funksioni getaddrinfo(), nëse tipi i adresave (AF_UNSPEC) nuk është specifikuar qartë, do të provojë të marrë vlerat e regjistrave A (IPv4) dhe AAAA (IPv6) nga një server tjetër DNS, nëse kërkesa për regjistrin A ose AAAA në serverin e parë DNS përfundoi me një gabim. Pa specifikimin e "strict-error", në një situatë të tillë do të kthehet adresa e marrë nga kërkesa e suksesshme, ndërsa vlera e kërkesës së dështuar do të injorohet. Për shembull, nëse server ktheu regjistrin "A", por dha një gabim gjatë kërkesës për "AAAA", getaddrinfo pa opsionin "strict-error" menjëherë do të kthejë vetëm adresën IPv4, ndërsa me opsionin "strict-error" do të përpiqet të përsërisë kërkesat te një server tjetër DNS.
- Të dhënat e kodifikimeve, informacioni për llojet e simboleve dhe tabelat e transliterimit janë përditësuar për të mbështetur specifikimin Unicode 16.0.0.
- Makroja «_ISOC2Y_SOURCE» është shtuar, duke mundësuar aktivizimin e funksionaliteteve të përcaktuara në draftin e standardit C2Y. Funksionalitete të tilla mund të aktivizohen gjithashtu me makron _GNU_SOURCE dhe përmes flagjeve të përkthyesit («gcc -std=gnu2y»).
- ĂshtĂ« realizuar mjeti benchtest pĂ«r tĂ« monitoruar performancĂ«n e funksioneve tĂ« ndryshme (zakonisht matematikore).
- ĂshtĂ« shtuar konfigurimi glibc.rtld.execstack, pĂ«rmes tĂ« cilit mund tĂ« ndalohet shprehimisht pĂ«rdorimi i stack-ut ekzekutiv.
- ĂshtĂ« shtetur ABI rseq (sekuenca tĂ« rinisjes), duke ofruar njĂ« mekanizĂ«m pĂ«r ekzekutimin e shpejtĂ« dhe atomik tĂ« operacioneve (nĂ« rast se operacioni ndĂ«rpritet nga njĂ«çșżçš tjetĂ«r, gjendja e rikthehet dhe pĂ«rpjekja pĂ«rsĂ«ritet). NĂ« versionin e ri Ă«shtĂ« duke u ofruar mundĂ«sia e pĂ«rdorimit tĂ« mundĂ«sive tĂ« zgjeruara nĂ« rseq, tĂ« cilat munguan nĂ« ABI-nĂ« e origjinĂ«s, si identifikuesit e ekzekutimit paralel (mm_cid, ID e konkurencĂ«s sĂ« hartĂ«s sĂ« memories) dhe identifikuesit NUMA (node_id).
- Përkrahja për portin për sistemet big-endian ARC (arceb-linux-gnu) është pezulluar.
- Vulnerabiliteti i zgjidhur (CVE-2025-039) që shkakton mbushje të buferit gjatë ekzekutimit të funksionit assert(). Mbushja ndodh kur tregohet një emër programi mjaft i madh (argv[0]). Problemi konsiderohet si jo rrezikshëm, pasi përtej buferit shkruhen 4 byte, të cilat nuk mund të kontrollohen nga sulmuesi. Megjithatë, është interesante vetë shfaqja e një vulnerabiliteti në funksionet e ndryshimesh që ontstaan nga një gabim gjatë nxjerrjes së emrit të aplikacionit aktual.
Burimi: opennet.ru
