سنيپ پيڪيج مينيجمينٽ ٽول ڪٽ ۾ مقامي روٽ ڪمزوريون

Qualys ٻن خطرن جي نشاندهي ڪئي آهي (CVE-2021-44731, CVE-2021-44730) سنيپ-ڪنفائن يوٽيلٽي ۾، فراهم ڪيل SUID روٽ پرچم سان ۽ snapd پروسيس ذريعي سڏيو ويو آهي هڪ قابل عمل ماحول پيدا ڪرڻ لاءِ جيڪو پاڻمرادو پيڪيجز ۾ فراهم ڪيل ايپليڪيشنن لاءِ قابل عمل ماحول پيدا ڪري ٿو. سنيپ فارميٽ ۾. ڪمزوريون مقامي غير استحقاق رکندڙ صارف کي سسٽم تي روٽ استحقاق سان ڪوڊ تي عمل ڪرڻ جي اجازت ڏين ٿيون. Ubuntu 21.10، 20.04 ۽ 18.04 لاءِ اڄ جي سنيپ پيڪس اپڊيٽ ۾ مسئلا حل ڪيا ويا آهن.

پهريون نقصان (CVE-2021-44730) هارڊ لنڪ مينيپوليشن ذريعي حملي جي اجازت ڏئي ٿو، پر سسٽم جي هارڊ لنڪ جي حفاظت کي غير فعال ڪرڻ جي ضرورت آهي (سيٽنگ ڪرڻ sysctl fs.protected_hardlinks کي 0). مسئلو snap-update-ns ۽ snap-discard-ns مددگار پروگرامن جي ايگزيڪيوٽو فائلن جي جڳھ جي غلط تصديق جي ڪري روٽ جي طور تي ھلندو آھي. انهن فائلن جو رستو حساب ڪيو ويو sc_open_snapd_tool() فنڪشن ۾ ان جي پنهنجي رستي جي بنياد تي /proc/self/exe، جيڪو توهان کي توهان جي ڊاريڪٽري ۾ snap-confine لاءِ سخت لنڪ ٺاهڻ جي اجازت ڏئي ٿو ۽ سنيپ- جا پنهنجا ورجن رکي ٿو. هن ڊاريڪٽري ۾ تازه ڪاري-ايس ۽ سنيپ-يوٽيليٽيز کي رد ڪري ڇڏيو. هڪ هارڊ لنڪ ذريعي هلڻ کان پوءِ، روٽ رائٽس سان سنيپ-confine موجوده ڊاريڪٽري مان سنيپ-اپڊيٽ-ns ۽ snap-discard-ns فائلن کي لانچ ڪندو، حملي ڪندڙ طرفان متبادل.

ٻيو نقصان نسل جي حالت جي ڪري آهي ۽ ڊفالٽ Ubuntu ڊيسڪ ٽاپ ترتيب ۾ استحصال ڪري سگهجي ٿو. Ubuntu سرور ۾ ڪاميابيءَ سان ڪم ڪرڻ لاءِ، توهان کي انسٽال ڪرڻ وقت ”فيچرڊ سرور سنيپ“ سيڪشن مان هڪ پيڪيجز کي چونڊڻ گهرجي. نسل جي حالت واضح آهي setup_private_mount() فنڪشن ۾ جنهن کي اسنيپ پيڪيج لاءِ مائونٽ پوائنٽ نالي جي جڳهه جي تياري دوران سڏيو ويندو آهي. هي فنڪشن هڪ عارضي ڊاريڪٽري ٺاهي ٿو “/tmp/snap.$SNAP_NAME/tmp” يا ان ۾ هڪ سنيپ پيڪيج لاءِ موجوده ڊاريڪٽري کي پابند ڪرڻ لاءِ استعمال ڪري ٿو.

جيئن ته عارضي ڊاريڪٽري جو نالو اڳڪٿي ڪري سگهجي ٿو، هڪ حملو ڪندڙ مالڪ کي چيڪ ڪرڻ کان پوء ان جي مواد کي علامتي لنڪ سان تبديل ڪري سگهي ٿو، پر ماؤنٽ سسٽم کي ڪال ڪرڻ کان اڳ. مثال طور، توهان /tmp/snap.lxd ڊاريڪٽري ۾ هڪ symlink "/tmp/snap.lxd/tmp" ٺاهي سگهو ٿا جيڪو هڪ صوابديدي ڊاريڪٽري ڏانهن اشارو ڪندي، ۽ هڪ ڪال to mount() symlink جي پيروي ڪندي ۽ ڊاريڪٽري کي مائونٽ ڪندي. snap namespace. ساڳيءَ طرح، توھان پنھنجي مواد کي /var/lib ۾ مائونٽ ڪري سگھو ٿا ۽، /var/lib/snapd/mount/snap.snap-store.user-fstab کي تبديل ڪري، پنھنجي /etc ڊاريڪٽري جي ماؤنٽنگ کي منظم ڪري سگھو ٿا نالو اسپيس ۾. سنيپ پيڪيج توهان جي لائبريري جي لوڊ ڪرڻ کي منظم ڪرڻ لاءِ روٽ حقن سان /etc/ld.so.preload کي تبديل ڪندي.

اهو نوٽ ڪيو وڃي ٿو ته هڪ استحصال پيدا ڪرڻ هڪ غير معمولي ڪم ٿي ويو آهي، ڇاڪاڻ ته سنيپ-ڪنفائن يوٽيلٽي محفوظ پروگرامنگ ٽيڪنڪ استعمال ڪندي Go ۾ لکيل آهي، تحفظ آهي AppArmor پروفائلز جي بنياد تي، فلٽر سسٽم ڪالز جي بنياد تي seccomp ميڪانيزم، ۽ استعمال اڪيلائي لاءِ جبل جو نالو. بهرحال، محقق سسٽم تي روٽ حق حاصل ڪرڻ لاء ڪم ڪندڙ استحصال تيار ڪرڻ جي قابل هئا. استحصالي ڪوڊ شايع ڪيو ويندو ڪجهه هفتن ۾ صارفين پاران مهيا ڪيل اپڊيٽ کي انسٽال ڪرڻ کان پوءِ.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو