በ Linux Netfilter kernel subsystem ውስጥ ተጋላጭነት

አንድ ተጋላጭነት (CVE-2021-22555) በ Netfilter ውስጥ ተለይቷል የሊኑክስ ከርነል ንዑስ ስርዓት የአውታረ መረብ ፓኬጆችን ለማጣራት እና ለማሻሻል ጥቅም ላይ የሚውል ሲሆን ይህም በአካባቢው ተጠቃሚ በገለልተኛ መያዣ ውስጥ እያለ ጨምሮ በስርዓቱ ላይ የስር መብቶችን እንዲያገኝ ያስችለዋል። የ KASLR፣ SMAP እና SMEP ጥበቃ ዘዴዎችን የሚያልፍ የብዝበዛ ምሳሌ ለሙከራ ተዘጋጅቷል። ተጋላጭነቱን ያገኘው ተመራማሪ የኩበርኔትስ ኮንቴይነሮችን በkCTF ክላስተር ውስጥ ያለውን መገለል ለማለፍ የሚያስችል ዘዴን በመለየት ከGoogle የ20 ዶላር ሽልማት አግኝቷል።

ችግሩ ከከርነል 2.6.19 ጀምሮ የነበረ፣ ከ15 ዓመታት በፊት የተለቀቀ ሲሆን በ IPT_SO_SET_REPLACE እና IP6T_SO_SET_REPLACE ተቆጣጣሪዎች ውስጥ ባለ ሳንካ ምክንያት በልዩ ሁኔታ የተቀረጹ መለኪያዎችን በsetsockopt ጥሪ በኮምፓት ሁነታ ሲልኩ የቋት ፍሰትን ይፈጥራል። በመደበኛ ሁኔታዎች ስር ተጠቃሚው ብቻ ወደ compat_setsockopt() መደወል ይችላል፣ ነገር ግን ጥቃቱን ለመፈጸም የሚያስፈልጉት ልዩ መብቶች ተጠቃሚ ባልሆነ ተጠቃሚም የተጠቃሚ ስም ቦታዎችን በሚደግፉ ስርዓቶች ላይ ማግኘት ይችላል።

አንድ ተጠቃሚ የተለየ ስር ተጠቃሚ ያለው መያዣ መፍጠር እና ተጋላጭነቱን ከዚያ ሊጠቀም ይችላል። ለምሳሌ፣ "የተጠቃሚ ስም ቦታዎች" በነባሪ በኡቡንቱ እና ፌዶራ ነቅቷል፣ ነገር ግን በዴቢያን እና RHEL ላይ አልነቃም። ተጋላጭነቱን የሚያስተካክለው ጠጋኝ ኤፕሪል 13 ወደ ሊኑክስ ከርነል ተወሰደ። የጥቅል ዝማኔዎች ቀደም ሲል በዴቢያን፣ አርክ ሊኑክስ እና ፌዶራ ፕሮጀክቶች ተፈጥረዋል። በኡቡንቱ፣ RHEL እና SUSE ውስጥ፣ ዝማኔዎች በዝግጅት ላይ ናቸው።

ችግሩ የሚከሰተው በ xt_compat_target_from_user() ተግባር ውስጥ ከ32-ቢት ወደ 64-ቢት ውክልና ከተቀየረ በኋላ የከርነል አወቃቀሮችን በሚቆጥብበት ጊዜ የማህደረ ትውስታ መጠን ትክክል ባልሆነ ስሌት ምክንያት ነው። ስህተቱ አራት ባዶ ባይት በ0x4C ከተወሰነው ከተመደበው ቋት ባሻገር ወደ ማንኛውም ቦታ እንዲፃፍ ይፈቅዳል። ይህ ባህሪ አንድ ሰው የስር መብቶችን እንዲያገኝ የሚያስችል ብዝበዛ ለመፍጠር በቂ ሆኖ ተገኝቷል - በ m_list->የሚቀጥለውን ጠቋሚ በ msg_msg መዋቅር ውስጥ በማጽዳት ማህደረ ትውስታን (ጥቅም-በኋላ-ነጻ) ካደረጉ በኋላ መረጃን ለማግኘት ሁኔታዎች ተፈጥረዋል ። ከዚያም የ msgsnd() የስርዓት ጥሪን በማጭበርበር ስለአድራሻዎች እና ስለሌሎች መዋቅሮች ለውጦች መረጃ ለማግኘት ጥቅም ላይ ውሏል።

ምንጭ: opennet.ru

አስተያየት ያክሉ