በመገልገያው ውስጥ , ሌሎች ተጠቃሚዎችን ወክሎ ትዕዛዞችን አፈፃፀም ለማደራጀት ያገለግላል, ተጋላጭነት ()፣ ይህም መብቶችዎን ወደ ዋናው ተጠቃሚ እንዲያሳድግ ያስችልዎታል። ችግሩ ከሱዶ 1.7.1 ጀምሮ የታየው በ/etc/sudoers ፋይል ውስጥ ያለውን "pwfeedback" አማራጭ ሲጠቀሙ ብቻ ነው፣ ይህም በነባሪነት የሚሰናከል ነገር ግን በአንዳንድ ስርጭቶች ውስጥ የነቃ ነው፣ ለምሳሌ Linux ሚንት እና አንደኛ ደረጃ ስርዓተ ክወና። ችግሩ በልቀቱ ላይ ተፈትቷል ከጥቂት ሰዓታት በፊት ታትሟል። ተጋላጭነቱ በስርጭቶች ውስጥ አሁንም አልተስተካከለም።
የ"pwfeedback" አማራጭ የይለፍ ቃል ሲያስገቡ እያንዳንዱ ቁምፊ ከገባ በኋላ የ"*" ምልክቱን ማሳየት ያስችላል። በ tgetpass.c ፋይል ውስጥ የተገለጸውን የgetln() ተግባር ተግባራዊ ለማድረግ፣ በመደበኛ የግቤት ዥረት (stdin) በኩል የሚተላለፍ ትልቅ የይለፍ ቃል ሕብረቁምፊ በተወሰኑ ሁኔታዎች ውስጥ በተመደበው ቋት ውስጥ ላይገባ እና በስቶክ ላይ ሌላ ውሂብ ሊተካ ይችላል። የትርፍ ፍሰት የሚከሰተው የሱዶ ኮድን ከስር መብቶች ጋር ሲያከናውን ነው።
የችግሩ ዋና ይዘት በግቤት ሂደቱ ወቅት ልዩ ቁምፊ ^U (የመስመር ማጽዳት) ሲጠቀሙ እና የመፃፍ ክዋኔው ካልተሳካ፣ የውጤት ቁምፊዎችን "*" ለማጽዳት ኃላፊነት ያለው ኮድ ባለው የቋት መጠን ላይ ያለውን ውሂብ ዳግም ያስጀምረዋል፣ ነገር ግን ጠቋሚውን በቋቱ ውስጥ ወዳለው የአሁኑ ቦታ ወደ መጀመሪያው እሴት አይመልሰውም። ለብዝበዛ አስተዋጽኦ የሚያደርገው ሌላው ነገር ውሂብ ከተርሚናል ሳይሆን ከግብዓት ዥረት ሲደርስ የ"pwfeedback" ሁነታ በራስ-ሰር ማሰናከል አለመቻል ነው (ይህ ጉድለት ለምሳሌ በአንድ መንገድ ባላቸው ስርዓቶች ላይ የመፃፍ ስህተት እንዲከሰት ሁኔታዎችን ለመፍጠር ያስችላል፣ ለምሳሌ፣ በአንድ መንገድ ባላቸው ስርዓቶች ላይ። ስህተቱ የሚከሰተው ከተነበበው ቻናል መጨረሻ በላይ ለመጻፍ ሲሞክር ነው)።
አንድ አጥቂ በስቶክ ውስጥ ያለውን ውሂብ በመተካት ላይ ሙሉ ቁጥጥር ስላለው፣ መብቶቹን ወደ ሩት ለማድረስ የሚያስችል ብዝበዛ መፍጠር ቀላል ነው። ይህ ችግር በማንኛውም ተጠቃሚ ሊበዘበዝ ይችላል፣ በሱዶዎች ውስጥ የሱዶ ፈቃዶች ወይም በተጠቃሚ-ተኮር ቅንብሮች ውስጥ ምንም ይሁን ምን። ይህንን ችግር ለመከላከል፣ የ"pwfeedback" ቅንብር በ/etc/sudoers ውስጥ አለመኖሩን ያረጋግጡ እና አስፈላጊ ከሆነም ያሰናክሉት ("Defaults !pwfeedback")። ለችግሩ ለመሞከር የሚከተለውን ኮድ ያሂዱ፡
$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id
የይለፍ ቃል፡ የመከፋፈል ስህተት
ምንጭ: opennet.ru
