Dumating ang Glibc 2.35 na may mga pagpapahusay, pag-aayos ng bug at higit pa

Pagkatapos ng anim na buwan ng pag-unlad ang paglabas ng bagong bersyon ng Glibc 2.35 ay inihayag kung saan may kasamang mga pag-aayos mula sa 66 na developer at sa mga ipinatupad na pagpapabuti, makikita natin na ang suporta para sa lokal na "C.UTF-8" ay idinagdag, na kinabibilangan ng mga collation para sa lahat ng Unicode code, ngunit limitado sa paggamit ng mga hanay ng ASCII sa mga function ng fnmatch, regexec at regcomp upang i-save space.

Ang lokal ay humigit-kumulang 400 KB, kung saan ang 346 KB ay LC_CTYPE data para sa Unicode, at dapat na naka-install nang hiwalay (hindi naka-built sa Glibc). Ang data sa pag-encode, impormasyon ng uri ng character, at mga talahanayan ng transliterasyon ay na-update upang suportahan ang detalye ng Unicode 14.0.0.

Ang isa pang pagbabago na namumukod-tangi ay iyon Y magpatupad ng mga function at macro na nagpapaikot sa resulta sa isang mas makitid na uri, Bilang karagdagan sa pagpapatupad ng mga function at macro upang mahanap ang minimum at maximum ng mga floating point na numero ng mga uri ng float, long double, _FloatN at _FloatNx, na inilarawan sa detalye ng IEEE 754-2019.

para sa mga function exp10, ang mga kaukulang macro ay idinaragdag sa header file, na hindi nakatali sa mga partikular na uri, kasama ang _PRINF_NAN_LEN_MAX macro ay idinagdag sa , iminungkahi sa draft na pamantayang ISO C2X.

Ang dynamic na linking system ay nagpapatupad ng isang bagong algorithm ng pag-uuri DSO gamit ang depth search (DFS) upang matugunan ang mga isyu sa pagganap kapag pinangangasiwaan ang mga dependency ng loop. Upang piliin ang DSO sort algorithm, ang glibc.rtld.dynamic_sort na parameter ay iminungkahi, na maaaring itakda sa "1" upang bumalik sa nakaraang algorithm.

Bukod dito nagdagdag ng suporta para sa isang bagong function na '__memcmpeq' sa ABI, na ginagamit ng mga compiler para i-optimize ang paggamit ng `memcmp' kapag ang return value ng function na ito ay ginagamit lang para tingnan ang completion status ng isang operation.

Ang suporta para sa awtomatikong pagpaparehistro ng thread gamit ang rseq (restartable sequences) system call na ibinigay mula sa Linux kernel 4.18. Ang rseq system call nagbibigay-daan upang ayusin ang tuluy-tuloy na pagpapatupad ng isang pangkat ng mga tagubilin na hindi nagambala at ginagawa ang resulta kasama ang huling pahayag sa pangkat. Sa esensya, nagbibigay ito ng pasilidad para sa napakabilis na atomic execution ng mga operasyon na, kung maabala ng isa pang thread, ay nililinis at muling sinusubukan.

Sa kabilang banda, nagbibigay ito default na compilation ng lahat ng executable file ng mga built-in na programa at isang test suite sa PIE (position-independent executable) mode.

Upang huwag paganahin ang pag-uugaling ito, ang opsyong “–disable-default-pie” ay ibinigay, plus para sa Linux, ay nagdagdag ng glibc.malloc.hugetlb na setting upang baguhin ang pagpapatupad ng malloc upang gamitin ang madvise system call na may MADV_HUGEPAGE na flag para sa mmap at sbrk, o direktang gumamit ng malalaking memory page sa pamamagitan ng pagtukoy sa MAP_HUGETLB na flag sa mga tawag sa mmap.

Sa unang kaso, ang pagpapalakas ng pagganap ay maaaring makamit sa pamamagitan ng paggamit ng transparent na Huge Pages sa madvise mode, at sa pangalawang kaso, maaari mong gamitin ang malalaking page na nakalaan sa system (Huge Pages).

Dapat ding tandaan na ang ilang mga kahinaan ay naayos sa bagong bersyon na ito:

  • CVE-2022-23218, CVE-2022-23219: Isang buffer overflow sa svcunix_create at clnt_create function na dulot ng pagkopya ng mga nilalaman ng isang parameter ng filename sa stack nang hindi sinusuri ang laki ng nakopyang data. Para sa mga application na binuo nang walang stack na proteksyon at gamit ang "unix" na protocol, ang kahinaan ay maaaring humantong sa malisyosong pagpapatupad ng code kapag nagpoproseso ng napakahahabang filename.
  • CVE-2021-3998: isang kahinaan sa realpath() function na sanhi ng pagbabalik ng maling halaga sa ilalim ng ilang partikular na kundisyon na naglalaman ng hindi nalinis na natitirang data mula sa stack. Para sa SUID-root fusermount program, ang kahinaan ay maaaring gamitin upang makakuha ng sensitibong impormasyon mula sa memorya ng proseso, halimbawa, upang makakuha ng impormasyon ng pointer.
  • CVE-2021-3999: solong byte buffer overflow sa getcwd() function. Ang problema ay sanhi ng isang bug na umiral mula noong 1995. Upang tumawag ng overflow, sa isang hiwalay na mount point namespace, tawagan lang ang chdir() sa "/" na direktoryo.

Sa wakas Kung interesado kang malaman ang tungkol dito, maaari mong suriin ang mga detalye sa sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.