Недавно је најављено издање нове верзије Glibc 2.34. Стиже након шест месеци развоја и укључује неколико важних промена, од којих је најзначајнија укључивање библиотека libpthread, libdl, libutil и libanl, као и разне исправке грешака, од којих је једна изазивала падове система.
За оне који нису упознати са Glibc-ом, то је GNU C библиотека, позната као glibc, и стандардна је библиотека за извршавање GNU C језика. На системима где се користи, ову C библиотеку, која пружа и дефинише системске позиве и друге основне функције, користе скоро сви програми.
Главне нове карактеристике Глибца 2.34
У овој новој верзији Glibc 2.34, главне библиотеке libpthread, libdl, libutil и libanl су интегрисане ; коришћење њихове функционалности у апликацијама више не захтева њихово повезивање са индикаторима -lpthread, -ldl, -lutil и -lanl.
Штавише, помиње се да су направљене припреме за интеграцију libresolv-а у libc, што ће омогућити лакши процес надоградње glibc-а и поједноставити имплементацију током извршавања. Такође су обезбеђене и „stub“ библиотеке ради компатибилности са апликацијама направљеним коришћењем ранијих верзија glibc-а.
Међу променама усмереним на Линукс у Glibc 2.34, најзначајнија је додата могућност коришћења 64-битног типа time_t у конфигурацијама које су традиционално користиле 32-битни тип time_t . Ова функција је доступна само на системима са верзијом језгра 5.1 и новијом.
Још једна промена специфична за Линукс је имплементација функције `execveat` , која вам омогућава да извршите извршну датотеку из отвореног дескриптора датотеке . Ова нова функција се такође користи у имплементацији позива `fexecve`, који не захтева монтирање псеудо-датотечног система `/proc` при покретању.
Такође је додата функција close_range(), која је доступна за Линукс верзије 5.9 и новије и може се користити да омогући процесу да затвори читав низ отворених дескриптора датотека одједном. Поред тога, имплементиран је параметар glibc.pthread.stack_cache_size, који се може користити за подешавање величине кеш меморије pthread стека.
Штавише, додата је функција `_Fork`, замена за функцију `fork` која испуњава захтеве „async-signal-safe“, што значи да се може безбедно позивати из обрађивача сигнала. Током извршавања `_Fork`, формира се минимално окружење, довољно за позивање функција у обрађивачима сигнала као што су `raise` и `execute`, без позивања функција које би могле да промене закључавања или унутрашње стање.
За део рањивости поправљених у Глибц 2.34, помињу се следеће:
CVE-2021-27645: грешка процеса nscd (демон кеширања имена сервера) због двоструког позива функције free током обраде посебно креираних захтева за мрежну групу.
CVE-2021-33574: Приступ меморијском подручју које се користи након ослобађања у функцији mq_notify при коришћењу типа обавештења SIGEV_THREAD са атрибутом нити за који је подешена алтернативна маска повезивања процесора. Овај проблем може изазвати пад система, али друге опције напада нису искључене.
CVE-2021-35942: Прекорачење величине параметра у функцији wordexp може довести до пада апликације.
Остале значајне промене укључују:
- Додана је функција тимеспец_гетрес, дефинисана у нацрту ИСО Ц2Кс стандарда, а функција тимеспец_гет је повећана могућностима сличним функцији ПОСИКС цлоцк_гетрес.
- У датотеци гцонв-модулес остао је само минимални скуп главних гцонв модула, а остали су премештени у додатну датотеку гцонв-модулес-ектра.цонф која се налази у директоријуму гцонв-модулес.д.
- Уклоњена је употреба симболичких веза за повезивање инсталираних дијељених објеката с верзијом Глибц. Ови објекти су сада инсталирани такви какви јесу (нпр. Либц.со.6 је сада датотека, а не веза до либц-2.34.со).
- На Линуку, функције попут схм_опен и сем_опен сада захтевају систем датотека за дељену меморију монтирану на / дев / схм тачки монтирања.
Коначно, ако сте заинтересовани да сазнате више о овој новој верзији, детаље можете пронаћи на следећем линку.