የርቀት እና የአካባቢያዊ ስርወ መዳረሻን የሚፈቅዱ በOpenSMTPD ውስጥ ያሉ ተጋላጭነቶች

Qualys ኩባንያ ተገለጠ ሌላ የርቀት ወሳኝ ተጋላጭነት (CVE-2020-8794) በፖስታ አገልጋይ ውስጥ SMTPD ክፈትበOpenBSD ፕሮጀክት የተሰራ። በጥር መጨረሻ ላይ እንደተገለጸው ተጋላጭነት፣ አዲስ ጉዳይ የስር ተጠቃሚ መብቶች ባለው አገልጋይ ላይ የዘፈቀደ የሼል ትዕዛዞችን በርቀት ለማስፈጸም ያስችላል። ተጋላጭነት ተወግዷል እትም ውስጥ ክፈት SMTPD 6.6.4p1.

ችግሩ የተፈጠረው በኮዱ ውስጥ ባለ ስህተት መልእክቶችን ወደ የርቀት መልእክት አገልጋይ (መጪ ግንኙነቶችን በሚያስተናግድ ኮድ ውስጥ አይደለም) የሚያደርስ ነው። ጥቃቱ በሁለቱም በደንበኛው እና በአገልጋዩ በኩል ይቻላል. በደንበኛው በኩል ጥቃቱ በ OpenSMTPD ነባሪ ውቅር ሊሆን ይችላል ፣ በዚህ ውስጥ OpenSMTPD በውስጣዊ አውታረመረብ በይነገጽ (localhost) ላይ ብቻ ጥያቄዎችን ተቀብሎ ወደ ውጭ አገልጋዮች የፖስታ መልእክት ይልካል። ተጋላጭነቱን ለመጠቀም፣ ደብዳቤ በሚላክበት ጊዜ OpenSMTPD በአጥቂው የሚቆጣጠረው የፖስታ አገልጋይ ያለው ክፍለ ጊዜ መመስረት ወይም አጥቂው ወደ ደንበኛው ግንኙነት (ኤምቲኤም ወይም በዲ ኤን ኤስ ወይም BGP በሚደርስ ጥቃት ጊዜ አቅጣጫ መቀየር) በቂ ነው። ).

ለአገልጋይ-ጎን ጥቃት OpenSMTPD ከሌሎች የፖስታ አገልጋዮች የውጭ አውታረ መረብ ጥያቄዎችን ለመቀበል ወይም ወደ የዘፈቀደ ኢሜይል ጥያቄ ለመላክ የሚያስችል የሶስተኛ ወገን አገልግሎቶችን ለማገልገል መዋቀር አለበት (ለምሳሌ በድር ጣቢያዎች ላይ የአድራሻ ማረጋገጫ ቅጾች)። ለምሳሌ አንድ አጥቂ ከOpenSMTPD አገልጋይ ጋር በመገናኘት የተሳሳተ ደብዳቤ (ለሌለ ተጠቃሚ) መላክ ይችላል፣ ይህ ደግሞ የአጥቂውን አገልጋይ የስህተት ኮድ (ቢቢስ) የያዘ ደብዳቤ ወደ መላክ ምላሽ ይሰጣል። ለአጥቂው አገልጋይ ማሳወቂያ ለማድረስ OpenSMTPD ሲገናኝ አጥቂ ተጋላጭነቱን ሊጠቀም ይችላል። በጥቃቱ ጊዜ የተወጉት የሼል ትዕዛዞች OpenSMTPD እንደገና ሲጀመር ከስር መብቶች ጋር በሚፈፀም ፋይል ውስጥ ይቀመጣሉ፣ ስለዚህ አጥቂው OpenSMTPD ዳግም እስኪጀምር መጠበቅ ወይም ጥቃቱን ለማጠናቀቅ የOpenSMTPD ብልሽት እስኪጀምር ድረስ መጠበቅ አለበት።

ግንኙነቱ ከተፈጠረ በኋላ በርቀት አገልጋዩ የተመለሰውን ባለብዙ መስመር ምላሽ (ለምሳሌ “250-ENHANCEDSTATUSCODES” እና “250 HELP”) ለመተንተን ችግሩ በ mta_io() ኮድ ውስጥ አለ። OpenSMTPD ያሰላል የመጀመሪያው መስመር ባለ ሶስት አሃዝ ቁጥር እና በ"-" ቁምፊ የተለዩ ፅሁፎችን ያካትታል, እና ሁለተኛው መስመር ባለ ሶስት አሃዝ ቁጥር እና ጽሁፍ በቦታ የተለየ. ባለ ሶስት አሃዝ ቁጥር በሁለተኛው መስመር ላይ ክፍተት እና ጽሁፍ ካልተከተለ ጽሑፉን ለመግለጽ የሚጠቀመው ጠቋሚ የ'\0' ቁምፊን ተከትሎ ወደ ባይት ተቀናብሯል እና ከመጨረሻው በኋላ መረጃውን ለመቅዳት ይሞክራል. ወደ ቋት ውስጥ ያለውን መስመር.

