Glibc సిస్టమ్ C లైబ్రరీ (GNU libc)లో భాగంగా సరఫరా చేయబడిన ld.so లింకర్లో Qualys ప్రమాదకరమైన దుర్బలత్వాన్ని (CVE-2023-4911) గుర్తించింది. సుయిడ్ రూట్ ఫ్లాగ్తో ఎక్జిక్యూటబుల్ ఫైల్ను రన్ చేసే ముందు GLIBC_TUNABLES ఎన్విరాన్మెంట్ వేరియబుల్లో ప్రత్యేకంగా ఫార్మాట్ చేసిన డేటాను పేర్కొనడం ద్వారా స్థానిక వినియోగదారుని సిస్టమ్లో తమ అధికారాలను పెంచుకోవడానికి దుర్బలత్వం అనుమతిస్తుంది, ఉదాహరణకు, /usr/bin/su.
ఫెడోరా 37 మరియు 38 లలో ఈ దుర్బలత్వాన్ని విజయవంతంగా ఉపయోగించుకునే అవకాశం నిరూపించబడింది. Ubuntu 22.04 మరియు 23.04, Debian 12 మరియు 13. ఈ దుర్బలత్వం Glibcని ఉపయోగించే ఇతర డిస్ట్రిబ్యూషన్లను కూడా ప్రభావితం చేస్తుందని భావిస్తున్నారు. ఆల్పైన్ వంటి Musl సిస్టమ్ C లైబ్రరీ ఆధారిత డిస్ట్రిబ్యూషన్లు. Linuxఈ సమస్య వలన ప్రభావితం కావు. అక్టోబర్ 2న జోడించిన ప్యాచ్లో ఈ దుర్బలత్వం సరిచేయబడింది. మీరు ఈ క్రింది పేజీలలో డిస్ట్రిబ్యూషన్ల కోసం ప్యాకేజీ అప్డేట్ల విడుదలను ట్రాక్ చేయవచ్చు: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, Gentoo, ALT Linux.
glibc 2021 విడుదలలో భాగంగా ఏప్రిల్ 2.34లో చేసిన మార్పు కారణంగా ఈ దుర్బలత్వం ఏర్పడింది. GLIBC_TUNABLES ఎన్విరాన్మెంట్ వేరియబుల్లో పేర్కొన్న స్ట్రింగ్ పార్సింగ్ కోడ్లోని లోపం కారణంగా, ఈ వేరియబుల్లోని పారామీటర్ల తప్పు కలయిక వలన కేటాయించబడిన బఫర్కు మించి అన్వయించబడిన విలువ వ్రాయబడుతుంది. ప్రామాణిక “పేరు=వాల్” సీక్వెన్స్లకు బదులుగా, “పేరు=పేరు=వాల్” అనే డబుల్ అసైన్మెంట్తో పారామితులు ఫారమ్లో పేర్కొనబడినప్పుడు సమస్య వ్యక్తమవుతుంది. ఈ సందర్భంలో, అసైన్మెంట్ రెండుసార్లు ప్రాసెస్ చేయబడుతుంది, మొదట "పేరు=పేరు=వాల్" మరియు తర్వాత "పేరు=వాల్". ఈ డబుల్ ప్రాసెసింగ్ "name=name=val:name=val" ఫలితాన్ని ఉత్పత్తి చేస్తుంది, ఇది tunestr బఫర్ పరిమాణం కంటే పెద్దది.
suid root ఫ్లాగ్తో దాదాపు ఏ ప్రోగ్రామ్తోనైనా ఉపయోగించినప్పుడు రూట్ యాక్సెస్ను అనుమతించే ఒక స్థిరమైన ఎక్స్ప్లాయిట్ను పరిశోధకులు అభివృద్ధి చేశారు. దీనికి మినహాయింపులు ఏవంటే: sudo యుటిలిటీ (ఇది ELF RUNPATH విలువను మారుస్తుంది), మరియు ఫెడోరాలోని chage మరియు passwd యుటిలిటీలు (ఇవి ప్రత్యేక SE నియమాల ద్వారా రక్షించబడ్డాయి).Linux) మరియు స్నాప్-కన్ఫైన్ యుటిలిటీలో Ubuntu (ప్రత్యేక AppArmor నియమాల ద్వారా రక్షించబడింది). ప్రతిపాదిత దోపిడీ పద్ధతి RHEL 8 మరియు RHEL 9 లపై కూడా పనిచేయదు, అయినప్పటికీ ఈ బ్రాంచ్లు హానికరమైనవి (దాడికి వేరొక ఎక్స్ప్లాయిట్ను సృష్టించడం అవసరం). ఈ హానికరతను విస్తృతంగా పరిష్కరించిన తర్వాత ఎక్స్ప్లాయిట్ కోడ్ ప్రచురించబడుతుంది. కింది కమాండ్ను ఉపయోగించి మీరు మీ సిస్టమ్ ఈ హానికరతకు గురైందో లేదో తనిఖీ చేయవచ్చు, సమస్య సంభవిస్తే ఇది క్రాష్ అవుతుంది: env -i "GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=A" "Z=`printf '%08192x' 1`" /usr/bin/su --help
విడిగా, Glibcలో మరో రెండు దుర్బలత్వాల తొలగింపు గుర్తించబడింది:
- CVE-2023-4806 – getaddrinfo() ఫంక్షన్లో వినియోగ-ఆఫ్టర్-ఫ్రీ మెమరీ యాక్సెస్, ఇది NSS ప్లగిన్ “_gethostbyname2_r” మరియు “_getcanonname_r” కాల్-బ్యాక్లను మాత్రమే అమలు చేసినప్పుడు సంభవిస్తుంది, కానీ “_gethostbyname3_r"కి మద్దతు ఇవ్వదు. దుర్బలత్వాన్ని ఉపయోగించుకోవడానికి, అభ్యర్థించిన హోస్ట్ కోసం DNS సర్వర్ తప్పనిసరిగా పెద్ద సంఖ్యలో IPv6 మరియు IPv4 చిరునామాలను అందించాలి, ఇది AI_CANONNAME, AI_ALL మరియు AI_V6MAPPED ఫ్లాగ్లు ఉన్నప్పుడు AF_INET4 కుటుంబం కోసం getaddrinfo ఫంక్షన్ అని పిలిచే ప్రక్రియ క్రాష్కు దారి తీస్తుంది. సెట్.
- CVE-2023-5156 – AI_CANONNAME, AI_ALL మరియు AI_V6MAPPED ఫ్లాగ్లు సెట్ చేయబడిన AF_INET4 చిరునామా కుటుంబం కోసం getaddrinfo ఫంక్షన్ని పిలిచినప్పుడు మెమరీ లీక్ ఏర్పడుతుంది.
మూలం: opennet.ru
