Glibc 2.35 సిస్టమ్ లైబ్రరీ విడుదల

ఆరు నెలల అభివృద్ధి తర్వాత, GNU C లైబ్రరీ (glibc) 2.35 సిస్టమ్ లైబ్రరీ విడుదల చేయబడింది, ఇది ISO C11 మరియు POSIX.1-2017 ప్రమాణాల అవసరాలకు పూర్తిగా అనుగుణంగా ఉంటుంది. కొత్త విడుదలలో 66 డెవలపర్‌ల నుండి పరిష్కారాలు ఉన్నాయి.

Glibc 2.35లో అమలు చేయబడిన కొన్ని మెరుగుదలలు:

  • "C.UTF-8" లొకేల్‌కు మద్దతు జోడించబడింది, ఇందులో అన్ని యూనికోడ్ కోడ్‌ల కోసం సంకలన నియమాలు ఉంటాయి, అయితే స్థలాన్ని ఆదా చేయడానికి fnmatch, regexec మరియు regcomp ఫంక్షన్‌లలో ASCII పరిధుల వినియోగానికి పరిమితం చేయబడింది. లొకేల్ దాదాపు 400 KB, ఇందులో 346 KB యూనికోడ్ కోసం LC_CTYPE డేటా, మరియు ప్రత్యేక ఇన్‌స్టాలేషన్ అవసరం (Glibcలో నిర్మించబడలేదు).
  • యూనికోడ్ 14.0.0 స్పెసిఫికేషన్‌కు మద్దతుగా ఎన్‌కోడింగ్ డేటా, క్యారెక్టర్ టైప్ ఇన్ఫర్మేషన్ మరియు లిప్యంతరీకరణ పట్టికలు నవీకరించబడ్డాయి.
  • IN మరియు ఫంక్ష‌న్‌లు మరియు మాక్రోలు ఫలితాన్ని ఇరుకైన రకానికి చుట్టుముట్టాయి: fsqrt, fsqrtl, dsqrtl, ffma, ffmal, dfmal, fMsqrtfN, fMsqrtfNx, fMxsqrtfN, fMxsqrtfNx, fMfmafNx, fMfMfx, fMfMfx విధులు TS 18661-1:2014, TS 18661-3:2015 స్పెసిఫికేషన్‌లలో వివరించబడ్డాయి మరియు భవిష్యత్ ISO C2X C ప్రమాణం యొక్క డ్రాఫ్ట్‌కు జోడించబడ్డాయి.
  • IN మరియు IEEE 754-2019 స్పెసిఫికేషన్‌లో వివరించిన ఫ్లోట్, లాంగ్ డబుల్, _FloatN మరియు _FloatNx రకాలతో ఫ్లోటింగ్ పాయింట్ నంబర్‌ల కనిష్ట మరియు గరిష్టాన్ని కనుగొనడం కోసం అమలు చేయబడిన ఫంక్షన్‌లు మరియు మాక్రోలు భవిష్యత్ ISO C2X C స్టాండర్డ్ డ్రాఫ్ట్‌కు జోడించబడ్డాయి: fmaximum, fmaximum_num , fmaximum_mag, fmaximum_mag_num, fminimum, fminimum_num, fminimum_mag, fminimum_mag_num.
  • IN సింగిల్ ప్రెసిషన్ ఫ్లోటింగ్ పాయింట్ నంబర్‌ల కోసం స్థిరాంకాలు జోడించబడ్డాయి: 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_SQRTSQ2f.
  • హెడర్ ఫైల్‌లోని ఎక్స్‌10 ఫంక్షన్‌ల కోసం నిర్దిష్ట రకాలకు అనుబంధించబడని సంబంధిత మాక్రోలు జోడించబడ్డాయి.
  • IN డ్రాఫ్ట్ ISO C2X ప్రమాణంలో ప్రతిపాదించబడిన _PRINTF_NAN_LEN_MAX మాక్రో జోడించబడింది.
  • బైనరీ ప్రాతినిధ్యంలో పూర్ణాంకాలను ముద్రించడానికి "%b" మరియు "%B" ఫార్మాట్ స్పెసిఫైయర్‌లు ప్రింట్‌ఎఫ్ ఫ్యామిలీ ఆఫ్ ఫంక్షన్‌లకు జోడించబడ్డాయి.
  • డైనమిక్ లింకింగ్ సిస్టమ్ లూప్డ్ డిపెండెన్సీలను నిర్వహించేటప్పుడు పనితీరు సమస్యలను పరిష్కరించడానికి డెప్త్-ఫస్ట్ సెర్చ్ (DFS)ని ఉపయోగించే కొత్త DSO సార్టింగ్ అల్గారిథమ్‌ను అమలు చేస్తుంది. DSO సార్టింగ్ అల్గారిథమ్‌ను ఎంచుకోవడానికి, glibc.rtld.dynamic_sort పరామితి ప్రతిపాదించబడింది, ఇది పాత అల్గారిథమ్‌కి తిరిగి వెళ్లడానికి “1”కి సెట్ చేయబడుతుంది.
  • ABI కొత్త ఫంక్షన్ '__memcmpeq'కి మద్దతును జోడించింది, ఈ ఫంక్షన్ ద్వారా అందించబడిన విలువ ఆపరేషన్ యొక్క పూర్తి స్థితిని తనిఖీ చేయడానికి మాత్రమే ఉపయోగించబడితే 'memcmp' వినియోగాన్ని ఆప్టిమైజ్ చేయడానికి కంపైలర్‌లచే ఉపయోగించబడుతుంది.
  • కెర్నల్ నుండి అందించబడిన rseq (రీస్టార్టబుల్ సీక్వెన్సెస్) సిస్టమ్ కాల్‌ను ఉపయోగించి ఆటోమేటిక్ థ్రెడ్ రిజిస్ట్రేషన్ కోసం మద్దతు జోడించబడింది. Linux 4.18. rseq సిస్టమ్ కాల్, ఒక సమూహంలోని సూచనలను అంతరాయం లేకుండా నిరంతరాయంగా అమలు చేయడానికి మరియు ఆ సమూహంలోని చివరి సూచన యొక్క ఫలితాన్ని నిర్ధారించడానికి అనుమతిస్తుంది. ముఖ్యంగా, ఇది కార్యకలాపాలను చాలా వేగంగా, అటామిక్‌గా అమలు చేయడానికి ఒక మార్గాన్ని అందిస్తుంది, దీనికి మరొక థ్రెడ్ ద్వారా అంతరాయం కలిగితే, ఆ కార్యకలాపాలు తొలగించబడి, తిరిగి ప్రయత్నించబడతాయి.
  • సిమ్‌లింక్ /usr/bin/ld.so జోడించబడింది.
  • ఎంబెడెడ్ ప్రోగ్రామ్‌ల యొక్క అన్ని ఎక్జిక్యూటబుల్ ఫైల్‌ల డిఫాల్ట్ అసెంబ్లీ మరియు PIE (పొజిషన్ ఇండిపెండెంట్ ఎక్జిక్యూటబుల్) మోడ్‌లో సెట్ సెట్ చేయబడింది. ఈ ప్రవర్తనను నిలిపివేయడానికి, “--disable-default-pie” ఎంపిక అందించబడుతుంది.
  • కోసం Linux mmap మరియు sbrk కోసం MADV_HUGEPAGE ఫ్లాగ్‌తో madvise సిస్టమ్ కాల్‌ను ఉపయోగించడానికి, లేదా mmap కాల్స్‌లో MAP_HUGETLB ఫ్లాగ్‌ను పేర్కొనడం ద్వారా నేరుగా హ్యూజ్ మెమరీ పేజీలను ఉపయోగించడానికి malloc ఇంప్లిమెంటేషన్‌ను మార్చడానికి మిమ్మల్ని అనుమతించే glibc.malloc.hugetlb అనే సెట్టింగ్ జోడించబడింది. మొదటి ఎంపిక madvise మోడ్‌లో ట్రాన్స్‌పరెంట్ హ్యూజ్ పేజీలను ఉపయోగించినప్పుడు పనితీరు మెరుగుదలకు అనుమతిస్తుంది, అయితే రెండవ ఎంపిక సిస్టమ్-రిజర్వ్డ్ హ్యూజ్ పేజీల వినియోగానికి అనుమతిస్తుంది.
  • కాల్ స్టాక్ అన్‌వైండ్ సమాచారాన్ని జోడించడానికి ఉపయోగించే _dl_find_object ఫంక్షన్ జోడించబడింది.
  • సాఫ్ట్-ఫ్లోట్ మోడ్‌లో OpenRISC ఆర్కిటెక్చర్ (or1k-linux-gnu)కు మద్దతు జోడించబడింది. ఈ పోర్ట్‌కు binutils 2.35, GCC 11, మరియు కెర్నల్ అవసరం. Linux <span style="font-family: arial; ">10</span>
  • బిల్డ్ ఫ్లాగ్ "--with-rtld-early-cflags" జోడించబడింది, ఇది డైనమిక్ లింకింగ్ కోసం ప్రారంభ కోడ్‌ను రూపొందించేటప్పుడు ఉపయోగించే అదనపు కంపైలేషన్ ఫ్లాగ్‌లను పేర్కొనడానికి ఉపయోగించబడుతుంది.
  • వేదిక కోసం Linux epoll_pwait2 ఫంక్షన్‌ను జోడించడం జరిగింది, ఇది నానోసెకండ్ కచ్చితత్వంతో టైమ్‌అవుట్‌ను నిర్దేశించడం ద్వారా epoll_wait నుండి భిన్నంగా ఉంటుంది.
  • కొత్త ప్రక్రియ కోసం కంట్రోల్ టెర్మినల్‌ను సెట్ చేసేటప్పుడు రేస్ పరిస్థితులను తొలగించడానికి posix_spawn_file_actions_addtcsetpgrp_np ఫంక్షన్ జోడించబడింది.
  • Glibc మరియు GCC 12+తో కంపైల్ చేయబడిన అప్లికేషన్‌ల కోసం, “_FORTIFY_SOURCE=3” రక్షణ మోడ్ అమలు చేయబడుతుంది, ఇది string.h హెడర్ ఫైల్‌లో నిర్వచించిన స్ట్రింగ్ ఫంక్షన్‌లను అమలు చేస్తున్నప్పుడు సాధ్యమయ్యే బఫర్ ఓవర్‌ఫ్లోలను గుర్తిస్తుంది. “_FORTIFY_SOURCE=2” మోడ్ నుండి వ్యత్యాసం అదనపు తనిఖీలకు వస్తుంది, ఇది పనితీరు తగ్గడానికి దారితీయవచ్చు.
  • మెమరీ హద్దుల కోసం పాయింటర్‌లను తనిఖీ చేయడానికి ఉపయోగించే Intel MPX (మెమొరీ ప్రొటెక్షన్ ఎక్స్‌టెన్షన్స్) కోసం మద్దతు నిలిపివేయబడింది (ఈ సాంకేతికత విస్తృతంగా వ్యాపించలేదు మరియు ఇప్పటికే GCC మరియు LLVM నుండి తీసివేయబడింది).
  • ప్రీలింక్ మెకానిజం మరియు దాని అనుబంధ పర్యావరణ వేరియబుల్స్ LD_TRACE_PRELINKING మరియు LD_USE_LOAD_BIAS విస్మరించబడ్డాయి మరియు భవిష్యత్ విడుదలలో తీసివేయబడతాయి.

    బలహీనతలు పరిష్కరించబడ్డాయి:

    • CVE-2022-23218, CVE-2022-23219 – svcunix_create మరియు clnt_create ఫంక్షన్‌లలో బఫర్ ఓవర్‌ఫ్లో, కాపీ చేయబడిన డేటా పరిమాణాన్ని తనిఖీ చేయకుండా ఫైల్ పేరు పరామితి యొక్క కంటెంట్‌లను స్టాక్‌పైకి కాపీ చేయడం వలన ఏర్పడుతుంది. స్టాక్ ప్రొటెక్షన్ లేకుండా మరియు “unix” ప్రోటోకాల్‌ని ఉపయోగించి రూపొందించిన అప్లికేషన్‌ల కోసం, చాలా పొడవైన ఫైల్ పేర్లను ప్రాసెస్ చేస్తున్నప్పుడు దాడి చేసేవారి కోడ్‌ని అమలు చేయడానికి హాని కలిగించవచ్చు.
    • CVE-2021-3998 అనేది స్టాక్ నుండి శుద్ధి చేయని అవశేష డేటాను కలిగి ఉన్న ఒక సరికాని విలువను కొన్ని షరతులలో తిరిగి పొందడం వలన రియల్‌పాత్() ఫంక్షన్‌లో ఒక దుర్బలత్వం. SUID-రూట్ ఫ్యూజర్‌మౌంట్ ప్రోగ్రామ్ కోసం, ప్రాసెస్ మెమరీ నుండి సున్నితమైన సమాచారాన్ని పొందేందుకు దుర్బలత్వం ఉపయోగించబడుతుంది, ఉదాహరణకు, పాయింటర్ల గురించి సమాచారాన్ని పొందేందుకు.
    • CVE-2021-3999 - getcwd() ఫంక్షన్‌లో సింగిల్-బైట్ బఫర్ ఓవర్‌ఫ్లో. 1995 నుండి ఉన్న బగ్ వల్ల సమస్య ఏర్పడింది. ఓవర్‌ఫ్లో కలిగించడానికి, ప్రత్యేక మౌంట్ పాయింట్ నేమ్‌స్పేస్‌లోని "/" డైరెక్టరీలో chdir()ని కాల్ చేయండి.

    మూలం: opennet.ru

DDoS రక్షణ, VPS VDS సర్వర్‌లతో సైట్‌ల కోసం నమ్మకమైన హోస్టింగ్‌ను కొనుగోలు చేయండి 🔥 DDoS రక్షణతో కూడిన నమ్మకమైన వెబ్‌సైట్ హోస్టింగ్, VPS VDS సర్వర్‌లను కొనండి | ProHoster