Snap Package Management Toolkit හි Root Vulnerability

ක්වාලිස් විසින් මෙම වසරේ (CVE-2022-3328) තුන්වන දැඩි අවදානමක් හඳුනාගෙන ඇත, SUID මූල ධජය සමඟ එන සහ ස්වයං අන්තර්ගත පැකේජවල බෙදා හරින ලද යෙදුම් සඳහා ක්‍රියාත්මක කළ හැකි පරිසරයක් සැකසීමට snapd ක්‍රියාවලිය මගින් කැඳවනු ලබන snap-confine උපයෝගීතාව තුළ snap ආකෘතියෙන්. දුර්වලතාවය දේශීය වරප්‍රසාද ලත් පරිශීලකයෙකුට පෙරනිමි උබුන්ටු වින්‍යාසය තුළ මූල ලෙස කේත ක්‍රියාත්මක කිරීමට ඉඩ සලසයි. snapd 2.57.6 නිකුත් කිරීමේදී ගැටළුව විසඳා ඇත. Ubuntu හි සියලුම සහය දක්වන ශාඛා සඳහා පැකේජ යාවත්කාලීන නිකුත් කර ඇත.

සිත්ගන්නා කරුණ නම්, ප්‍රශ්නගත අවදානම හඳුන්වා දෙනු ලැබුවේ snap-confine හි සමාන පෙබරවාරි අවදානමක් නිවැරදි කිරීමේ ක්‍රියාවලියේදීය. Ubuntu Server 22.04 හි මූල ප්‍රවේශය සපයන ක්‍රියාකාරී සූරාකෑමක් සකස් කිරීමට පර්යේෂකයන්ට හැකි විය, එය ක්ෂණික-සීමිත අවදානමට අමතරව, බහුමාර්ග ක්‍රියාවලියේ අවදානම් දෙකක් ද ඇතුළත් වේ (CVE-2022-41974, CVE-2022-41973) වරප්‍රසාදිත විධාන සම්මත කිරීමේදී අවසර පරීක්ෂාව මඟ හැරීම සහ සංකේතාත්මක සබැඳි අනාරක්ෂිත ලෙස හැසිරවීම සම්බන්ධය.

snap-confin හි ඇති අනාරක්‍ෂිතතාවය හටගන්නේ must_mkdir_and_open_with_perms() ශ්‍රිතයේ ධාවන තත්වයක් නිසා, හිමිකරු පරීක්ෂා කිරීමෙන් පසු සංකේතාත්මක සබැඳියක් සමඟින් /tmp/snap.$SNAP_NAME නාමාවලිය ආදේශ කිරීමෙන් ආරක්ෂා කිරීම සඳහා එකතු කරන ලද නමුත් පද්ධති ඇමතුමට පෙර snap ආකෘතියේ පැකේජයක් සඳහා නාමාවලි බැඳීමට කැඳවනු ලැබේ. එකතු කරන ලද ආරක්‍ෂාව වූයේ /tmp/snap.$SNAP_NAME ඩිරෙක්ටරිය පවතින අතර එය root පරිශීලකයාට අයිති නැතිනම් අහඹු නමක් සහිත /tmp හි වෙනත් නාමාවලියකට නැවත නම් කිරීමයි.

/tmp/snap.$SNAP_NAME බහලුම නැවත නම් කිරීමේ මෙහෙයුම ප්‍රයෝජනයට ගන්නා විට, snap-confine මඟින් snap පැකේජයේ අන්තර්ගතයේ මූලය සඳහා /tmp/snap.rootfs_XXXXXX නාමාවලියක් නිර්මාණය කරන බව පර්යේෂකයන් විසින් ප්‍රයෝජනයට ගන්නා ලදී. නමේ "XXXXXX" කොටස අහඹු ලෙස mkdtemp() විසින් තෝරා ඇත, නමුත් "rootfs_XXXXXX" නම් පැකේජයක් sc_instance_name_validate සමත් විය හැක (එනම් අදහස $SNAP_NAME "rootfs_XXXXXX" ලෙස සකසා ඇති අතර පසුව නැවත නම් කිරීමේ ක්‍රියාව නැවත ලිවීමට හේතු වේ snap root සමඟ /tmp/snap.rootfs_XXXXXX නාමාවලිය).

/tmp/snap.rootfs_XXXXXX සමගාමී භාවිතය සහ /tmp/snap.$SNAP_NAME නැවත නම් කිරීම සඳහා, snap-confine අවස්ථා දෙකක් ආරම්භ කරන ලදී. පළමු අවස්ථාව /tmp/snap.rootfs_XXXXXX නිර්මාණය කළ විගස, ක්‍රියාවලිය අවහිර වන අතර, rootfs_XXXXXX පැකේජ නාමය සහිත දෙවන අවස්ථාව ආරම්භ වනු ඇත, දෙවන අවස්ථාවෙහි තාවකාලික නාමාවලිය /tmp/snap.$SNAP_NAME /tmp/snap බවට පත් වේ. පළමු අවස්ථාවෙහි .rootfs_XXXXXX මූල නාමාවලිය. නැවත නම් කිරීම සිදු කළ විගසම, දෙවන අවස්ථාව බිඳ වැටුණු අතර, පෙබරවාරි අවදානම සූරාකෑමේදී මෙන් /tmp/snap.rootfs_XXXXXX ධාවන තත්ත්‍වය හැසිරවීම සමඟ ප්‍රතිස්ථාපනය විය. වෙනස් කිරීමෙන් පසු, ක්‍රියාත්මක කිරීමේ අගුල පළමු අවස්ථාවෙන් ඉවත් කරන ලද අතර ප්‍රහාරකයන්ට snap root නාමාවලියෙහි පූර්ණ පාලනය හිමි විය.

අවසාන පියවර වූයේ ගොනු පද්ධතියේ ඕනෑම බහලුමකට ලිවිය හැකි සැබෑ බහලුම /tmp සම්බන්ධ කිරීමට sc_bootstrap_mount_namespace() ශ්‍රිතය විසින් භාවිතා කරන ලද symlink /tmp/snap.rootfs_XXXXXX/tmp නිර්මාණය කිරීමයි. සවි කිරීමට පෙර symlinks. එවැනි සවි කිරීම් AppArmor සීමාවන් මගින් අවහිර කර ඇත, නමුත් මෙම අවහිර කිරීම මග හැරීම සඳහා, සූරාකෑම බහුමාර්ගයේ සහායක දුර්වලතා දෙකක් භාවිතා කළේය.

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

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