Lëshimi i bibliotekës sistemore Glibc 2.35

Pas gjashtë muajsh zhvillimi, u publikua lëshimi i bibliotekës sistemore GNU C Library (glibc) 2.35, e cila plotëson plotësisht kërkesat e standardeve ISO C11 dhe POSIX.1-2017. Në këtë lëshim janë përfshirë rregullime nga 66 zhvillues.

Nga përmirësimet e realizuara në Glibc 2.35, mund të theksohen:

  • U shtua mbĂ«shtetje pĂ«r lokalizimin «C.UTF-8», i cili pĂ«rfshin rregullat e rendit pĂ«r tĂ« gjitha kodet Unicode, por pĂ«r tĂ« kursyer hapĂ«sirĂ«, Ă«shtĂ« i kufizuar nĂ« pĂ«rdorimin e ĐŽĐžĐ°ĐżĐ°Đ·ĐŸĐœĐ”ve ASCII nĂ« funksionet fnmatch, regexec dhe regcomp. Lokalit zĂ« rreth 400 KB, nga tĂ« cilat 346 KB janĂ« tĂ« dhĂ«nat LC_CTYPE pĂ«r Unicode, dhe kĂ«rkon instalim tĂ« veçantĂ« (nuk Ă«shtĂ« e ndĂ«rtuar brenda Glibc).
  • TĂ« dhĂ«nat e kodimeve, informacioni mbi llojet e simboleve dhe tabelat e transliterimit janĂ« pĂ«rditĂ«suar pĂ«r tĂ« mbĂ«shtetur specifikimin Unicode 14.0.0.
  • NĂ« dhe janĂ« realizuar funksione dhe makro qĂ« rroundojnĂ« rezultatin nĂ« njĂ« tip mĂ« tĂ« ngushtĂ«: fsqrt, fsqrtl, dsqrtl, ffma, ffmal, dfmal, fMsqrtfN, fMsqrtfNx, fMxsqrtfN, fMxsqrtfNx, fMfmafN dhe fMfmafNx. Funksionet janĂ« pĂ«rshkruar nĂ« specifikimet TS 18661-1:2014, TS 18661-3:2015 dhe janĂ« shtuar nĂ« draftin e standardit tĂ« ardhshĂ«m tĂ« CISO C2X.
  • NĂ« dhe janĂ« realizuar funksione dhe makro pĂ«r gjetjen e minimumit dhe maksimumit tĂ« numrave me presje floating me tipe float, long double, _FloatN dhe _FloatNx, tĂ« pĂ«rshkruara nĂ« specifikimin IEEE 754-2019 dhe tĂ« shtuar nĂ« draftin e standardit tĂ« ardhshĂ«m tĂ« CISO C2X: fmaximum, fmaximum_num, fmaximum_mag, fmaximum_mag_num, fminimum, fminimum_num, fminimum_mag, fminimum_mag_num.
  • NĂ« janĂ« shtuar konstantet pĂ«r numrat me presje floating me saktĂ«si tĂ« vetme: M_Ef, M_LOG2Ef, M_LOG10Ef, M_LN2f, M_LN10f, M_PIf, M_PI_2f, M_PI_4f, M_1_PIf, M_2_PIf, M_2_SQRTPIf, M_SQRT2f dhe M_SQRT1_2f.
  • PĂ«r funksionet exp10, nĂ« headerin janĂ« shtuar makro pĂ«rkatĂ«se, tĂ« cilat nuk janĂ« tĂ« lidhura me tipe tĂ« caktuara.
  • NĂ« Ă«shtĂ« shtuar makro _PRINTF_NAN_LEN_MAX, e propozuar nĂ« draftin e standardit ISO C2X.
  • NĂ« funksionet e familjes printf janĂ« shtuar specifikatorĂ«t e formatit «%b» dhe «%B» pĂ«r shfaqjen e numrave tĂ« tĂ«rĂ« nĂ« pĂ«rfaqĂ«simin binar.
  • NĂ« sistemin e lidhjes dinamike Ă«shtĂ« realizuar njĂ« algoritĂ«m i ri i renditjes DSO, qĂ« pĂ«rdor metodĂ«n e kĂ«rkimit nĂ« thellĂ«si (DFS) pĂ«r tĂ« zgjidhur problemet me performancĂ«n gjatĂ« trajtimit tĂ« varĂ«sive tĂ« cikluara. PĂ«r tĂ« zgjedhur algoritmin e renditjes DSO, Ă«shtĂ« propozuar parametrin glibc.rtld.dynamic_sort, tĂ« cilit mund t'i jepet vlera «1» pĂ«r tĂ« rikthyer algoritmin e vjetĂ«r.
  • NĂ« ABI Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r funksionin e ri '__memcmpeq', i cili pĂ«rdoret nga kompilatorĂ«t pĂ«r optimizimin e pĂ«rdorimit tĂ« 'memcmp', nĂ« rast se vlera e kthyer nga ky funksion pĂ«rdoret vetĂ«m pĂ«r tĂ« verifikuar statusin e pĂ«rfundimit tĂ« operacionit.
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r regjistrimin automatik tĂ« flukseve, duke pĂ«rdorur thirrjen sistemike rseq (sekuenca tĂ« rifillueshme) qĂ« ofrohet qĂ« nga bĂ«rthama Linux 4.18. Thirrja sistemike rseq lejon organizimin e ekzekutimit tĂ« pandĂ«rprerĂ« tĂ« njĂ« grupi instruktoresh, tĂ« cilat nuk ndĂ«rpriten dhe konfirmojnĂ« rezultatin e instrukcioneve tĂ« fundit nĂ« grup. NĂ« thelb, ofrohet njĂ« mjet pĂ«r ekzekutimin shumĂ« tĂ« shpejtĂ« tĂ« operacioneve, tĂ« cilat nĂ« rast ndĂ«rprerje nga njĂ« fluks tjetĂ«r pastrohen dhe pĂ«rpilohet njĂ« pĂ«rpjekje e re pĂ«r ekzekutimin.
  • ËshtĂ« shtuar njĂ« lidhje simbolike /usr/bin/ld.so.
  • ËshtĂ« siguruar qĂ« ndĂ«rtimi i tĂ« gjitha skedarĂ«ve ekzekutivĂ« tĂ« programeve tĂ« ndĂ«rtuara dhe setit tĂ« testeve tĂ« bĂ«het nĂ« modin PIE (ekzekutiv i pavarur nga pozita). PĂ«r tĂ« çaktivizuar kĂ«tĂ« sjellje, Ă«shtĂ« parashikuar opsioni ‘—disable-default-pie’.
  • PĂ«r Linux Ă«shtĂ« shtuar konfigurimi glibc.malloc.hugetlb, i cili lejon kalimin e implementimit tĂ« malloc nĂ« pĂ«rdorimin e thirrjes sistemike madvise me flamurin MADV_HUGEPAGE pĂ«r mmap dhe sbrk ose pĂ«rdorimin e drejtpĂ«rdrejtĂ« tĂ« faqeve tĂ« mĂ«dha tĂ« memories pĂ«rmes nĂ«nshkrimit tĂ« flamurit MAP_HUGETLB nĂ« thirrjet mmap. NĂ« rastin e parĂ« mund tĂ« arrihet njĂ« rritje e performancĂ«s, nĂ«se Faqet e MĂ«dha Transparente pĂ«rdoren nĂ« modin madvise, ndĂ«rsa nĂ« rastin e dytĂ« ofrohet mundĂ«sia e pĂ«rdorimit tĂ« faqeve tĂ« mĂ«dha tĂ« rezervuara nga sistemi (Huge Pages).
  • ËshtĂ« shtuar funksioni _dl_find_object, i cili mund tĂ« pĂ«rdoret pĂ«r tĂ« shtuar informacion rreth pĂ«rmbysjes sĂ« stack-ut tĂ« thirrjeve (unwind).
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r arkitekturĂ«n OpenRISC (or1k-linux-gnu) nĂ« modin e pĂ«rpunimit tĂ« operacioneve me pikĂ« tĂ« lundrueshme (soft-float). PĂ«r funksionimin e portit janĂ« tĂ« nevojshme binutils 2.35, GCC 11 dhe bĂ«rthama Linux 5.4.
  • ËshtĂ« shtuar flamuri i ndĂ«rtimit ‘—with-rtld-early-cflags’, me tĂ« cilin mund tĂ« tregoni flamuj tĂ« tjerĂ« tĂ« kompilimit qĂ« pĂ«rdoren gjatĂ« ndĂ«rtimit tĂ« kodit fillestar pĂ«r lidhjen dinamike.
  • PĂ«r platformĂ«n Linux Ă«shtĂ« shtuar funksioni epoll_pwait2, i cili ndryshon nga epoll_wait duke specifikuar njĂ« kohĂ« tĂ« largĂ«t me saktĂ«si nĂ« nanosekonda.
  • ËshtĂ« shtuar funksioni posix_spawn_file_actions_addtcsetpgrp_np, i cili pĂ«rjashton gjendjet e garĂ«s gjatĂ« vendosjes sĂ« terminalit tĂ« menaxhimit pĂ«r procesin e ri.
  • PĂ«r aplikacionet e kompiluar me Glibc dhe GCC 12+, Ă«shtĂ« krijuar mĂ«nyra e mbrojtjes "_FORTIFY_SOURCE=3", e cila identifikon potencialet e mbushjes sĂ« tamponit gjatĂ« ekzekutimit tĂ« funksioneve tĂ« vargut tĂ« pĂ«rcaktuara nĂ« header-in string.h. Dallimi nga modalitĂ  "_FORTIFY_SOURCE=2" qĂ«ndron nĂ« kontrollet e shtesĂ«, tĂ« cilat mund tĂ« çojnĂ« nĂ« njĂ« rĂ«nie tĂ« performancĂ«s.
  • PĂ«rkrahja pĂ«r zgjerimet Intel MPX (Memory Protection Extensions), tĂ« cilat pĂ«rdoren pĂ«r tĂ« verifikuar treguesit pĂ«r respektimin e kufijve tĂ« hapĂ«sirave tĂ« memories, Ă«shtĂ« ndĂ«rprerĂ« (kjo teknologji nuk u pĂ«rhap dhe Ă«shtĂ« hequr nga GCC dhe LLVM).
  • Mekanizmi prelink dhe variablat e lidhura mjedisore LD_TRACE_PRELINKING dhe LD_USE_LOAD_BIAS shpallen tĂ« vjetra dhe do tĂ« hiqen nĂ« edicionin e ardhshĂ«m.

    Janë eliminuar vulnerabilitetet:

    • CVE-2022-23218, CVE-2022-23219 — mbushje tamponi nĂ« funksionet svcunix_create dhe clnt_create, e shkaktuar nga kopjimi nĂ« stack i pĂ«rmbajtjes tĂ« parametrave me emrin e skedarit pa kontrollin e madhĂ«sisĂ« sĂ« tĂ« dhĂ«nave tĂ« kopjuara. PĂ«r aplikacionet e ndĂ«rtuara pa mbrojtje tĂ« stack-ut dhe qĂ« pĂ«rdorin protokollin "unix", kĂ«rcĂ«nimi mund tĂ« çojĂ« nĂ« ekzekutimin e kodit tĂ« autorĂ«ve tĂ« keq nĂ« pĂ«rpunimin e emrave shumĂ« tĂ« gjatĂ« tĂ« skedarĂ«ve.
    • CVE-2021-3998 — njĂ« dobĂ«si nĂ« funksionin realpath(), e shkaktuar nga kthimi nĂ« kushte tĂ« caktuara tĂ« njĂ« vlerĂ« tĂ« pasaktĂ«, qĂ« pĂ«rmban tĂ« dhĂ«na tĂ« mbetura tĂ« pastruar nga stack-u. PĂ«r programin SUID-root fusermount, mund tĂ« pĂ«rdoret kjo dobĂ«si pĂ«r tĂ« marrĂ« informacione tĂ« ndjeshme nga memoria e procesit, pĂ«r shembull, informacione mbi treguesit.
    • CVE-2021-3999 — mbushje njĂ«-byte e tamponit nĂ« funksionin getcwd(). Problemi Ă«shtĂ« shkaktuar nga njĂ« gabim qĂ« Ă«shtĂ« i pranishĂ«m qĂ« prej vitit 1995. Mjafton tĂ« bĂ«het njĂ« thirrje chdir() pĂ«r katalogun "/" nĂ« njĂ« hapĂ«sirĂ« emĂ«rtimi tĂ« montimĂ«ve pĂ«r tĂ« shkaktuar mbushjen.

    Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster