ተጋላጭነቶች (CVE አልተመደበም) በGuix ጥቅል አስተዳዳሪ ውስጥ ውስጣዊ "guix ተተኪ" ትዕዛዝን በመተግበር ረገድ ተለይተዋል፣ ይህም በጥቅል ጭነቶች ወቅት በguix-daemon ዳራ ሂደት በራስ-ሰር ይጠቀሳል። ትዕዛዙ ቀድሞ የተገነቡ ሁለትዮሽ ፓኬጆችን ከውጭ አገልጋዮች ለማውረድ እና ዲጂታል ፊርማን በመጠቀም ታማኝነታቸውን ለማረጋገጥ ይጠቅማል። በጣም ከባድ የሆነው ተጋላጭነት በተጠቃሚው ስርዓት ላይ የርቀት ኮድ አፈጻጸምን ይፈቅዳል፣ ይህም የguix-daemon ዳራ ሂደት የሚሄድባቸው መብቶች አሉት።
ችግሩ በ root ወይም ባልተፈቀዱ የተጠቃሚ መብቶች ቢሰራም ባይሄድም በ guix-daemon ሂደት ውስጥ ያሉትን ሁሉንም ውቅሮች ይነካል። የተጋላጭነት አጠቃቀም አስቀድሞ የተገነቡ ሁለትዮሽ ፓኬጆችን ከ ለማውረድ ማንኛውንም ሙከራ ይጠይቃል። አገልጋይበአጥቂው ቁጥጥር ስር። በዚህ ሁኔታ፣ ተንኮለኛው አገልጋይ በተጠቃሚ ቅንብሮች ውስጥ በግልጽ መመረጥ ወይም መገለጽ የለበትም - በ"--discover" አማራጭ ሊገለጽ ይችላል፣ ይህም በመሃል-በመሃል ጥቃት ወቅት የአገልጋይ ማስመሰል ያስችላል። guix-daemon ከፍ ባሉ መብቶች ጋር በሚሄድባቸው ውቅሮች ውስጥ፣ የአካባቢው ተጠቃሚ በዩኒክስ ሶኬት (በነባሪ ለሁሉም ተጠቃሚዎች የሚገኝ) ከበስተጀርባ ሂደቱ ጋር መገናኘት ከቻለ ጥቃት ሊያከናውን ይችላል።
ተጋላጭነቱ የሚገኘው በ"restore-file" ተቆጣጣሪ ውስጥ ሲሆን፣ ይህም አንድ ጥቅል ሙሉ በሙሉ እስኪወርድ ድረስ ሳይጠብቅ እና የወረደው ማህደር በዲጂታል ፊርማ እንዲረጋገጥ ለማድረግ ጥቅም ላይ ይውላል። ችግሩ የሚከሰተው በማህደሩ ውስጥ ባሉ የፋይል መንገዶች ውስጥ "."፣ "/," እና ".." ለሚሉት ቁምፊዎች ቼኮች እጥረት ነው። ልክ ያልሆኑ የፋይል ስሞችን ወደ ማህደሩ በመተካት፣ አንድ አጥቂ በፋይል ስርዓቱ ውስጥ ወዳለ ማንኛውም ቦታ የዘፈቀደ ፋይል መጻፍ ይችላል፣ ይህም የguix-daemon ዳራ ሂደት በሚሄድባቸው ፈቃዶች መሠረት ነው።
ለምሳሌ ኮድዎን በስርዓቱ ላይ ለማስፈጸም፣ እንደ "~/.bashrc" ወይም ~/.profile ያለ የራስ-ሰር ስክሪፕት ማከል ወይም የSSH ቁልፎችን የያዘውን የ~/.ssh/authorized_keys ፋይል ማሻሻል ይችላሉ። guix-daemon በብዙ ተጠቃሚ ስርዓት ላይ እንደ ዋና ተጠቃሚ ሆኖ የሚሰራ ከሆነ፣ አጥቂ የይለፍ ቃሉን ፋይል ወይም የስርዓት ስክሪፕቶችን ሊተካ ይችላል።
ተንኮል አዘል ፓኬጆችን ለማሰራጨት የውሸት አገልጋዮችን የመፍጠር ችሎታ የተገኘው የሚገኙትን ሁለትዮሽ ፓኬጆች (fetch-narinfos) የሚመለከቱ ሜታዳታ (narinfo) የማውረድ ሂደት የአገልጋይ ሰርተፊኬቱን አላረጋገጠም፣ ምክንያቱም አብዛኛው ሜታዳታ በዲጂታል የተፈረመ መሆኑን በመተማመን ነው። እንደ ተለወጠ፣ ፊርማው የጥቅል ማውረድ ዩአርኤሉን አልሸፈነም፣ ይህም የሜታዳታውን ታማኝነት ሳይጎዳ እንዲታለል አስችሎታል። በመጨረሻም፣ የውሸት ፓኬጁ ይዘቱን በዲጂታል የተፈረመ ሃሽ ላይ ማረጋገጥ ባለመቻሉ ውድቅ ይደረግ ነበር። ሆኖም፣ ይህ ማረጋገጫ የተከናወነው ከመክፈቻ ደረጃ በኋላ ሲሆን ይህም በፋይል ስሞች ውስጥ ባሉ ልዩ ቁምፊዎች ላይ ችግር እንዳለ አሳይቷል።
ከ"guix ምትክ" ትዕዛዝ በተጨማሪ ተጋላጭ የሆነው "restore-file" ተቆጣጣሪ በ"guix offload"፣ "guix archive --extract" እና "guix challenge" ትዕዛዞች ጥቅም ላይ ይውላል፣ ይህም ተጋላጭነቱን ለመበዝበዝ ሊያገለግል ይችላል። እንደ መፍትሄ፣ በሁሉም guix ትዕዛዞች ውስጥ "--no-substitutes" የሚለውን አማራጭ በግልጽ መግለጽ ይመከራል። ለተጋላጭነቱ ማስተካከያ በGuix ኮድቤዝ ውስጥ ተቀባይነት አግኝቷል። ተጠቃሚዎች ለguix እና guix-daemon በገንቢ የተፈጠሩ ዝመናዎችን ወዲያውኑ እንዲጭኑ ይመከራሉ።
ከተጠቀሰው ችግር በተጨማሪ፣ በጊክስ ውስጥ ሦስት ተጨማሪ ተጋላጭነቶች ተስተካክለዋል፡
- የተጠየቀው ፓኬጅ በfetch-narinfos ተቆጣጣሪ ውስጥ ከተመለሰው ሜታዳታ ጋር መጣጣሙን ማረጋገጥ ባለመቻሉ የሁለትዮሽ ፓኬጅ ማጭበርበሪያ የመሆን እድል። ይህ ተጋላጭነት ተጋላጭነቶችን የያዘ የተጠየቀውን ፓኬጅ ጊዜው ያለፈበት ስሪት ለመመለስ ጥቅም ላይ ሊውል ይችላል።
- በስርዓቱ ውስጥ ያሉትን የዘፈቀደ ፋይሎች የመጀመሪያ መስመር ይዘቶችን ከአካባቢያዊ ተጠቃሚ "file://" URI ("--substitute-urls file:///etc/shadow") ጋር በመላክ መወሰን። guix-daemon ከ root መብቶች ጋር እየሰራ ከሆነ፣ የተጠየቀውን ፋይል ያነባል፣ ሜታዳታ እንዳልሆነ ይወስናል፣ እና ሊተነተን የማይችልን መስመር የሚጠቅስ የስህተት መልእክት ይመልሳል።
- "Guix pull" እና "guix time-machine" ትዕዛዞችን ሲፈጽሙ በልዩ ሁኔታ የተቀረጸ ውጫዊ የማከማቻ ስም ("../../../../newfile") መግለጽ ይዘቱ ከመርሃግብር ሕብረቁምፊዎች ዝርዝር ጋር የሚመሳሰል ከሆነ በፋይል ስርዓቱ ውስጥ ወዳለ የዘፈቀደ ነባር ፋይል የውክልና መረጃ እንዲጻፍ ያስችለዋል። ይህ ተጋላጭነት ለDoS ጥቃቶች ጥቅም ላይ ሊውል ይችላል፣ ነገር ግን በ/proc pseudo-filesystem ብልህነት በመጠቀም የበለጠ አደገኛ የስርዓት ማጭበርበሪያዎች ሊሳኩ ይችላሉ።
ምንጭ: opennet.ru
