Snap தொகுப்பு மேலாண்மை கருவித்தொகுப்பில் ரூட் பாதிப்பு

இந்த ஆண்டு (CVE-2022-3328) மூன்றாவது ஆபத்தான பாதிப்பை Qualys கண்டறிந்துள்ளது, இது SUID ரூட் ஃபிளாடுடன் வருகிறது மற்றும் snapd செயல்முறையால் அழைக்கப்படுகிறது, இது தன்னிறைவான தொகுப்புகளில் விநியோகிக்கப்படும் பயன்பாடுகளுக்கு இயங்கக்கூடிய சூழலை உருவாக்குகிறது. ஸ்னாப் வடிவத்தில். இயல்புநிலை உபுண்டு உள்ளமைவில் ரூட்டாக குறியீடு செயல்படுத்தலை அடைய, உள்ளூர் உரிமையற்ற பயனரை பாதிப்பு அனுமதிக்கிறது. snapd 2.57.6 வெளியீட்டில் சிக்கல் சரி செய்யப்பட்டது. உபுண்டுவின் அனைத்து ஆதரிக்கப்படும் கிளைகளுக்கும் தொகுப்பு மேம்படுத்தல்கள் வெளியிடப்பட்டுள்ளன.

சுவாரஸ்யமாக, snap-confine இல் இதேபோன்ற பிப்ரவரி பாதிப்பை சரிசெய்யும் செயல்முறையின் போது கேள்விக்குரிய பாதிப்பு அறிமுகப்படுத்தப்பட்டது. உபுண்டு சர்வர் 22.04 க்கு ரூட் அணுகலை வழங்கும் ஒரு வேலைச் சுரண்டலை ஆராய்ச்சியாளர்கள் தயார் செய்ய முடிந்தது, இது ஸ்னாப்-கான்ஃபைனில் உள்ள பாதிப்புக்கு கூடுதலாக, மல்டிபாத் செயல்பாட்டில் இரண்டு பாதிப்புகளையும் உள்ளடக்கியது (CVE-2022-41974, CVE-2022-41973) , சலுகை பெற்ற கட்டளைகள் மற்றும் குறியீட்டு இணைப்புகளுடன் பாதுகாப்பற்ற வேலைகளை அனுப்பும் போது அதிகாரச் சோதனையைத் தவிர்ப்பதுடன் தொடர்புடையது.

snap-confineல் உள்ள பாதிப்பு, must_mkdir_and_open_with_perms() செயல்பாட்டில் உள்ள ரேஸ் நிபந்தனையால் ஏற்படுகிறது, இது /tmp/snap.$SNAP_NAME கோப்பகத்தை மாற்றியமைப்பதில் இருந்து பாதுகாக்க சேர்க்கப்பட்டது, உரிமையாளரைச் சரிபார்த்த பிறகு, ஆனால் மவுண்ட் சிஸ்டத்தை அழைக்கும் முன் ஸ்னாப் வடிவத்தில் ஒரு தொகுப்பிற்கு அடைவுகளை பைண்ட்-மவுண்ட் செய்ய அழைக்கவும். கூடுதல் பாதுகாப்பு, /tmp/snap.$SNAP_NAME கோப்பகத்தை /tmp இல் உள்ள மற்றொரு கோப்பகத்திற்கு மறுபெயரிடுவது, அது ரூட்டிற்குச் சொந்தமானது அல்ல.

/tmp/snap.$SNAP_NAME கோப்பகத்தின் மறுபெயரிடுதல் செயல்பாட்டைப் பயன்படுத்தும் போது, ​​snap-confine ஆனது snap தொகுப்பின் உள்ளடக்கங்களின் மூலத்திற்காக /tmp/snap.rootfs_XXXXXX கோப்பகத்தையும் உருவாக்குகிறது என்ற உண்மையை ஆராய்ச்சியாளர்கள் பயன்படுத்திக் கொண்டனர். பெயரின் "XXXXXX" பகுதி mkdtemp() ஆல் தோராயமாகத் தேர்ந்தெடுக்கப்பட்டது, ஆனால் "rootfs_XXXXXX" என்ற தொகுப்பை sc_instance_name_validate செயல்பாட்டில் சரிபார்க்கலாம் (அதாவது $SNAP_NAME ஆனது "rootfs_XXXXXX" என அமைக்கப்பட்டு, மறுபெயரிடும் செயல்பாடு ரூட் ஸ்னாப் உடன் /tmp/snap.rootfs_XXXXXX கோப்பகத்தை மேலெழுதுவதற்கு வழிவகுக்கும்).

/tmp/snap.rootfs_XXXXXXஐ ஒரே நேரத்தில் பயன்படுத்துவதற்கும் /tmp/snap.$SNAP_NAME என மறுபெயரிடுவதற்கும், snap-confine இன் இரண்டு நிகழ்வுகள் தொடங்கப்பட்டன. முதல் நிகழ்வு /tmp/snap.rootfs_XXXXXX ஐ உருவாக்கியவுடன், செயல்முறை தடுக்கப்படும் மற்றும் இரண்டாவது நிகழ்வு ரூட்ஃப்ஸ்_XXXXXX என்ற தொகுப்பு பெயருடன் தொடங்கும், இதனால் இரண்டாவது நிகழ்வின் தற்காலிக கோப்பகம் /tmp/snap.$SNAP_NAME ரூட் கோப்பகமாக மாறும். முதல் .rootfs_XXXXXX. மறுபெயரிடுதல் முடிந்த உடனேயே, இரண்டாவது நிகழ்வு செயலிழந்தது, மேலும் /tmp/snap.rootfs_XXXXXX ஆனது ரேஸ் நிபந்தனை கையாளுதலுடன் மாற்றப்பட்டது, இது பிப்ரவரி பாதிப்பைப் பயன்படுத்திக் கொண்டது. மாற்றீட்டிற்குப் பிறகு, செயல்படுத்தல் பூட்டு முதல் நிகழ்விலிருந்து அகற்றப்பட்டது மற்றும் தாக்குபவர்கள் ஸ்னாப் ரூட் கோப்பகத்தின் மீது முழு கட்டுப்பாட்டைப் பெற்றனர்.

மவுண்ட்() அழைப்பிலிருந்து, கோப்பு முறைமையில் உள்ள எந்த கோப்பகத்திலும் எழுதக்கூடிய உண்மையான கோப்பகத்தை /tmp ஐ இணைக்க, sc_bootstrap_mount_namespace() செயல்பாட்டால் பயன்படுத்தப்பட்ட சிம்லிங்க் /tmp/snap.rootfs_XXXXXX/tmp ஐ உருவாக்குவது கடைசி படியாகும். ஏற்றுவதற்கு முன் சிம்லிங்க்களைப் பின்பற்றுகிறது. இத்தகைய மவுண்டிங் AppArmor கட்டுப்பாடுகளால் தடுக்கப்பட்டது, ஆனால் இந்தத் தடுப்பைத் தவிர்க்க, சுரண்டல் மல்டிபாத்டில் இரண்டு துணைப் பாதிப்புகளைப் பயன்படுத்தியது.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்