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

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

Glibc 2.32లో అమలు చేయబడింది మెరుగుదలలు మీరు గమనించవచ్చు:

  • Synopsys ARC HS (ARCv2 ISA) ప్రాసెసర్‌లకు మద్దతు జోడించబడింది. పోర్ట్‌ను అమలు చేయడానికి కనీసం బినుటిల్‌లు 2.32, gcc 8.3 మరియు Linux కెర్నల్ 5.1 అవసరం. మూడు ABI వేరియంట్‌లకు మద్దతు ఉంది: arc-linux-gnu, arc-linux-gnuhf మరియు arceb-linux-gnu (బిగ్-ఎండియన్);
  • విభాగాలలో పేర్కొన్న ఆడిట్ మాడ్యూల్స్ లోడ్ అవుతోంది DT_AUDIT మరియు
    ఎక్జిక్యూటబుల్ ఫైల్ యొక్క DT_DEPAUDIT.

  • Powerpc64le ఆర్కిటెక్చర్ కోసం, IEEE128 పొడవైన డబుల్ రకానికి మద్దతు అమలు చేయబడుతుంది, ఇది “-mabi=ieeelongdouble” ఎంపికతో నిర్మించేటప్పుడు ప్రారంభించబడుతుంది.
  • కొన్ని APIలు GCC 'యాక్సెస్' అట్రిబ్యూట్‌తో ఉల్లేఖించబడ్డాయి, ఇది GCC 10లో సంకలనం చేయబడినప్పుడు సాధ్యమయ్యే బఫర్ ఓవర్‌ఫ్లోలు మరియు ఇతర సరిహద్దుల వెలుపలి దృశ్యాలను గుర్తించడానికి మెరుగైన హెచ్చరికలను రూపొందించడానికి అనుమతిస్తుంది.
  • Linux సిస్టమ్స్ కోసం, pthread_attr_setsigmask_np మరియు విధులు
    pthread_attr_getsigmask_np, ఇది pthread_create ఉపయోగించి సృష్టించబడిన థ్రెడ్‌ల కోసం సిగ్నల్ మాస్క్‌ను పేర్కొనే సామర్థ్యాన్ని అప్లికేషన్‌కు అందిస్తుంది.

  • యూనికోడ్ 13.0.0 స్పెసిఫికేషన్‌కు మద్దతుగా ఎన్‌కోడింగ్ డేటా, క్యారెక్టర్ టైప్ సమాచారం మరియు లిప్యంతరీకరణ పట్టికలు నవీకరించబడ్డాయి;
  • కొత్త హెడర్ ఫైల్ జోడించబడింది , ఇది __libc_single_threaded వేరియబుల్‌ని నిర్వచిస్తుంది, ఇది సింగిల్-థ్రెడ్ ఆప్టిమైజేషన్‌ల కోసం అప్లికేషన్‌లలో ఉపయోగించబడుతుంది.
  • సిగ్నల్ యొక్క సంక్షిప్త పేరు మరియు వివరణను అందించే sigabbrev_np మరియు sigdescr_np విధులు జోడించబడ్డాయి (ఉదాహరణకు, SIGHUP కోసం "HUP" మరియు "Hangup").
  • strerrorname_np మరియు strerrordesc_np ఫంక్షన్‌లు జోడించబడ్డాయి, ఇవి లోపం యొక్క పేరు మరియు వివరణను చూపుతాయి (ఉదాహరణకు, EINVAL కోసం "EINVAL" మరియు "చెల్లని వాదన").
  • ARM64 ప్లాట్‌ఫారమ్ కోసం, "--enable-standard-branch-protection" ఫ్లాగ్ జోడించబడింది (లేదా -mbranch-protection=GCCలో ప్రామాణికం), ఇది ARMv8.5-BTI (బ్రాంచ్ టార్గెట్ ఇండికేటర్) మెకానిజంను రక్షించడానికి అనుమతిస్తుంది. అమలు చేయకూడని సూచనల సెట్‌ల అమలు, శాఖల పరివర్తనాలు. రిటర్న్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ టెక్నిక్స్ (ROP - రిటర్న్-ఓరియెంటెడ్ ప్రోగ్రామింగ్; దాడి చేసే వ్యక్తి తన కోడ్‌ను మెమరీలో ఉంచడానికి ప్రయత్నించడు, కానీ ఇప్పటికే ఉన్న ముక్కల మీద ఆపరేట్ చేసే దోపిడీలలో గాడ్జెట్‌ల సృష్టిని నిరోధించడానికి కోడ్ యొక్క ఏకపక్ష విభాగాలకు పరివర్తనలను నిరోధించడం అమలు చేయబడుతుంది. రిటర్న్ కంట్రోల్ ఇన్‌స్ట్రక్షన్‌తో ముగిసే యంత్ర సూచనల నుండి, కావలసిన కార్యాచరణను పొందేందుకు కాల్‌ల గొలుసు నిర్మించబడింది).
  • "--enable-obsolete-rpc" మరియు "--enable-obsolete-nsl" ఎంపికలు, హెడర్ ఫైల్‌ల తొలగింపుతో సహా పాత ఫీచర్ల యొక్క ప్రధాన క్లీనప్ నిర్వహించబడింది. . విధులు sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore మరియు sigset, శ్రేణులు sys_siglist, _sys_siglist మరియు sys_sigabbrev, చిహ్నాలు sys_errlist, _SSner_ మరియు డ్యూస్రిస్లిస్ట్ od విస్మరించబడ్డాయి.
  • దాదాపు 20 సంవత్సరాలుగా glibcలో సపోర్ట్ చేయబడిన కొత్త ld.so.cache ఫార్మాట్‌ని ఉపయోగించడానికి ldconfig డిఫాల్ట్‌గా తరలించబడింది.
  • బలహీనతలు పరిష్కరించబడ్డాయి:
    • CVE-2016-10228 – సరికాని బహుళ-బైట్ డేటాను ప్రాసెస్ చేస్తున్నప్పుడు “-c” ఎంపికతో అమలు చేసినప్పుడు iconv యుటిలిటీలో లూప్ ఏర్పడుతుంది.
    • CVE-2020-10029 నకిలీ-శూన్య ఆర్గ్యుమెంట్‌తో త్రికోణమితి ఫంక్షన్‌లను కాల్ చేస్తున్నప్పుడు అవినీతిని స్టాక్ చేయండి.
    • CVE-2020-1752 - పాత్‌లలో హోమ్ డైరెక్టరీకి ("~యూజర్") రిఫరెన్స్‌ని విస్తరింపజేసేటప్పుడు గ్లోబ్ ఫంక్షన్‌లో వినియోగ-ఆఫ్టర్-ఫ్రీ మెమరీ యాక్సెస్.
    • CVE-2020-6096 – కాపీ చేయబడిన ప్రాంతం యొక్క పరిమాణాన్ని నిర్ణయించే memcpy() మరియు memmove()లోని ప్రతికూల పారామితి విలువల యొక్క ARMv7 ప్లాట్‌ఫారమ్‌పై తప్పుగా నిర్వహించడం. అనుమతిస్తుంది memcpy() మరియు memmove() ఫంక్షన్‌లలో నిర్దిష్ట మార్గంలో ఫార్మాట్ చేయబడిన డేటాను ప్రాసెస్ చేస్తున్నప్పుడు కోడ్ అమలును నిర్వహించండి. సమస్య రావడం గమనార్హం ఉండిపోయింది సమాచారం బహిరంగంగా వెల్లడించినప్పటి నుండి దాదాపు రెండు నెలల పాటు సరిదిద్దబడలేదు మరియు Glibc డెవలపర్‌లకు తెలియజేయబడిన ఐదు నెలల నుండి.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి