اسنیپ پیکیج مینجمنٹ ٹول کٹ میں مقامی جڑ کی کمزوریاں

Qualys نے snap-confine یوٹیلیٹی میں دو کمزوریوں (CVE-2021-44731, CVE-2021-44730) کی نشاندہی کی ہے، جو SUID روٹ فلیگ کے ساتھ فراہم کی گئی ہیں اور خود ساختہ پیکجوں میں فراہم کردہ ایپلیکیشنز کے لیے ایک قابل عمل ماحول بنانے کے لیے snapd عمل کے ذریعے بلایا گیا ہے۔ اسنیپ فارمیٹ میں کمزوریاں مقامی غیر مراعات یافتہ صارف کو سسٹم پر روٹ مراعات کے ساتھ کوڈ پر عمل کرنے کی اجازت دیتی ہیں۔ Ubuntu 21.10، 20.04 اور 18.04 کے لیے آج کے snapd پیکیج اپ ڈیٹ میں مسائل حل ہو گئے ہیں۔

پہلی کمزوری (CVE-2021-44730) ہارڈ لنک ہیرا پھیری کے ذریعے حملے کی اجازت دیتی ہے، لیکن سسٹم ہارڈ لنک پروٹیکشن کو غیر فعال کرنے کی ضرورت ہے (sysctl fs.protected_hardlinks کو 0 پر سیٹ کرنا)۔ مسئلہ روٹ کے طور پر چلنے والے snap-update-ns اور snap-discard-ns مددگار پروگراموں کے قابل عمل فائلوں کے مقام کی غلط تصدیق کی وجہ سے ہے۔ ان فائلوں کے راستے کا حساب sc_open_snapd_tool() فنکشن میں اس کے اپنے راستے کی بنیاد پر /proc/self/exe میں لگایا گیا تھا، جو آپ کو اپنی ڈائرکٹری میں snap-confine کے لیے ایک مشکل لنک بنانے اور snap- کے اپنے ورژن رکھنے کی اجازت دیتا ہے۔ اس ڈائرکٹری میں اپ ڈیٹ-این ایس اور اسنیپ یوٹیلیٹیز کو ڈسکارڈ-این ایس۔ ہارڈ لنک کے ذریعے چلنے کے بعد، روٹ رائٹس کے ساتھ snap-confine موجودہ ڈائرکٹری سے snap-update-ns اور snap-discard-ns فائلوں کو لانچ کرے گا، جو حملہ آور کے ذریعہ تبدیل کیا گیا ہے۔

دوسری کمزوری ریس کی حالت کی وجہ سے ہوتی ہے اور ڈیفالٹ Ubuntu ڈیسک ٹاپ کنفیگریشن میں اس کا فائدہ اٹھایا جا سکتا ہے۔ Ubuntu سرور میں کامیابی کے ساتھ کام کرنے کے لیے، آپ کو انسٹال کرتے وقت "Featured Server Snaps" سیکشن میں سے ایک پیکج کا انتخاب کرنا چاہیے۔ سیٹ اپ_پرائیویٹ_ماؤنٹ() فنکشن میں ریس کی حالت واضح ہے جسے اسنیپ پیکج کے لیے ماؤنٹ پوائنٹ نام کی جگہ کی تیاری کے دوران کہا جاتا ہے۔ یہ فنکشن ایک عارضی ڈائرکٹری "/tmp/snap.$SNAP_NAME/tmp" بناتا ہے یا اس میں اسنیپ پیکیج کے لیے ڈائرکٹریز کو بائنڈ کرنے کے لیے موجودہ کو استعمال کرتا ہے۔

چونکہ عارضی ڈائرکٹری کا نام قابل قیاس ہے، حملہ آور مالک کو چیک کرنے کے بعد اس کے مواد کو علامتی لنک سے بدل سکتا ہے، لیکن ماؤنٹ سسٹم کال کرنے سے پہلے۔ مثال کے طور پر، آپ /tmp/snap.lxd ڈائرکٹری میں ایک symlink "/tmp/snap.lxd/tmp" بنا سکتے ہیں جو کسی صوابدیدی ڈائرکٹری کی طرف اشارہ کرتی ہے، اور mount() کو کال کرنے سے symlink کی پیروی ہوگی اور ڈائرکٹری کو اسنیپ نام کی جگہ۔ اسی طرح، آپ اپنے مواد کو /var/lib میں ماؤنٹ کر سکتے ہیں اور، /var/lib/snapd/mount/snap.snap-store.user-fstab کو تبدیل کر کے، اپنی /etc ڈائرکٹری کے ماؤنٹنگ کو نام کی جگہ پر ترتیب دے سکتے ہیں۔ /etc/ld.so.preload کی ​​جگہ لے کر روٹ رائٹس کے ساتھ اپنی لائبریری کی لوڈنگ کو منظم کرنے کے لیے سنیپ پیکج۔

واضح رہے کہ استحصال پیدا کرنا ایک غیر معمولی کام نکلا، چونکہ اسنیپ کنفائن یوٹیلیٹی گو میں محفوظ پروگرامنگ تکنیکوں کا استعمال کرتے ہوئے لکھی گئی ہے، اس میں ایپ آرمر پروفائلز، فلٹر سسٹم کالز پر مبنی تحفظ ہے، اور سیکومپ میکانزم کی بنیاد پر استعمال کیا جاتا ہے۔ تنہائی کے لیے ماؤنٹ نام کی جگہ۔ تاہم، محققین نظام پر جڑوں کے حقوق حاصل کرنے کے لیے کام کرنے والے استحصال کو تیار کرنے کے قابل تھے۔ صارفین کی جانب سے فراہم کردہ اپ ڈیٹس کو انسٹال کرنے کے چند ہفتوں میں ایکسپلائٹ کوڈ شائع کیا جائے گا۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں