በ 270 ሺህ ፕሮጀክቶች ውስጥ ጥቅም ላይ በሚውለው node-netmask NPM ጥቅል ውስጥ ተጋላጭነት

የሳምንት ወደ 3 ሚሊዮን የሚደርሱ ውርዶች ያሉት እና በ GitHub ላይ ከ270 ሺህ በላይ ፕሮጀክቶች ላይ እንደ ጥገኝነት የሚያገለግለው የመስቀለኛ-ኔትማስክ NPM ፓኬጅ የኔትማስክን የሚጠቀሙ ቼኮችን ማለፍ የሚያስችል ተጋላጭነት (CVE-2021-28918) አለው። የአድራሻ ክልሎችን ወይም ለማጣራት መከሰቱን ለመወሰን. ጉዳዩ በ node-netmask 2.0.0 መለቀቅ ላይ ተስተካክሏል።

ተጋላጭነቱ የውጭውን የአይ ፒ አድራሻ ከውስጥ አውታረመረብ እንደ አድራሻ እና በተገላቢጦሽ እና በመተግበሪያው ውስጥ የኖድ-ኔትማስክ ሞጁሉን በመጠቀም SSRF (የአገልጋይ ወገን ጥያቄ የውሸት) ፣ RFI (የርቀት ፋይል ማካተት) እና LFI (አካባቢያዊ ፋይል ማካተት) ጥቃቶች) በውስጣዊው አውታረመረብ ላይ ሀብቶችን ለመድረስ እና ውጫዊ ወይም አካባቢያዊ ፋይሎችን በአፈፃፀም ሰንሰለት ውስጥ ያካትቱ። ችግሩ በዝርዝሩ መሰረት በዜሮ የሚጀምሩ የአድራሻ ሕብረቁምፊ እሴቶች እንደ ስምንት ቁጥሮች መተርጎም አለባቸው, ነገር ግን የመስቀለኛ-ኔትማስክ ሞጁል ይህንን ግምት ውስጥ አያስገባም እና እንደ አስርዮሽ ቁጥሮች ይመለከታቸዋል.

ለምሳሌ አጥቂው "0177.0.0.1" የሚለውን ዋጋ ከ"127.0.0.1" ጋር በመለየት የአካባቢውን ሃብት ሊጠይቅ ይችላል ነገር ግን "node-netmask" ሞጁል ባዶውን ይጥላል እና 0177.0.0.1"ን እንደ "" ይቆጥረዋል። 177.0.0.1, በመተግበሪያው ውስጥ የመዳረሻ ደንቦችን ሲገመግሙ, በ "127.0.0.1" ማንነትን መለየት አይቻልም. በተመሳሳይ ሁኔታ አንድ አጥቂ "0127.0.0.1" የሚለውን አድራሻ ሊገልጽ ይችላል, እሱም ከ "87.0.0.1" ጋር ተመሳሳይ መሆን አለበት, ነገር ግን በ "node-netmask" ሞጁል ውስጥ እንደ "127.0.0.1" ይቆጠራል. በተመሳሳይ እንደ "012.0.0.1" (ከ "10.0.0.1" ጋር እኩል የሆነ ነገር ግን በቼክ ጊዜ እንደ 12.0.0.1) በመግለጽ የኢንተርኔት አድራሻዎችን ለማግኘት ቼኩን ማጭበርበር ትችላላችሁ።

ችግሩን የለዩት ተመራማሪዎች የችግሩን አስከፊነት ይሉታል እና በርካታ የጥቃት ሁኔታዎችን አቅርበዋል, ነገር ግን አብዛኛዎቹ ግምታዊ ይመስላሉ. ለምሳሌ፣ በNode.js ላይ የተመሰረተ መተግበሪያን የማጥቃት እድልን ይናገራል ይህም ውጫዊ ግንኙነቶችን የሚፈጥር በግብአት ጥያቄው ግቤቶች ወይም ዳታ ላይ ተመስርቶ ሃብት ለመጠየቅ ነው፣ ነገር ግን አፕሊኬሽኑ የተለየ ስም ወይም ዝርዝር አይደለም። ምንም እንኳን በገቡት የአይፒ አድራሻዎች ላይ ተመስርተው ሀብቶችን የሚጭኑ አፕሊኬሽኖች ቢያገኙ እንኳን ከአካባቢያዊ አውታረመረብ ጋር ሳይገናኙ ወይም የ "መስታወት" አይፒ አድራሻዎችን ሳይቆጣጠሩ ተጋላጭነቱን በተግባር እንዴት መጠቀም እንደሚቻል ሙሉ በሙሉ ግልፅ አይደለም ።

ተመራማሪዎቹ የ 87.0.0.1 (ቴሌኮም ኢታሊያ) እና 0177.0.0.1 (ብራሲል ቴሌኮም) ባለቤቶች የመዳረሻ ገደቡን ወደ 127.0.0.1 ማለፍ እንደሚችሉ ብቻ ይገምታሉ። የበለጠ እውነተኛው ሁኔታ የተለያዩ የመተግበሪያ-ጎን ብሎክ ዝርዝሮችን ለማለፍ ተጋላጭነትን መጠቀም ነው። ጉዳዩ የኢንተርኔት ክልሎችን ፍቺ በNPM ሞጁል "የግል-ip" መጋራት ላይም ሊተገበር ይችላል።

ምንጭ: opennet.ru

አስተያየት ያክሉ