የኤክስም ወሳኝ ተጋላጭነት ተገለጠ

የታተመ የማስተካከያ መለቀቅ ኤግዚም 4.92.2 ወሳኝን ከማስወገድ ጋር ድክመቶች (CVE-2019-15846), ይህም በነባሪ ውቅር ውስጥ የሩቅ መብቶች ባለው አጥቂ ወደ የርቀት ኮድ አፈፃፀም ሊያመራ ይችላል። ችግሩ የሚታየው የTLS ድጋፍ ሲነቃ እና በልዩ ሁኔታ የተነደፈ የደንበኛ ሰርተፍኬት ወይም የተሻሻለ እሴት ወደ SNI በማለፍ ጥቅም ላይ ሲውል ብቻ ነው። ተጋላጭነት ተለይቷል በ Qualys.

ችግር ማቅረብ በሕብረቁምፊው ውስጥ ልዩ ቁምፊዎችን ለማምለጥ በተቆጣጣሪው ውስጥ (ሕብረቁምፊ_ትርጓሜ_ማምለጥ() ከ string.c) እና በሕብረ ቁምፊው መጨረሻ ላይ ያለው የ"\" ቁምፊ ከንዑል ቁምፊ ("\0") በፊት ተተርጉሞ በማምለጥ ምክንያት ነው. በሚሸሽበት ጊዜ የ'\' ተከታታዮች እና የሚከተለው የኖል-ኦፍ መስመር ኮድ እንደ አንድ ነጠላ ቁምፊ ተደርገው ይወሰዳሉ እና ጠቋሚው ከመስመሩ ውጭ ወደ ውሂብ ይቀየራል ይህም እንደ የመስመሩ ቀጣይነት ይቆጠራል።

የኮዱ ጥሪ string_interpret_escape() በትክክለኛ መጠን ላይ ተመስርቶ ለፍሳሹ ቋት ይመድባል፣ እና የተጋለጠ ጠቋሚው የሚያበቃው ከጠባቂው ወሰን ውጭ ባለ አካባቢ ነው። በዚህ መሠረት የግቤት ህብረቁምፊን ለመስራት በሚሞከርበት ጊዜ, ከተመደበው ቋት ወሰን ውጭ ያለ ቦታ መረጃን ሲያነብ ሁኔታ ይፈጠራል, እና ያልተሸፈነ ሕብረቁምፊ ለመጻፍ መሞከር ከጠባቂው ወሰን በላይ ወደ መጻፍ ሊያመራ ይችላል.

በነባሪ ውቅር ውስጥ፣ ከአገልጋዩ ጋር ደህንነቱ የተጠበቀ ግንኙነት ሲፈጥሩ ልዩ የተነደፈ ውሂብ ወደ SNI በመላክ ተጋላጭነቱን መጠቀም ይቻላል። ጉዳዩ ለደንበኛ ሰርተፍኬት ማረጋገጫ በተዋቀሩ ውቅሮች ውስጥ ወይም የምስክር ወረቀቶችን በሚያስገቡበት ጊዜ የአቻ እሴቶችን በመቀየር ጥቅም ላይ ሊውል ይችላል። ከተለቀቀ ጀምሮ በSNI እና peerdn በኩል ማጥቃት ይቻላል። ኤግዚም 4.80የ string_unprinting() ተግባር የአቻ እና የኤስኤንአይ ይዘቶችን ለመንቀል ስራ ላይ የዋለበት።

በSNI በኩል ለሚሰነዘር ጥቃት የብዝበዛ ምሳሌ ተዘጋጅቷል፣ በ i386 እና amd64 architectures ላይ በሊኑክስ ሲስተሞች ላይ ከGlibc ጋር ይሰራል። ብዝበዛው በተከመረው ቦታ ላይ የውሂብ ተደራቢን ይጠቀማል, በዚህም ምክንያት የመዝገብ ፋይሉ ስም የተከማቸበትን ማህደረ ትውስታ ይተካዋል. የፋይሉ ስም በ "/.../.../.../../../.../../../etc/passwd" ተተክቷል። በመቀጠል, የላኪው አድራሻ ያለው ተለዋዋጭ ተጽፏል, በመጀመሪያ በመዝገብ ውስጥ ይቀመጣል, ይህም አዲስ ተጠቃሚ ወደ ስርዓቱ ለመጨመር ያስችልዎታል.

የጥቅል ዝማኔዎች በስርጭት ከተለቀቁ የተጋላጭነት ጥገናዎች ጋር ደቢያን, ኡቡንቱ, Fedora, SUSE/ክፍት SUSE и FreeBSD. RHEL እና CentOS ችግር የተጋለጠ አይደለምኤግዚም በመደበኛ የጥቅል ማከማቻቸው ውስጥ ስላልተካተቱ (በ ሞቅ ያለ ማደስ ገና ተፈጠረለአሁን ግን አልተቀመጠም ወደ የሕዝብ ማከማቻ)። በኤግዚም ኮድ ውስጥ ችግሩ ከአንድ መስመር ጋር ተስተካክሏል። ጠጋኝ, ይህም በመስመሩ መጨረሻ ላይ ከሆነ የኋለኛውን መጨፍጨፍ የማምለጫውን ውጤት ያሰናክላል.

ተጋላጭነቱን ለመግታት እንደ መፍትሄ፣ የTLS ድጋፍን ማሰናከል ወይም ማከል ይችላሉ።
የACL ክፍል "acl_smtp_mail"፡-

የመካድ ሁኔታ = ${ኢq ከሆነ{\\}{${substr{-1}{1}{$tls_in_sni}}}}
የመካድ ሁኔታ = ${ኢq ከሆነ{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

ምንጭ: opennet.ru

አስተያየት ያክሉ