ኮድ በአገልጋዩ ላይ ከስር መብቶች ጋር እንዲተገበር የሚፈቅድ በኤግዚም ውስጥ ወሳኝ ተጋላጭነት

በኤግዚም ሜይል አገልጋይ ውስጥ ተለይቷል ክሪቲቼስካያ ተጋላጭነት (CVE-2019-10149), ይህም በልዩ ሁኔታ የተዘጋጀ ጥያቄን በሚሰራበት ጊዜ ከስር መብቶች ጋር በአገልጋዩ ላይ የርቀት ኮድ አፈፃፀምን ያስከትላል። ከ4.87 እስከ 4.91 ባካተተ ስሪት ወይም በEXPERIMENTAL_EVENT አማራጭ ሲገነባ የችግሩን መበዝበዝ እድል ተጠቅሷል።

በነባሪ ውቅር ውስጥ ጥቃቱ በአካባቢያዊ ተጠቃሚ አላስፈላጊ ችግሮች ሊፈፀም ይችላል, ምክንያቱም "verify = ተቀባይ" ACL ስለሚተገበር ውጫዊ አድራሻዎች ተጨማሪ ፍተሻዎችን ያደርጋል. የርቀት ጥቃት ቅንጅቶች ሲቀየሩ ለምሳሌ ለሌላ ጎራ እንደ ሁለተኛ ደረጃ MX መስራት፣ "verify=recipient" ACL ን ማስወገድ ወይም በ local_part_suffix ላይ የተወሰኑ ለውጦችን ማድረግ ይቻላል። አጥቂው ከአገልጋዩ ጋር ያለው ግንኙነት ለ 7 ቀናት ክፍት ሆኖ እንዲቆይ ማድረግ ከቻለ የርቀት ጥቃትም ይቻላል (ለምሳሌ፡ የጊዜ ገደብ ለማለፍ በደቂቃ አንድ ባይት መላክ)። በተመሳሳይ ጊዜ ለችግሩ የርቀት ብዝበዛ ቀላል የሆኑ የጥቃት ቬክተሮች ሊኖሩ ይችላሉ.

ተጋላጭነቱ የተከሰተው የተቀባዩን አድራሻ በ/src/deliver.c ፋይል ውስጥ በተገለፀው የማድረስ_መልእክት() ተግባር ውስጥ ትክክል ባልሆነ ማረጋገጫ ነው። አንድ አጥቂ የአድራሻውን ቅርጸት በመቆጣጠር መረጃውን በ execv() ተግባር በኩል ከስር መብቶች ጋር በተጠራው የትእዛዝ ክርክር ውስጥ መተካት ይችላል። ክዋኔው ለመጠባበቂያ ክምችት ወይም ለትውስታ መበላሸት የሚያገለግሉ ውስብስብ ቴክኒኮችን መጠቀም አያስፈልግም፤ ቀላል ገጸ ባህሪን መተካት በቂ ነው።

ችግሩ ከአድራሻ መቀየር ግንባታ አጠቃቀም ጋር የተያያዘ ነው፡-

deliver_localpart = expand_string(
string_sprintf("${local_part:%s}", new->አድራሻ));
ማድረስ_ጎራ = expand_string(
string_sprintf("${domain:%s}", new->አድራሻ));

የ expand_string() ተግባር ከመጠን በላይ የተወሳሰበ አጣማሪ ነው፣ ይህም "${አሂድ{ትዕዛዝ ነጋሪ እሴቶች}" የሚለውን ትእዛዝ እውቅና መስጠትን ጨምሮ፣ ይህም ወደ ውጫዊ ተቆጣጣሪ መጀመሩን ያመጣል። ስለዚህ፣ በSMTP ክፍለ ጊዜ ውስጥ ለማጥቃት፣ የአካባቢ ተጠቃሚ እንደ 'RCPT TO "username+${run{...}}@localhost"' የሚል ትዕዛዝ ብቻ መላክ አለበት፣ የአካባቢ አስተናጋጁ ከአካባቢው_ጎራዎች ዝርዝር ውስጥ አንዱ ነው። እና የተጠቃሚ ስም የነባር የአካባቢ ተጠቃሚ ስም ነው።

አገልጋዩ እንደ ሜይል ማስተላለፊያ ሆኖ የሚሰራ ከሆነ፣ relaydomain.com በ relay_to_domains ውስጥ ከተዘረዘሩት አስተናጋጆች አንዱ በሆነበት 'RCPT ወደ "${run{...}}@relaydomain.com" የሚለውን ትዕዛዝ በርቀት መላክ በቂ ነው። የቅንብሮች ክፍል. ኤግዚም የልዩ መብት ሁነታን (deliver_drop_privilege = false) ለመጣል ነባሪ ስላልሆነ በ"${ሩጫ{...}}" በኩል የተላለፉ ትዕዛዞች እንደ ስር ይሰራሉ።

የተጋላጭነቱ ሁኔታ ትኩረት የሚስብ ነው። ተወግዷል በየካቲት ወር በተለቀቀው የ 4.92 ልቀት ላይ፣ ማስተካከያው ወደ የደህንነት ችግሮች ሊመራ እንደሚችል ሳያጎላ። በኤግዚም ገንቢዎች ሆን ተብሎ የተጋላጭነትን መደበቅ ለማመን ምንም ምክንያት የለም፣ ችግሩ የተስተካከለው በነበረበት ወቅት ነው። ጥገናዎች የተሳሳቱ አድራሻዎች በሚተላለፉበት ጊዜ የሚከሰት አለመሳካት እና ተጋላጭነቱ በኤግዚም ለውጦች ኦዲት ወቅት በ Qualys ተለይቷል።

በስርጭት ውስጥ ጥቅም ላይ የሚውሉ የቀደሙ ስሪቶች ማስተካከያ በአሁኑ ጊዜ የሚገኘው እንደ ብቻ ነው። ጠጋኝ. ችግሩን ለማስተካከል ለቀደሙት ቅርንጫፎች የማስተካከያ ልቀቶች ለጁን 11 ተይዘዋል ። የጥቅል ዝማኔዎች ዝግጁ ናቸው። ደቢያን, ኡቡንቱ, openSUSE. አርክ ሊንክ и Fedora ችግሩ የማይታይበትን ስሪት 4.92 ያቀርባሉ። RHEL እና CentOS ችግር የተጋለጠ አይደለም, Exim በመደበኛ የጥቅል ማከማቻቸው ውስጥ ስላልተካተቱ።

ምንጭ: opennet.ru

አስተያየት ያክሉ