በOpenBSD ፕሮጀክት ጥያቄ መሰረት የተጋላጭነት ብዝበዛን በተመለከተ የዝርዝሮች ህትመት ተጠቃሚዎች ስርዓታቸውን እንዲያዘምኑ ለማድረግ እስከ የካቲት 26 ድረስ ዘግይቷል። ችግሩ ከዲሴምበር 2015 ጀምሮ በኮድ ቤዝ ውስጥ አለ፣ ነገር ግን ከሜይ 2018 ጀምሮ ኮድን ከመተግበሩ በፊት ብዝበዛን ከስር መብቶች ጋር ማድረግ ተችሏል። ተመራማሪዎቹ በOpenSMTPD ግንባታዎች ለOpenBSD 6.6፣ OpenBSD 5.9፣ Debian 10፣ Debian 11 (ሙከራ) እና Fedora 31 በተሳካ ሁኔታ የተሞከረውን የብዝበዛ ፕሮቶታይፕ አዘጋጁ።

በOpenSMTPD ውስጥም እንዲሁ ተለይቷል ሌላ ተጋላጭነት (CVE-2020-8793) የአካባቢው ተጠቃሚ በስርዓቱ ላይ ያለውን ማንኛውንም ፋይል የመጀመሪያ መስመር እንዲያነብ ያስችለዋል። ለምሳሌ የ root ተጠቃሚውን የይለፍ ቃል ሃሽ የያዘውን /etc/master.passwd የመጀመሪያውን መስመር ማንበብ ትችላለህ። ተጋላጭነቱ በተጨማሪም ይህ ፋይል ከ /var/spool/smtpd/ directory ጋር በተመሳሳይ የፋይል ስርዓት ውስጥ የሚገኝ ከሆነ በሌላ ተጠቃሚ ባለቤትነት የተያዘውን ፋይል ሙሉውን ይዘት እንዲያነቡ ይፈቅድልዎታል። የ/proc/sys/fs/protected_hardlinks እሴት ወደ 1 በተቀናበረባቸው ብዙ የሊኑክስ ስርጭቶች ላይ ችግሩ መጠቀሚያ አይሆንም።

ችግሩ ያልተሟላ መወገድ ውጤት ነው ችግሮችእ.ኤ.አ. በ2015 ኳሊስ ባደረገው የኦዲት ኦዲት ወቅት ድምጽ ሰጥተዋል። አንድ አጥቂ የ«_smtpq» ቡድን መብቶች ጋር የ«PATH=» ተለዋዋጭ በማቀናበር የሱን ኮድ ማስፈጸም ይችላል። እና ሜካፕ የሚባል ስክሪፕት አሁን ባለው ማውጫ ውስጥ ማስቀመጥ (የ smtpctl utility መንገዱን በግልፅ ሳይገልጽ ሜካፕ ይሰራል)። የ "_smtpq" ቡድንን በማግኘት አጥቂው የውድድር ሁኔታን ሊያመጣ ይችላል (ከመስመር ውጭ ማውጫ ውስጥ ትልቅ ፋይል ይፍጠሩ እና SIGSTOP ምልክት ይላኩ) እና ሂደቱ ከመጠናቀቁ በፊት ፋይሉን ከመስመር ውጭ ማውጫ ውስጥ በጠንካራ መተካት ሲምሊንክ ይዘቱ መነበብ ያለበት ወደ ዒላማው ፋይል ይጠቁማል።

በ Fedora 31 ውስጥ ተጋላጭነቱ የ smtpctl ሂደት ከ setgid smtpq ባንዲራ ይልቅ በ setgid root ባንዲራ የታጠቁ ስለሆነ ወዲያውኑ የስር ቡድኑን መብቶች እንዲያገኙ የሚያስችልዎ መሆኑ ትኩረት የሚስብ ነው። የስር ቡድኑን በማግኘት የ/var/lib/sss/mc/passwd ይዘቶችን እንደገና በመፃፍ ወደ ስርዓቱ ሙሉ ስርወ መዳረሻ ማግኘት ይችላሉ።

ምንጭ: opennet.ru

አስተያየት ያክሉ