Pac-resolver NPM ప్యాకేజీ, వారానికి 3 మిలియన్లకు పైగా డౌన్లోడ్లను కలిగి ఉంది, ఇది Node.js ప్రాజెక్ట్ల నుండి HTTP అభ్యర్థనలను పంపేటప్పుడు అప్లికేషన్ సందర్భంలో దాని JavaScript కోడ్ని అమలు చేయడానికి అనుమతించే దుర్బలత్వాన్ని (CVE-2021-23406) కలిగి ఉంది. మద్దతు ప్రాక్సీ సర్వర్ ఆటో-కాన్ఫిగరేషన్ ఫంక్షన్.
ప్యాక్-రిసోల్వర్ ప్యాకేజీ ఆటోమేటిక్ ప్రాక్సీ కాన్ఫిగరేషన్ స్క్రిప్ట్ను కలిగి ఉన్న PAC ఫైల్లను అన్వయిస్తుంది. PAC ఫైల్లో FindProxyForURL ఫంక్షన్తో సాధారణ జావాస్క్రిప్ట్ కోడ్ ఉంటుంది, ఇది హోస్ట్ మరియు అభ్యర్థించిన URL ఆధారంగా ప్రాక్సీని ఎంచుకోవడానికి లాజిక్ను నిర్వచిస్తుంది. దుర్బలత్వం యొక్క సారాంశం ఏమిటంటే, ఈ జావాస్క్రిప్ట్ కోడ్ను ప్యాక్-రిసోల్వర్లో అమలు చేయడానికి, Node.jsలో అందించబడిన VM API ఉపయోగించబడింది, ఇది V8 ఇంజిన్లోని వేరే సందర్భంలో జావాస్క్రిప్ట్ కోడ్ని అమలు చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
పేర్కొన్న API డాక్యుమెంటేషన్లో అవిశ్వసనీయ కోడ్ని అమలు చేయడానికి ఉద్దేశించినది కాదని స్పష్టంగా గుర్తించబడింది, ఎందుకంటే ఇది అమలు చేయబడుతున్న కోడ్ యొక్క పూర్తి ఐసోలేషన్ను అందించదు మరియు అసలు సందర్భానికి ప్రాప్యతను అనుమతిస్తుంది. ఈ సమస్య pac-resolver 5.0.0లో పరిష్కరించబడింది, ఇది vm2 లైబ్రరీని ఉపయోగించడానికి తరలించబడింది, ఇది అవిశ్వసనీయ కోడ్ని అమలు చేయడానికి అనువైన అధిక స్థాయి ఐసోలేషన్ను అందిస్తుంది.
Pac-resolver యొక్క హాని కలిగించే సంస్కరణను ఉపయోగిస్తున్నప్పుడు, ప్రత్యేకంగా రూపొందించిన PAC ఫైల్ను ప్రసారం చేయడం ద్వారా దాడి చేసే వ్యక్తి Node.jsని ఉపయోగించి ప్రాజెక్ట్ కోడ్ సందర్భంలో తన JavaScript కోడ్ను అమలు చేయగలడు, ఒకవేళ ఈ ప్రాజెక్ట్ డిపెండెన్సీలను కలిగి ఉన్న లైబ్రరీలను ఉపయోగిస్తుంది. పాక్-రిసోల్వర్తో. సమస్యాత్మక లైబ్రరీలలో అత్యంత ప్రజాదరణ పొందినది ప్రాక్సీ-ఏజెంట్, urllib, aws-cdk, mailgun.js మరియు ఫైర్బేస్-టూల్స్తో సహా 360 ప్రాజెక్ట్లపై డిపెండెన్సీగా జాబితా చేయబడింది, మొత్తం వారానికి మూడు మిలియన్లకు పైగా డౌన్లోడ్లు ఉన్నాయి.
WPAD ప్రాక్సీ ఆటోమేటిక్ కాన్ఫిగరేషన్ ప్రోటోకాల్కు మద్దతిచ్చే సిస్టమ్ అందించిన PAC ఫైల్ను ప్యాక్-రిసోల్వర్పై డిపెండెన్సీలను కలిగి ఉన్న అప్లికేషన్ లోడ్ చేస్తే, స్థానిక నెట్వర్క్కు యాక్సెస్ ఉన్న దాడి చేసేవారు హానికరమైన PAC ఫైల్లను చొప్పించడానికి DHCP ద్వారా ప్రాక్సీ సెట్టింగ్ల పంపిణీని ఉపయోగించవచ్చు.
మూలం: opennet.ru