በ Rust መደበኛ ቤተ-መጽሐፍት ውስጥ ተጋላጭነት

ተጋላጭነት (CVE-2022-21658) በ std :: fs :: remove_dir_all () ተግባር ውስጥ ባለው የዘር ሁኔታ ምክንያት በሩስት መደበኛ ቤተ-መጽሐፍት ውስጥ ተለይቷል። ይህ ተግባር በአንድ ልዩ አፕሊኬሽን ውስጥ ጊዜያዊ ፋይሎችን ለመሰረዝ የሚያገለግል ከሆነ አጥቂው በተለምዶ ሊሰርዝ የማይችለው የዘፈቀደ የስርዓት ፋይሎችን እና ማውጫዎችን መሰረዝ ይችላል።

ተጋላጭነቱ የሚከሰተው ማውጫዎችን በተደጋጋሚ ከመሰረዝዎ በፊት ተምሳሌታዊ አገናኞችን በመፈተሽ ትክክል ባልሆነ ትግበራ ነው። ሲምሊንኮች እንዳይከተሉ ከመከልከል፣ remove_dir_all() በመጀመሪያ ፋይሉ ሲምሊንክ መሆኑን ያረጋግጣል። አገናኙ ከተገለጸ፣ እንደ ፋይል ይሰረዛል፣ እና ማውጫ ከሆነ፣ ተደጋጋሚ ይዘት የማስወገድ ስራ ይባላል። ችግሩ በቼክ እና በመጥፋቱ መጀመሪያ መካከል ትንሽ መዘግየት አለ.

ቼኩ አስቀድሞ በተሰራበት ጊዜ ነገር ግን ለመሰረዝ ማውጫዎችን የመቁጠር ሥራ ገና አልተጀመረም ፣ አጥቂው ማውጫውን በጊዜያዊ ፋይሎች በምሳሌያዊ አገናኝ መተካት ይችላል። በትክክለኛው ጊዜ ከተመታ የ remove_dir_all() ተግባር ተምሳሌታዊ ማገናኛን እንደ ማውጫ ወስዶ አገናኙ የሚያመለክትበትን ይዘት ማስወገድ ይጀምራል። ምንም እንኳን የጥቃቱ ስኬት ማውጫውን ለመተካት እና ትክክለኛውን ጊዜ ለመምታት በተመረጠው ጊዜ ትክክለኛነት ላይ የሚመረኮዝ ቢሆንም ፣ በሙከራዎቹ ወቅት ተመራማሪዎቹ ጥቅሞቹን ከፈጸሙ በኋላ ሊደገም የሚችል የተሳካ ጥቃት ማሳካት ችለዋል ። ጥቂት ሰከንዶች.

ከ1.0.0 እስከ 1.58.0 የሚያጠቃልለው ሁሉም የዝገት ስሪቶች ተጎድተዋል። ችግሩ ለጊዜው በ patch ቅጽ ተፈትቷል (ማስተካከያው በ 1.58.1 ልቀት ውስጥ ይካተታል፣ ይህም በጥቂት ሰዓታት ውስጥ ይጠበቃል)። በእነዚህ ገፆች ላይ በስርጭቶች ውስጥ ያለውን ተጋላጭነት ማስወገድን መከታተል ይችላሉ፡ Debian, RHEL, SUSE, Fedora, Ubuntu, Arch, FreeBSD. ከፍ ያለ ልዩ መብቶችን እና የ remove_dir_all ተግባርን የሚጠቀሙ ሁሉም የRust ፕሮግራሞች ተጠቃሚዎች Rustን ወደ ስሪት 1.58.1 በፍጥነት እንዲያዘምኑ ይመከራሉ። የሚገርመው የተለቀቀው ፕላስተር በሁሉም ስርዓቶች ላይ ያለውን ችግር አለመፈታቱ ነው፤ ለምሳሌ በREDOX OS እና ከ10.10 (Yosemite) በፊት ባለው የማክሮስ ስሪቶች (Yosemite) የ O_NOFOLLOW ባንዲራ ባለመኖሩ ተጋላጭነቱ አልታገደም ፣ይህም ምሳሌያዊ መከተልን ያሰናክላል። አገናኞች.

ምንጭ: opennet.ru

አስተያየት ያክሉ