Exim හි විවේචනාත්මක අවදානම පිළිබඳ විස්තර අනාවරණය විය

පළ කළා නිවැරදි කිරීමේ නිකුතුව Exim 4.92.2 විවේචනාත්මක ඉවත් කිරීම සමඟ දුර්වලතා (CVE-2019-15846), පෙරනිමි වින්‍යාසය තුළ මූල වරප්‍රසාද සහිත ප්‍රහාරකයෙකු විසින් දුරස්ථ කේත ක්‍රියාත්මක කිරීමට හේතු විය හැක. ගැටළුව දිස්වන්නේ TLS සහාය සක්‍රීය කර ඇති විට සහ විශේෂයෙන් නිර්මාණය කරන ලද සේවාදායක සහතිකයක් හෝ වෙනස් කළ අගයක් SNI වෙත යැවීමෙන් සූරාකෑමට ලක් වූ විට පමණි. අවදානම හඳුනාගෙන ඇත ක්වාලිස් විසිනි.

ප්රශ්නය වත්මන් වේ තන්තුවෙහි විශේෂ අක්ෂර වලින් ගැලවීම සඳහා හසුරුවන්නෙහි (string_interpret_escape() string.c සිට) සහ නූල අවසානයේ ඇති '\' අක්ෂරය ශුන්‍ය අක්ෂරයට ('\0') පෙර අර්ථකථනය කර එයින් ගැලවී යාමෙන් ඇති වේ. පැන යාමේදී, '\' අනුක්‍රමය සහ පහත සඳහන් null end-of-line කේතය තනි අක්ෂරයක් ලෙස සලකනු ලබන අතර, පේළියේ අඛණ්ඩ පැවැත්මක් ලෙස සලකනු ලබන රේඛාවෙන් පිටත දත්ත වෙත දර්ශකය මාරු කරනු ලැබේ.

කේතය ඇමතීම string_interpret_escape() සැබෑ ප්‍රමාණය මත පදනම්ව කාණු සඳහා බෆරයක් වෙන් කරයි, සහ නිරාවරණය වූ පොයින්ටරය අවසන් වන්නේ බෆරයේ සීමාවෙන් පිටත ප්‍රදේශයක ය. ඒ අනුව ආදාන තන්තුවක් සැකසීමට උත්සාහ කිරීමේදී වෙන් කරන ලද බෆරයේ සීමාවෙන් පිටත ප්‍රදේශයක දත්ත කියවීමේදී තත්වයක් ඇති වන අතර නොගැලපෙන තන්තුවක් ලිවීමට උත්සාහ කිරීම බෆරයේ සීමාවෙන් ඔබ්බට ලිවීමට හේතු විය හැක.

පෙරනිමි වින්‍යාසය තුළ, සේවාදායකයට ආරක්ෂිත සම්බන්ධතාවයක් ස්ථාපනය කිරීමේදී විශේෂයෙන් නිර්මාණය කරන ලද දත්ත SNI වෙත යැවීමෙන් අවදානම් ප්‍රයෝජනයට ගත හැකිය. සේවාලාභී සහතික සත්‍යාපනය සඳහා වින්‍යාස කර ඇති වින්‍යාසයන්හි හෝ සහතික ආනයනය කිරීමේදී peerdn අගයන් වෙනස් කිරීමෙන් ද ගැටලුව ප්‍රයෝජනයට ගත හැකිය. SNI සහ peerdn හරහා ප්‍රහාරය මුදා හැරීමේ සිට ආරම්භ කළ හැක Exim 4.80, peerdn සහ SNI අන්තර්ගතයන් මුද්‍රණය නොකිරීමට string_unprinting() ශ්‍රිතය භාවිතා කරන ලදී.

Glibc සමඟ ලිනක්ස් පද්ධති මත i386 සහ amd64 ගෘහ නිර්මාණ ශිල්පය මත ධාවනය වන SNI හරහා ප්‍රහාරයක් සඳහා සූරාකෑමේ මූලාකෘතියක් සකස් කර ඇත. සූරාකෑම ගොඩ ප්‍රදේශය මත දත්ත ආවරණයක් භාවිතා කරයි, එහි ප්‍රතිඵලයක් ලෙස ලොග් ගොනු නාමය ගබඩා කර ඇති මතකය නැවත ලිවීම සිදුවේ. ගොනු නාමය "/../../../../../../../../etc/passwd" සමඟ ප්‍රතිස්ථාපනය වේ. ඊළඟට, යවන්නාගේ ලිපිනය සහිත විචල්‍යය නැවත ලියනු ලැබේ, එය මුලින්ම ලොගයේ සුරකින අතර එමඟින් පද්ධතියට නව පරිශීලකයෙකු එක් කිරීමට ඔබට ඉඩ සලසයි.

බෙදාහැරීම් මගින් නිකුත් කරන ලද අවදානම් නිවැරදි කිරීම් සහිත පැකේජ යාවත්කාලීන ඩේබියන්, උබුන්ටු, Fedora, SUSE/openSUSE и FreeBSD. RHEL සහ CentOS ගැටළුව ගොදුරු නොවේ, Exim ඔවුන්ගේ නිත්‍ය පැකේජ ගබඩාවට ඇතුළත් කර නැති නිසා (in EPEL යාවත්කාලීන කිරීම දැනටමත් පිහිටුවා ඇත, නමුත් දැනට තබා නැත පොදු ගබඩාවකට). Exim කේතය තුළ, ගැටළුව තනි රේඛාවකින් විසඳා ඇත පැච්, එය පේළියේ කෙළවරේ තිබේ නම්, backslash හි ගැලවීමේ බලපෑම අක්‍රීය කරයි.

අවදානම අවහිර කිරීමට විසඳුමක් ලෙස, ඔබට TLS සහාය අක්‍රිය කිරීමට හෝ එක් කිරීමට හැකිය
ACL කොටස "acl_smtp_mail":

කොන්දේසිය ප්‍රතික්ෂේප කරන්න = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
කොන්දේසිය ප්‍රතික්ෂේප කරන්න = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න