በSnap ጥቅል አስተዳደር መሣሪያ ስብስብ ውስጥ የስር ተጋላጭነት

Qualys በዚህ አመት (CVE-2022-3328) በ snap-confine utility ውስጥ ሶስተኛውን አደገኛ ተጋላጭነት ለይቷል፣ ይህም ከ SUID ስር ባንዲራ ጋር አብሮ ይመጣል እና በ snapd ሂደት የተጠራው ራስን በያዙ ፓኬጆች ውስጥ ለሚሰራጩ መተግበሪያዎች ተፈፃሚ ሁኔታ ለመፍጠር ነው። በቅጽበት ቅርጸት. ተጋላጭነቱ በአካባቢው ያለ መብት የሌለው ተጠቃሚ በነባሪ የኡቡንቱ ውቅር ውስጥ እንደ ስርወ ኮድ ማስፈጸሚያ እንዲያገኝ ያስችለዋል። ጉዳዩ በ snapd 2.57.6 ልቀት ላይ ተስተካክሏል። ለሁሉም የሚደገፉ የኡቡንቱ ቅርንጫፎች የጥቅል ማሻሻያ ተለቋል።

የሚገርመው፣ በጥያቄ ውስጥ ያለው ተጋላጭነት ተመሳሳይ የየካቲት ተጋላጭነትን በቅጽበት-ኮንፊን በማስተካከል ሂደት ላይ ቀርቧል። ተመራማሪዎች ለኡቡንቱ አገልጋይ 22.04 ስርወ መዳረሻ የሚሰጥ የስራ ብዝበዛ ማዘጋጀት ችለዋል፣ ይህም በ snap-confine ውስጥ ካለው ተጋላጭነት በተጨማሪ፣ በመልቲ ዱድ ሂደት ውስጥ ሁለት ተጋላጭነቶችን ያካትታል (CVE-2022-41974፣ CVE-2022-41973) ልዩ የሆኑ ትዕዛዞች ሲተላለፉ እና ደህንነቱ ያልተጠበቀ ስራ ከምሳሌያዊ አገናኞች ጋር የባለስልጣኑን ቼክ ከማለፍ ጋር የተያያዘ።

በSnap-confine ውስጥ ያለው ተጋላጭነት በ must_mkdir_and_open_with_perms() ተግባር ውስጥ ባለው የዘር ሁኔታ ምክንያት የሚፈጠረው /tmp/snapን ከመተካት ለመከላከል ታክሏል።$SNAP_NAME ማውጫ ባለቤቱን ካጣራ በኋላ በምሳሌያዊ ማገናኛ፣ነገር ግን ወደ ተራራ ስርዓቱ ከመደወልዎ በፊት ማውጫዎችን ወደ እሱ ለማሰር ይደውሉ። የተጨመረው ጥበቃ የ/tmp/snapን ስም መቀየር ነበር።$SNAP_NAME ማውጫ ካለ በዘፈቀደ ስም በ/tmp ውስጥ ወደ ሌላ ማውጫ እና በስሩ ያልተያዘ።

/tmp/snapን ሲጠቀሙ የ$SNAP_NAME ማውጫን እንደገና መሰየም፣ ተመራማሪዎቹ snap-confine ለ snap ጥቅሉ ይዘቶች ስር /tmp/snap.rootfs_XXXXXX ማውጫ መፈጠሩን ተጠቅመዋል። የስሙ "XXXXXX" ክፍል በዘፈቀደ በmkdtemp() ተመርጧል ነገር ግን "rootfs_XXXXXX" የሚባል ጥቅል በ sc_intance_name_validate ተግባር ውስጥ ሊረጋገጥ ይችላል (ማለትም ሀሳቡ $SNAP_NAME ወደ "rootfs_XXXXXX" ተቀናብሯል እና ክዋኔውን እንደገና መሰየም)። የ/tmp/snap.rootfs_XXXXXX ማውጫን ከስር ስናፕ ጋር እንደገና መፃፍ ያስከትላል)።

/tmp/snap.rootfs_XXXXXXን በአንድ ጊዜ ለመጠቀም እና /tmp/snap።$SNAP_NAMEን እንደገና ለመሰየም፣ ሁለት የ snap-confine አጋጣሚዎች ተጀምረዋል። አንዴ የመጀመሪያው ምሳሌ /tmp/snap.rootfs_XXXXXX ከተፈጠረ፣ ሂደቱ ይዘጋና ሁለተኛ ምሳሌ በጥቅል ስም rootfs_XXXXXX ይጀምራል፣ ይህም የሁለተኛው ምሳሌ ጊዜያዊ ማውጫ/tmp/snap ይሆናል።$ SNAP_NAME የስር ማውጫ /tmp/snap ይሆናል። .rootfs_XXXXXX የመጀመሪያው። ልክ እንደገና ስሙ ከተጠናቀቀ በኋላ፣ ሁለተኛው ምሳሌ ተበላሽቷል፣ እና /tmp/snap.rootfs_XXXXXX በፌብሩዋሪ ተጋላጭነትን ሲጠቀሙ በዘር ሁኔታ ማጭበርበር ተተካ። ከተተካው በኋላ የማስፈጸሚያ መቆለፊያው ከመጀመሪያው ምሳሌ ተወግዶ አጥቂዎቹ በ snap root ማውጫው ላይ ሙሉ ቁጥጥር አግኝተዋል።

የመጨረሻው እርምጃ ሲምሊንክ /tmp/snap.rootfs_XXXXXX/tmp መፍጠር ነበር፣ይህም በSc_bootstrap_mount_namespace() ተግባር የተፃፈውን እውነተኛ ማውጫ/tmp በፋይል ስርዓቱ ውስጥ ካለ ማንኛውም ማውጫ ጋር ለማያያዝ ከተራራ() ጥሪ ጀምሮ ከመጫንዎ በፊት ሲምሊንኮችን ይከተላል። እንዲህ ዓይነቱን መጫን በአፕአርሞር እገዳዎች ታግዷል፣ ነገር ግን ይህንን ብሎክ ለማለፍ ብዝበዛው ባለብዙ ጎዳና ሁለት ረዳት ተጋላጭነቶችን ተጠቅሟል።

ምንጭ: opennet.ru

አስተያየት ያክሉ