GitHub tar మరియు @npmcli/arborist ప్యాకేజీలలోని ఏడు దుర్బలత్వాల వివరాలను వెల్లడించింది, ఇది టార్ ఆర్కైవ్లతో పని చేయడానికి మరియు Node.jsలో డిపెండెన్సీ ట్రీని లెక్కించడానికి ఫంక్షన్లను అందిస్తుంది. ప్రత్యేకంగా రూపొందించిన ఆర్కైవ్ను అన్ప్యాక్ చేస్తున్నప్పుడు, ప్రస్తుత యాక్సెస్ హక్కులు అనుమతించినంత వరకు, అన్ప్యాకింగ్ నిర్వహించబడే రూట్ డైరెక్టరీ వెలుపల ఫైల్లను ఓవర్రైట్ చేయడానికి దుర్బలత్వాలు అనుమతిస్తాయి. సమస్యలు సిస్టమ్లో ఏకపక్ష కోడ్ అమలును నిర్వహించడం సాధ్యపడుతుంది, ఉదాహరణకు, ప్రత్యేకించని వినియోగదారు ద్వారా ఆపరేషన్ చేసినప్పుడు ~/.bashrc లేదా ~/.profileకి ఆదేశాలను జోడించడం ద్వారా లేదా సిస్టమ్ ఫైల్లను రీప్లేస్ చేయడం ద్వారా రూట్.
npm ప్యాకేజీలతో ఆపరేషన్లు చేస్తున్నప్పుడు సమస్యాత్మక కోడ్ npm ప్యాకేజీ మేనేజర్లో ఉపయోగించబడుతుందనే వాస్తవం ద్వారా హాని యొక్క ప్రమాదం తీవ్రతరం అవుతుంది, ఇది రిపోజిటరీ, ప్రాసెసింగ్లో ప్రత్యేకంగా రూపొందించిన npm ప్యాకేజీని ఉంచడం ద్వారా వినియోగదారులపై దాడిని నిర్వహించడం సాధ్యం చేస్తుంది. వీటిలో సిస్టమ్లో దాడి చేసేవారి కోడ్ని అమలు చేస్తుంది. "-ignore-scripts" మోడ్లో ప్యాకేజీలను ఇన్స్టాల్ చేస్తున్నప్పుడు కూడా దాడి సాధ్యమవుతుంది, ఇది అంతర్నిర్మిత స్క్రిప్ట్ల అమలును నిలిపివేస్తుంది. మొత్తంగా, npm ఏడింటిలో నాలుగు దుర్బలత్వాలను (CVE-2021-32804, CVE-2021-37713, CVE-2021-39134 మరియు CVE-2021-39135) ప్రభావితం చేస్తుంది. మొదటి రెండు సమస్యలు తారు ప్యాకేజీకి సంబంధించినవి మరియు మిగిలిన రెండు @npmcli/arborist ప్యాకేజీకి సంబంధించినవి.
అత్యంత ప్రమాదకరమైన దుర్బలత్వం, CVE-2021-32804, తారు ఆర్కైవ్లో పేర్కొన్న సంపూర్ణ మార్గాలను క్లియర్ చేసేటప్పుడు, పునరావృతమయ్యే “/” అక్షరాలు తప్పుగా ప్రాసెస్ చేయబడతాయి-మొదటి అక్షరం మాత్రమే తీసివేయబడుతుంది, మిగిలినవి మిగిలి ఉన్నాయి. ఉదాహరణకు, "/home/user/.bashrc" మార్గం "home/user/.bashrc"గా మరియు "//home/user/.bashrc" మార్గం "/home/user/.bashrc"కి మార్చబడుతుంది. రెండవ దుర్బలత్వం, CVE-2021-37713, Windows ప్లాట్ఫారమ్లో మాత్రమే కనిపిస్తుంది మరియు అపరిమిత డ్రైవ్ క్యారెక్టర్ (“C:some\path”) మరియు మునుపటి డైరెక్టరీకి తిరిగి వచ్చే క్రమాన్ని కలిగి ఉన్న సంబంధిత మార్గాలను తప్పుగా శుభ్రపరచడంతో అనుబంధించబడింది ( “C:../foo”) .
హానిలు CVE-2021-39134 మరియు CVE-2021-39135 @npmcli/arborist మాడ్యూల్కు సంబంధించినవి. మొదటి సమస్య ఫైల్ సిస్టమ్ (macOS మరియు Windows)లోని అక్షరాలను వేరు చేయని సిస్టమ్లలో మాత్రమే కనిపిస్తుంది మరియు డిపెండెన్సీల మధ్య రెండు మాడ్యూల్స్ '"foo"ని పేర్కొనడం ద్వారా ఫైల్ సిస్టమ్లోని ఏకపక్ష భాగానికి ఫైల్లను వ్రాయడానికి మిమ్మల్ని అనుమతిస్తుంది. : "file:/some/path"' మరియు ' FOO: "file:foo.tgz"', దీని ప్రాసెస్ చేయడం వలన /some/path డైరెక్టరీలోని కంటెంట్లు తొలగించబడతాయి మరియు foo.tgz యొక్క కంటెంట్లను దానికి వ్రాయవచ్చు. రెండవ సమస్య సింబాలిక్ లింక్ మానిప్యులేషన్ ద్వారా ఫైల్లను ఓవర్రైట్ చేయడానికి అనుమతిస్తుంది.
Node.js విడుదలలు 12.22.6 మరియు 14.17.6, npm CLI 6.14.15 మరియు 7.21.0 మరియు వ్యక్తిగత తారు ప్యాకేజీ విడుదలలు 4.4.19, 5.0.11 మరియు 6.1.10లలో దుర్బలత్వాలు పరిష్కరించబడతాయి. "బగ్ బౌంటీ" చొరవలో భాగంగా సమస్య గురించి సమాచారాన్ని స్వీకరించిన తర్వాత, GitHub పరిశోధకులకు $14500 చెల్లించింది మరియు రిపోజిటరీలోని విషయాలను స్కాన్ చేసింది, ఇది దుర్బలత్వాలను ఉపయోగించుకునే ప్రయత్నాలను బహిర్గతం చేయలేదు. ఈ సమస్యల నుండి రక్షించడానికి, GitHub సింబాలిక్ లింక్లు, హార్డ్ లింక్లు మరియు రిపోజిటరీకి సంపూర్ణ మార్గాలను కలిగి ఉన్న NPM ప్యాకేజీలను ప్రచురించడాన్ని కూడా నిషేధించింది.
మూలం: opennet.ru