Dumating ang Glibc 2.34 na may mga pag-aayos ng kahinaan, mga bagong pag-andar para sa Linux at higit pa

Kamakailan lamang ang paglabas ng bagong bersyon ng Glibc 2.34 ay inihayag na darating pagkalipas ng anim na buwan ng pag-unlad at kung saan maraming mga mahalagang pagbabago ang nagawa, bukod dito ang pagsasama ng libpthread, libdl, libutil at libanl na aklatan, pati na rin ang iba't ibang mga pag-aayos ng bug kung saan ang isa sa mga ito ay sanhi ng pagbara.

Para sa mga hindi pamilyar sa Glibc, dapat nilang malaman kung ano ito isang GNU C library, karaniwang kilala bilang glibc ay ang pamantayang GNU C runtime library. Sa mga system kung saan ito ginagamit, ang C library na iyon nagbibigay at tumutukoy sa mga tawag sa system at iba pang mga pangunahing pag-andar, ginagamit ito ng halos lahat ng mga programa. 

Pangunahing mga bagong tampok ng Glibc 2.34

Sa bagong bersyon ng Glibc 2.34 na ipinakita libpthread, libdl, libutil at libanl ay isinama sa pangunahing silid-aklatan, gamit ang pag-andar nito sa mga application ay hindi na nangangailangan ng pagbubuklod sa kanila ng mga flag na -lpthread, -ldl, -lutil, at -lanl.

Bukod dito, nabanggit na ang mga paghahanda ay ginawa upang isama ang libreolv sa libc, kung saan ang pagsasama papayagan ang isang mas maayos na proseso ng pag-update ng glibc at pasimplehin nito ang pagpapatupad ng runtime at ang mga aklatan ng rint ay naibigay din para sa pagiging tugma sa mga application na binuo kasama ang mga naunang bersyon ng glibc.

Sa bahagi ng mga pagbabagong nakatuon sa Linux Ang Glibc 2.34 ay nagha-highlight ng nagdagdag ng kakayahang gumamit ng uri ng 64 bit na time_t sa mga config na ayon sa kaugalian ay ginamit ang uri ng time_t 32 bit. Magagamit lamang ang tampok na ito sa mga system na may kernel 5.1 at mas mataas.

Ang isa pang tukoy na pagbabago para sa Linux ay ang pagpapatupad ng pagpapaandar ng execveatNa pinapayagan ang pagpapatupad ng isang maipapatupad na file mula sa isang bukas na tagapaglarawan ng file. Ang bagong pag-andar ay ginagamit din sa pagpapatupad ng fexecve call, na hindi nangangailangan ng / proc pseudo-filesystem na mai-mount sa pagsisimula.

Ang pagpapaandar ay naidagdag din close_range () na magagamit para sa mga bersyon ng 5.9 ng Linux at mas mataas at alin ang maaaring ginamit upang payagan ang isang proseso upang isara ang isang buong saklaw ng mga deskriptor ng file buksan nang sabay, ipinapatupad din nito ang parameter ng glibc.pthread.stack_cache_size, na maaaring magamit upang ayusin ang laki ng cache ng pthread stack.

Bukod dito, nagdagdag ng _Fork function, isang kapalit para sa pagpapaandar tinidor na nakakatugon sa mga kinakailangang "async-signal-safe", nangangahulugang maaari itong matawag nang ligtas mula sa mga handler ng signal. Sa panahon ng pagpapatupad ng _Fork, isang maliit na kapaligiran ang nabuo, sapat na upang tawagan ang mga pagpapaandar sa mga handler ng signal tulad ng pagtaas at execve, nang walang mga tampok na maaaring baguhin ang mga kandado o panloob na estado.

Para sa bahagi ng mga kahinaan na naayos sa Glibc 2.34, ang mga sumusunod ay nabanggit:

CVE-2021-27645: Ang proseso ng nscd (pangalan ng server caching daemon) ay nabigo dahil sa isang dobleng tawag sa libreng pag-andar habang pinoproseso ang mga espesyal na ginawa ng mga kahilingan sa pangkat ng network.

CVE-2021-33574: pag-access sa isang lugar ng memorya na napalaya (gamitin-pagkatapos-libre) sa pagpapaandar na mq_notify kapag gumagamit ng uri ng abiso ng SIGEV_THREAD na may isang katangian ng thread kung saan itinakda ang isang kahaliling mask ng nagbubuklod na CPU. Ang problema ay maaaring maging sanhi ng isang pag-crash, ngunit ang iba pang mga pagpipilian sa pag-atake ay hindi ibinukod.

CVE-2021-35942: Ang laki ng parameter ng overflow sa pag-andar ng wordexp ay maaaring mag-crash application.

Sa iba pang mga pagbabago matindi yan:

  • Ang pag-andar ng timespec_getres, na tinukoy sa draft na pamantayan ng ISO C2X, ay naidagdag at ang pag-andar ng Timespec_get ay nadagdagan ng mga kakayahan na katulad ng pagpapaandar ng POSIX clock_getres.
  • Sa file ng gconv-modules, isang maliit na hanay lamang ng mga pangunahing module ng gconv ang nanatili, at ang natitira ay inilipat sa isang karagdagang gconv-modules-extra.conf file na matatagpuan sa direktoryo ng gconv-modules.d.
  • Ang paggamit ng mga simbolikong link upang mai-link ang mga nai-install na nakabahaging bagay sa bersyon ng Glibc ay tinanggal. Ang mga bagay na ito ay naka-install na rin bilang (hal. Libc.so.6 ngayon ay isang file sa halip na isang link sa libc-2.34.so).
  • Sa Linux, ang mga pagpapaandar tulad ng shm_open at sem_open ay nangangailangan ng isang filesystem para sa nakabahaging memorya na naka-mount sa / dev / shm mount point.

Sa wakas kung interesado kang malaman ang tungkol dito ng bagong bersyon, maaari mong suriin ang mga detalye sa sumusunod na link.


Idagdag bilang ginustong mapagkukunan sa Google