የአይፒ አድራሻ ማረጋገጫን እንዲያልፉ የሚያስችልዎ በ Rust እና Go ቋንቋዎች የአውታረ መረብ ቤተ-መጽሐፍት ውስጥ ተጋላጭነት

በ Rust and Go ቋንቋዎች መደበኛ ቤተ-መጻሕፍት ውስጥ በአድራሻ መተንተን ተግባራት ውስጥ ባለ ስምንት አሃዝ ያላቸው የአይፒ አድራሻዎች ትክክለኛ ያልሆነ ሂደት ጋር የተያያዙ ድክመቶች ተለይተዋል። ድክመቶቹ በመተግበሪያዎች ውስጥ ያሉ ትክክለኛ አድራሻዎችን ቼኮች ለማለፍ ያስችላሉ ፣ ለምሳሌ የ loopback በይነገጽ አድራሻዎችን (127.xxx) ወይም የኢንተርኔት አውታረ መረቦችን የSSRF (የአገልጋይ ወገን ጥያቄ የውሸት) ጥቃቶችን ሲፈጽሙ ለማደራጀት ያስችላል። ድክመቶቹ ቀደም ሲል በቤተ-መጻህፍት መስቀለኛ-ኔትማስክ (ጃቫ ስክሪፕት ፣ CVE-2021-28918 ፣ CVE-2021-29418) ፣ የግል-አይፒ (ጃቫ ስክሪፕት ፣ CVE-2020-28360) ፣ አይፓድdress (Python ፣ CVE-) የችግሮች ዑደት ቀጥለዋል። እ.ኤ.አ.

በመግለጫው መሠረት ከዜሮ የሚጀምሩ የአይፒ አድራሻዎች ሕብረቁምፊ እሴቶች እንደ ኦክታል ቁጥሮች መተርጎም አለባቸው ፣ ግን ብዙ ቤተ-መጻሕፍት ይህንን ከግምት ውስጥ አያስገባም እና በቀላሉ ዜሮውን ያስወግዳሉ ፣ እሴቱን እንደ አስርዮሽ ቁጥር ይቆጥሩታል። ለምሳሌ በኦክታል ውስጥ ያለው ቁጥር 0177 በአስርዮሽ 127 እኩል ነው። አጥቂው “0177.0.0.1” የሚለውን ዋጋ በመግለጽ ሃብትን ሊጠይቅ ይችላል፣ ይህም በአስርዮሽ አጻጻፍ ከ"127.0.0.1" ጋር ይዛመዳል። ችግር ያለበት ቤተ-መጽሐፍት ጥቅም ላይ ከዋለ አፕሊኬሽኑ አድራሻው 0177.0.0.1 በሱብኔት 127.0.0.1/8 ውስጥ እንዳለ አያውቀውም ነገር ግን እንደ እውነቱ ከሆነ ጥያቄን በሚልኩበት ጊዜ "0177.0.0.1" የሚለውን አድራሻ ማግኘት ይችላል. የአውታረ መረብ ተግባራት እንደ 127.0.0.1 ይሰራሉ። በተመሳሳይ መልኩ እንደ “012.0.0.1” (ከ “10.0.0.1” ጋር እኩል) ያሉ እሴቶችን በመግለጽ የኢንተርኔት አድራሻዎችን የመግባት ቼክ ማጭበርበር ይችላሉ።

በሩስት ውስጥ፣ መደበኛው ቤተ-መጽሐፍት "std :: net" በአንድ ጉዳይ (CVE-2021-29922) ተጎድቷል። የዚህ ቤተ-መጽሐፍት የአይፒ አድራሻ ተንታኝ በአድራሻው ውስጥ ካሉት ዋጋዎች በፊት ዜሮን አስወግዷል፣ ነገር ግን ከሶስት አሃዝ የማይበልጡ ከሆነ ብቻ ለምሳሌ "0177.0.0.1" ልክ ያልሆነ እሴት ነው የሚወሰደው እና የተሳሳተ ውጤት በ 010.8.8.8 እና 127.0.026.1 ምላሽ ይመለሳል. በተጠቃሚ የተገለጹ አድራሻዎችን ሲተነተኑ std::net::IPAddr ን የሚጠቀሙ አፕሊኬሽኖች ለSSRF (የአገልጋይ ወገን ጥያቄ ማስመሰል)፣ RFI (የርቀት ፋይል ማካተት) እና LFI (አካባቢያዊ ፋይል ማካተት) ጥቃቶች ሊጋለጡ ይችላሉ። ተጋላጭነቱ በሩስት 1.53.0 ቅርንጫፍ ውስጥ ተስተካክሏል።

የአይፒ አድራሻ ማረጋገጫን እንዲያልፉ የሚያስችልዎ በ Rust እና Go ቋንቋዎች የአውታረ መረብ ቤተ-መጽሐፍት ውስጥ ተጋላጭነት

በ Go ውስጥ፣ መደበኛው ላይብረሪ "ኔት" ተጎድቷል (CVE-2021-29923)። የnet.ParseCIDR አብሮገነብ ተግባር እነሱን ከማቀናበር ይልቅ ከኦክታል ቁጥሮች በፊት ዜሮዎችን እየመራ ይሄዳል። ለምሳሌ, አንድ አጥቂ ዋጋውን 00000177.0.0.1 ማለፍ ይችላል, ይህም በኔትወርኩ ውስጥ ሲፈተሽ ParseCIDR (00000177.0.0.1/24) ተግባር, እንደ 177.0.0.1/24, እና 127.0.0.1/24 አይደለም. ችግሩ በ Kubernetes መድረክ ላይም እራሱን ያሳያል. ተጋላጭነቱ በGo ልቀት 1.16.3 እና በቤታ 1.17 ላይ ተስተካክሏል።

የአይፒ አድራሻ ማረጋገጫን እንዲያልፉ የሚያስችልዎ በ Rust እና Go ቋንቋዎች የአውታረ መረብ ቤተ-መጽሐፍት ውስጥ ተጋላጭነት


ምንጭ: opennet.ru

አስተያየት ያክሉ