Lëshimi i bibliotekës sistemore Glibc 2.39 dhe grupit të utilitarëve GNU Binutils 2.42

Pas pas gjashtë muajsh zhvillimi u publikua versioni i bibliotekës sistemore GNU C Library (glibc) 2.39, i cili plotëson tërësisht kërkesat e standardeve ISO C11 dhe POSIX.1-2017. Në këtë version të ri janë përfshirë rregullime nga 67 zhvillues.

Nga përmirësimet e realizuara në Glibc 2.39 mund të veçojmë:

  • U siguruar mbĂ«shtetje pĂ«r stakun e hijes (shadow stack), i cili u shfaq nĂ« bĂ«rthamĂ«n Linux 6.6 dhe lejon bllokimin e funksionimit tĂ« shumĂ« eksploiteve, duke pĂ«rdorur kapacitetet harduerike tĂ« procesorĂ«ve Intel pĂ«r mbrojtjen nga ri-shkruarja e adresĂ«s sĂ« rikthimit nga funksioni nĂ« rast tĂ« mbushjes sĂ« tamponit nĂ« shĂ«nim. Thelbi i mbrojtjes Ă«shtĂ« se pasi kontrolli kalon nĂ« funksionin, adresat e rikthimit ruhten nga procesori jo vetĂ«m nĂ« shĂ«nimin e zakonshĂ«m, por edhe nĂ« njĂ« “stak tĂ« hijes” tĂ« veçantĂ«, e cila nuk mund tĂ« ndryshohet drejtpĂ«rdrejt. Para daljes nga funksioni, adresa e rikthimit nxirret nga staku i hijes dhe kontrollohet me adresĂ«n e rikthimit nga staku kryesor. MospĂ«rputhja e adresave çon nĂ« gjenerimin e njĂ« pĂ«rjashtimi, duke bllokuar situatat kur njĂ« eksploit ka arritur tĂ« ri-shkruajĂ« adresĂ«n nĂ« stakun kryesor. PĂ«r aktivizim Ă«shtĂ« shtuar opsioni pĂ«r ndĂ«rtim «--enable-cet».
  • ËshtĂ« shtuar njĂ« skedar i ri tituj <stdbit.h>, i pĂ«rcaktuar nĂ« draftin e standardit ISO C2X dhe qĂ« pĂ«rmban funksionet stdc_leading_zeros, stdc_leading_ones, stdc_trailing_zeros, stdc_trailing_ones, stdc_first_leading_zero, stdc_first_leading_one, stdc_first_trailing_zero, stdc_first_trailing_one, stdc_count_zeros, stdc_count_ones, stdc_has_single_bit, stdc_bit_width, stdc_bit_floor dhe stdc_bit_ceil nĂ« variante me tipe «unsigned char», «unsigned short», «unsigned int», «unsigned long int» dhe «unsigned long long int».
  • PĂ«r platformĂ«n Linux janĂ« realizuar funksionet posix_spawnattr_getcgroup_np dhe posix_spawnattr_setcgroup_np, si dhe flag POSIX_SPAWN_SETCGROUP, tĂ« cilat lejojnĂ« rregullimin e cgroupv2 nĂ« njĂ« proces tĂ« ri pĂ«rmes funksioneve posix_spawn dhe posix_spawnp, duke eliminuar shkaktimin e gjendjeve tĂ« garĂ«s. Funksionet janĂ« zgjerime GNU dhe kĂ«rkojnĂ« njĂ« bĂ«rthamĂ« Linux me mbĂ«shtetje pĂ«r thirrjen sistemore clone3.
  • PĂ«r platformĂ«n Linux janĂ« realizuar funksionet pidfd_spawn dhe pidfd_spawn, tĂ« cilat janĂ« afĂ«r nĂ« semantikĂ« me funksionin posix_spawn, por kthejnĂ« jo njĂ« identifikues procesi (PID), por njĂ« deshkrim tĂ« skedarit pĂ«r pĂ«rdorim nĂ« funksionet qĂ« mbĂ«shtesin mekanizmin PIDFD, si pidfd_send_signal, poll dhe waitid (PIDFD lidhet me njĂ« proces tĂ« caktuar dhe nuk ndryshohet, ndĂ«rsa PID mund tĂ« lidhet me njĂ« proces tjetĂ«r pas pĂ«rfundimit tĂ« procesit aktual tĂ« lidhur me kĂ«tĂ« PID).
  • PĂ«r platformĂ«n Linux Ă«shtĂ« shtuar funksioni pidfd_getpid pĂ«r tĂ« pĂ«rcaktuar identifikuesin e procesit (PID) bazuar nĂ« dosjen e identifikimit tĂ« procesit (PIDFD), i kthyer nga funksionet pid_spawn, fork_np dhe pidfd_open.
  • NĂ« funksionin e familjes scanf Ă«shtĂ« shtuar modifikatori i madhĂ«sisĂ« «wN», i aplikuar pĂ«r argumentet me lloje intN_t, int_leastN_t, uintN_t dhe uint_leastN_t. PĂ«r shembull, pĂ«r tĂ« lexuar vlera dhjetore me llojet int32_t dhe int_least32_t mund tĂ« specifiqoni «%w32d», ndĂ«rsa pĂ«r ato nĂ« bazĂ« shtatĂ«shi «%w32x». Po ashtu, Ă«shtĂ« shtuar modifikatori «wfN» pĂ«r llojet int_fastN_t dhe uint_fastN_t, tĂ« paraqitura nĂ« standardin e draftit ISO C2X.
  • ËshtĂ« shtuar konfigurimi «glibc.cpu.plt_rewrite», qĂ« pĂ«rfshin riparimin e PLT (Tabela e Lidhjes sĂ« ProcedurĂ«s) nĂ« sistemet x86-64 ku lidhĂ«si zĂ«vendĂ«son kalimet indirekte (indirect branch) nĂ« PLT me tĂ« drejta.
  • ËshtĂ« shtuar konfigurimi «glibc.mem.decorate_maps» pĂ«r tĂ« shtuar informacion shtesĂ« mbi ndarjen e memories (pĂ«r shembull, mbi grumbullin e thread-Ă«ve tĂ« krijuar nga funksioni pthread_create, ose memorien e ndarĂ« pĂ«rmes malloc).
  • NĂ« strukturĂ«n «statvfs» Ă«shtĂ« siguruar mbushja e fushĂ«s «f_type» me informacionin mbi llojin e FS, ekuivalent me pĂ«rmbajtjen e fushĂ«s nĂ« strukturĂ«n «statfs». MĂ« parĂ« nĂ« Linux, nĂ« fushĂ«n «f_type» gjithmonĂ« shkruhej 0.
  • PĂ«r platformĂ«n AArch64, nĂ« libmvec dhe math.h janĂ« shtuar annotime, qĂ« lejojnĂ« gjatĂ« vendosjes sĂ« opsionit «-ffast-math» tĂ« pĂ«rdoret vektorizimi i thirrjeve gjatĂ« ndĂ«rtimit nĂ« GCC 9 dhe versionet mĂ« tĂ« reja tĂ« kompajlerit. Vektorizimi aktivizohet pĂ«r funksionet matematikore acos, acosf, asin, asinf, atan, atanf, atan2, atan2f, cos, cosf, exp, expf, exp10, exp10f, exp2, exp2f, expm1, expm1f, log, logf, log10, log10f, log1p, log1pf, log2, log2f, sin, sinf, tan dhe tanf.
  • Nga pĂ«rbĂ«rja Ă«shtĂ« hequr biblioteka libcrypt dhe skedari pĂ«rkatĂ«s i titullit «». Rekomandohet qĂ« zhvilluesit e aplikacioneve tĂ« kalojnĂ« nĂ« pĂ«rdorimin e biblioteka alternative, si libxcrypt.
  • NĂ« utilitarin ldconfig tani kalohen skedarĂ«t me simbolin ‘;’ nĂ« emrin e skedarit ose qĂ« pĂ«rfundojnĂ« nĂ« «.dpkg.tmp» dhe «.dpkg.new», duke lejuar qĂ« skedarĂ«t e pĂ«rkohshĂ«m tĂ« menaxherĂ«ve tĂ« paketave rpm dhe dpkg tĂ« mos pĂ«rpunohen.
  • ËshtĂ« ndĂ«rprerĂ« mbĂ«shtetja pĂ«r arkitekturĂ«n ia64 (ia64*-*-linux-gnu), e pĂ«rdorur nĂ« procesorĂ«t Intel Itanium.
  • JanĂ« eliminuar vulnerabilitetet:
    • CVE-2023-6246, CVE-2023-6779, CVE-2023-6780 — janĂ« vulnerabilitete kritike nĂ« funksionin __vsyslog_internal(), qĂ« lejojnĂ« pĂ«rmes manipulimeve me fillimin e aplikacioneve SUID tĂ« arrihet ekzekutimi i kodit me privilegje tĂ« rritura.
    • CVE-2023-4911 — njĂ« vulnerabilitet nĂ« Glibc ld.so, i cili lejon qĂ« tĂ« fitohen tĂ« drejtat root nĂ« sistem. Vulnerabiliteti shkaktohet nga njĂ« gabim nĂ« kodin e analizĂ«s sĂ« vargut, i caktuar nĂ« variablĂ«n e mjedisit GLIBC_TUNABLES, dhe mund tĂ« çojĂ« nĂ« shkruajtjen e vlerĂ«s sĂ« analizuar pĂ«rtej memorie tĂ« ndarĂ«. EkzistojnĂ« eksploitĂ« funksionalĂ«.
    • CVE-2023-4806 — njĂ« vulnerabilitet nĂ« funksionin getaddrinfo, i shkaktuar nga qasja nĂ« memorie pas lirimit tĂ« saj (use-after-free). Problemi shfaqet kur plugin NSS realizon vetĂ«m thirrjet e kthimit «_gethostbyname2_r» dhe «_getcanonname_r», por nuk mbĂ«shtet thirrjen «_gethostbyname3_r». PĂ«r tĂ« shfrytĂ«zuar vulnerabilitetin, serveri DNS duhet tĂ« kthejĂ« njĂ« numĂ«r tĂ« madh adresash IPv6 dhe IPv4 pĂ«r hostin e kĂ«rkuar, duke çuar nĂ« rĂ«nien e procesit qĂ« thirri funksionin getaddrinfo pĂ«r familjen AF_INET6 kur aktivizohen flagjet AI_CANONNAME, AI_ALL dhe AI_V4MAPPED.
    • CVE-2023-4527 — njĂ« vulnerabilitet nĂ« funksionin getaddrinfo, qĂ« lejon leximin e tĂ« dhĂ«nave nga zona jashtĂ« kufijve tĂ« memorjes gjatĂ« pĂ«rpunimit tĂ« pĂ«rgjigjes DNS, e cila Ă«shtĂ« marrĂ« pĂ«rmes TCP, me njĂ« madhĂ«si mĂ« tĂ« madhe se 2048 byte. Vulnerabiliteti shfaqet kur pĂ«rdoret opsioni «no-aaaa» nĂ« /etc/resolv.conf.

    Përveç kësaj, mund të theksohet lëshimi i paketës së utilitarëve sistemorë GNU Binutils 2.42, e cila përfshin programe të tilla si GNU linker, GNU assembler, nm, objdump, strings, strip.

    Në versionin e ri të Binutils:

    • NĂ« assembler (gas) pĂ«r sistemet x86-64 Ă«shtĂ« shtuar njĂ« opsion eksperim total «—scfi=experimental» pĂ«r sintezĂ«n e strukturave CFI (Control Flow Integrity) pĂ«r kodin assembler tĂ« shkruar manual, qĂ« pĂ«rputhet me System V AMD64 ABI.
    • NĂ« programin readelf Ă«shtĂ« shtuar opsioni «—extra-sym-info» pĂ«r tĂ« treguar informacion tĂ« zgjeruar mbi simbolet («—symbols»), si emri i seksionit qĂ« bĂ«het referencĂ« pĂ«r indeksin st_shndx.
    • NĂ« utilitarin objcopy Ă«shtĂ« ofruar mundĂ«sia e pĂ«rdorimit tĂ« vlerĂ«s «large» nĂ« opsionin «—set-section-flags» pĂ«r tĂ« caktuar seksionin e flamurit SHF_X86_64_LARGE pĂ«r objektet ELF nĂ« sistemet x86-64. NĂ« opsionin «—visualize-jumps» Ă«shtĂ« implementuar mbĂ«shtetje pĂ«r arkitekturĂ«n s390.
    • GjatĂ« disasemblerimit tĂ« instrukcioneve s390 Ă«shtĂ« implementuar mundĂ«sia pĂ«r tĂ« treguar komente nĂ« pĂ«rshkrimin e instrukcioneve. PĂ«r tĂ« pĂ«rfshirĂ« pĂ«rshkrimet nĂ« objdump, mund tĂ« specifikoni parametrin «-M insndesc», ndĂ«rsa nĂ« gdb — cilĂ«simin «set disassembler-options insndesc».
    • NĂ« linker janĂ« shtuar opsionet «-z mark-plt» dhe «-z nomark-plt» pĂ«r tĂ« shĂ«nuar regjistrimet nĂ« tabelĂ«n PLT, duke pĂ«rdorur etiketat DT_X86_64_PLT, DT_X86_64_PLTSZ dhe DT_X86_64_PLTENT.
    • NĂ« linker Ă«shtĂ« shtetur mbĂ«shtetje pĂ«r renditjen nĂ« mĂ«nyrĂ« tĂ« kundĂ«rt.
    • JanĂ« shtuar opsionet «—warn-execstack-objects», «—error-execstack» dhe «—error-rxw-segments» pĂ«r tĂ« shkaktuar paralajmĂ«rime ose gabime gjatĂ« pĂ«rdorimit nĂ« objektet e thjeshta tĂ« ekzekutimit.
    • ËshtĂ« realizuar mbĂ«shtetje pĂ«r ABI 2.30 tĂ« arkitekturĂ«s LoongArch, si dhe mbĂ«shtetje pĂ«r instruksione tĂ« reja, tĂ« caktuara nĂ« specifikimin LoongArch 1.10.
    • ËshtĂ« shtuar mbĂ«shtetje pĂ«r grupin e instruksioneve KVX, tĂ« pĂ«rdorura nĂ« procesorĂ«t Kalray (p.sh., pĂ«rdoren nĂ« SoC Coolidge).
    • PĂ«r sistemet e bazuara nĂ« arkitekturĂ«n Intel Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r zgjerimet:
      • Intel APX: 32 GPR, NDD, PUSH2/POP2, PUSHP/POPP.
      • USER_MSR.
      • AVX10.1.
      • PBNDKB.
      • SM4.
      • SM3.
      • SHA512.
      • AVX-VNNI-INT16.
    • NĂ« portin pĂ«r arkitekturĂ«n RISC-V Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r zgjerimet:
      • T-Head (XTheadVector, XTheadZvlsseg dhe XTheadZvamo).
      • CORE-V (XCVmac, XCValu).
      • SiFive VCIX (XSfVcp).
    • NĂ« portin pĂ«r arkitekturĂ«n AArch64 Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r zgjerimet:
      • SVE2.1 (Scalable Vector Extension 2.1).
      • SME2.1 (Scalable Matrix Extension 2.1).
      • B16B16 (BFloat16 dhe BFloat16 pĂ«r SVE2 dhe SME2).
      • RASv2 (Reliability, Availability and Serviceability v2).
      • LSE128 (128-bit Atomic).
      • GCS (Guarded Control Stack).
      • CHK (Kontrolloni Statusin e VeçorisĂ«).
      • SPECRES2 (PĂ«rmirĂ«simi i Restriksionit tĂ« Spekulimeve).
      • LRCPC3 (Ngarko-Marrja RCpc).
      • THE (Forcimi i PĂ«rkthimit).
      • ITE (Gjurmimi i Instruksioneve).
      • D128 (dokumentet 128-bit tĂ« tabelĂ«s sĂ« faqeve tĂ« memories).
      • XS (atributi i memories XS).
    • ËshtĂ« shtuar mbĂ«shtetje pĂ«r procesorĂ«t AArch64 Cortex-A520, Cortex-A720, Cortex-X3 dhe Cortex-X4.
    • NĂ« assembler BPF, pĂ«r t'u siguruar me assemblerin clang/LLVM Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r ndarjen e komenteve me simbolet «#» dhe «//», si dhe pĂ«rdorimin e simbolit «;» pĂ«r ndarjen e shprehjeve nĂ« varg («;» mĂ« nuk mund tĂ« pĂ«rdoret pĂ«r komente).

    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