270 వేల ప్రాజెక్ట్‌లలో ఉపయోగించిన నోడ్-నెట్‌మాస్క్ NPM ప్యాకేజీలో దుర్బలత్వం

నోడ్-నెట్‌మాస్క్ NPM ప్యాకేజీ, వారానికి దాదాపు 3 మిలియన్ డౌన్‌లోడ్‌లను కలిగి ఉంది మరియు GitHubపై 270 వేల కంటే ఎక్కువ ప్రాజెక్ట్‌లపై డిపెండెన్సీగా ఉపయోగించబడుతుంది, నెట్‌మాస్క్‌ని ఉపయోగించే తనిఖీలను దాటవేయడానికి అనుమతించే దుర్బలత్వం (CVE-2021-28918) ఉంది. పరిధులను చిరునామా చేయడానికి లేదా ఫిల్టరింగ్ కోసం సంభవించడాన్ని గుర్తించడానికి. నోడ్-నెట్‌మాస్క్ 2.0.0 విడుదలలో సమస్య పరిష్కరించబడింది.

దుర్బలత్వం బాహ్య IP చిరునామాను అంతర్గత నెట్‌వర్క్ నుండి చిరునామాగా పరిగణించడాన్ని సాధ్యం చేస్తుంది మరియు దీనికి విరుద్ధంగా, మరియు SSRF (సర్వర్-సైడ్ రిక్వెస్ట్ ఫోర్జరీ), RFIని అమలు చేయడానికి అప్లికేషన్‌లోని నోడ్-నెట్‌మాస్క్ మాడ్యూల్‌ను ఉపయోగించడం యొక్క నిర్దిష్ట తర్కంతో. (రిమోట్ ఫైల్ ఇన్‌క్లూజన్) మరియు LFI (లోకల్ ఫైల్ ఇన్‌క్లూజన్) దాడులు ) అంతర్గత నెట్‌వర్క్‌లో వనరులను యాక్సెస్ చేయడానికి మరియు ఎగ్జిక్యూషన్ చెయిన్‌లో బాహ్య లేదా స్థానిక ఫైల్‌లను చేర్చడానికి. సమస్య ఏమిటంటే, స్పెసిఫికేషన్ ప్రకారం, సున్నాతో ప్రారంభమయ్యే చిరునామా స్ట్రింగ్ విలువలను అష్ట సంఖ్యలుగా అర్థం చేసుకోవాలి, కానీ నోడ్-నెట్‌మాస్క్ మాడ్యూల్ దీనిని పరిగణనలోకి తీసుకోదు మరియు వాటిని దశాంశ సంఖ్యలుగా పరిగణిస్తుంది.

ఉదాహరణకు, దాడి చేసే వ్యక్తి "0177.0.0.1" విలువను పేర్కొనడం ద్వారా స్థానిక వనరును అభ్యర్థించవచ్చు, ఇది "127.0.0.1"కి అనుగుణంగా ఉంటుంది, కానీ "నోడ్-నెట్‌మాస్క్" మాడ్యూల్ శూన్యతను విస్మరిస్తుంది మరియు 0177.0.0.1″ని " 177.0.0.1", యాక్సెస్ నియమాలను మూల్యాంకనం చేసేటప్పుడు అప్లికేషన్‌లో, “127.0.0.1”తో గుర్తింపును గుర్తించడం సాధ్యం కాదు. అదేవిధంగా, దాడి చేసే వ్యక్తి “0127.0.0.1” చిరునామాను పేర్కొనవచ్చు, ఇది “87.0.0.1”కి సమానంగా ఉండాలి, కానీ “నోడ్-నెట్‌మాస్క్” మాడ్యూల్‌లో “127.0.0.1”గా పరిగణించబడుతుంది. అదేవిధంగా, మీరు “012.0.0.1” (“10.0.0.1”కి సమానం, కానీ తనిఖీ సమయంలో 12.0.0.1గా ప్రాసెస్ చేయబడుతుంది) వంటి విలువలను పేర్కొనడం ద్వారా ఇంట్రానెట్ చిరునామాలకు యాక్సెస్ కోసం చెక్‌ను మోసం చేయవచ్చు.

సమస్యను గుర్తించిన పరిశోధకులు సమస్యను విపత్తుగా పిలుస్తారు మరియు అనేక దాడి దృశ్యాలను అందిస్తారు, అయితే వాటిలో చాలా వరకు ఊహాజనితంగా కనిపిస్తున్నాయి. ఉదాహరణకు, ఇన్‌పుట్ అభ్యర్థన యొక్క పారామితులు లేదా డేటా ఆధారంగా వనరును అభ్యర్థించడానికి బాహ్య కనెక్షన్‌లను ఏర్పాటు చేసే Node.js-ఆధారిత అప్లికేషన్‌పై దాడి చేసే అవకాశం గురించి ఇది మాట్లాడుతుంది, అయితే అప్లికేషన్ ప్రత్యేకంగా పేరు పెట్టబడలేదు లేదా వివరించబడలేదు. మీరు నమోదు చేసిన IP చిరునామాల ఆధారంగా వనరులను లోడ్ చేసే అప్లికేషన్‌లను కనుగొన్నప్పటికీ, స్థానిక నెట్‌వర్క్‌కు కనెక్ట్ చేయకుండా లేదా “మిర్రర్” IP చిరునామాల నియంత్రణను పొందకుండా ఆచరణలో దుర్బలత్వాన్ని ఎలా ఉపయోగించుకోవచ్చో పూర్తిగా స్పష్టంగా తెలియదు.

87.0.0.1 (టెలికాం ఇటాలియా) మరియు 0177.0.0.1 (బ్రెసిల్ టెలికాం) యజమానులు 127.0.0.1కి యాక్సెస్ పరిమితిని దాటవేయగలరని పరిశోధకులు ఊహిస్తున్నారు. వివిధ అప్లికేషన్-సైడ్ బ్లాక్ జాబితాలను దాటవేయడానికి దుర్బలత్వాన్ని ఉపయోగించుకోవడం మరింత వాస్తవిక దృశ్యం. NPM మాడ్యూల్ "ప్రైవేట్-ip"లో ఇంట్రానెట్ పరిధుల నిర్వచనాన్ని పంచుకోవడానికి కూడా ఈ సమస్యను వర్తింపజేయవచ్చు.

మూలం: opennet.ru

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