لینکس کرنل کے VFS میں ایک کمزوری جو آپ کو اپنے مراعات کو بڑھانے کی اجازت دیتی ہے

لینکس کرنل کے ذریعہ فراہم کردہ فائل سسٹم سیاق و سباق API میں ایک کمزوری (CVE-2022-0185) کی نشاندہی کی گئی ہے، جو ایک مقامی صارف کو سسٹم پر روٹ مراعات حاصل کرنے کی اجازت دیتا ہے۔ اس مسئلے کی نشاندہی کرنے والے محقق نے ایک استحصال کا ایک مظاہرہ شائع کیا جو آپ کو پہلے سے طے شدہ ترتیب میں Ubuntu 20.04 پر کوڈ کو روٹ کے طور پر چلانے کی اجازت دیتا ہے۔ ایکسپلائٹ کوڈ کو ایک ہفتہ کے اندر گٹ ہب پر پوسٹ کرنے کا منصوبہ ہے جب ڈسٹری بیوشنز کی جانب سے ایک اپ ڈیٹ جاری کیا جائے گا جو کمزوری کو ٹھیک کرتا ہے۔

VFS میں legacy_parse_param() فنکشن میں کمزوری موجود ہے اور فائل سسٹمز پر فراہم کردہ پیرامیٹرس کے زیادہ سے زیادہ سائز کو درست طریقے سے چیک کرنے میں ناکامی کی وجہ سے ہے جو Filesystem Context API کو سپورٹ نہیں کرتے ہیں۔ ایک ایسا پیرامیٹر جو بہت بڑا ہے پاس کرنا انٹیجر متغیر کے اوور فلو کا سبب بن سکتا ہے جس کا استعمال ڈیٹا کے سائز کو لکھنے کے لیے کیا جاتا ہے - کوڈ میں بفر اوور فلو چیک ہوتا ہے "if (len > PAGE_SIZE - 2 - سائز)"، جو ایسا نہیں کرتا ہے۔ اگر سائز ویلیو 4094 سے زیادہ ہو تو کام کریں۔ لوئر باؤنڈ کے ذریعے انٹیجر اوور فلو کے لیے (انٹیجر انڈر فلو، جب 4096 - 2 - 4095 کو غیر دستخط شدہ انٹ میں کاسٹ کرتے ہیں، نتیجہ 2147483648 ہے)۔

یہ خرابی، خاص طور پر ڈیزائن کردہ فائل سسٹم امیج تک رسائی حاصل کرنے کی اجازت دیتی ہے، بفر اوور فلو کا سبب بنتی ہے اور مختص میموری ایریا کے بعد کرنل ڈیٹا کو اوور رائٹ کرتی ہے۔ کمزوری سے فائدہ اٹھانے کے لیے، آپ کے پاس CAP_SYS_ADMIN حقوق ہونے چاہئیں، یعنی منتظم کے اختیارات مسئلہ یہ ہے کہ ایک غیر مراعات یافتہ صارف الگ تھلگ کنٹینر میں ایسی اجازتیں حاصل کر سکتا ہے اگر سسٹم میں صارف کے نام کی جگہوں کے لیے سپورٹ موجود ہو۔ مثال کے طور پر، Ubuntu اور Fedora پر صارف کے نام کی جگہیں بطور ڈیفالٹ فعال ہوتی ہیں، لیکن Debian اور RHEL پر فعال نہیں ہوتی ہیں (جب تک کہ کنٹینر آئسولیشن پلیٹ فارم استعمال نہ کیے جائیں)۔

یہ مسئلہ لینکس کرنل 5.1 کے بعد سے ظاہر ہو رہا ہے اور اسے کل کی اپ ڈیٹس 5.16.2، 5.15.16، 5.10.93، 5.4.173 میں ٹھیک کر دیا گیا ہے۔ RHEL، Debian، Fedora، اور Ubuntu کے لیے پیکیج اپ ڈیٹس جو کمزوری کو ٹھیک کرتے ہیں پہلے ہی جاری کیے جا چکے ہیں۔ فکس ابھی تک آرک لینکس، جینٹو، سوس اور اوپن سوس پر دستیاب نہیں ہے۔ ان سسٹمز کے لیے حفاظتی حل کے طور پر جو کنٹینر آئسولیشن کا استعمال نہیں کرتے ہیں، آپ sysctl "user.max_user_namespaces" ویلیو کو 0 پر سیٹ کر سکتے ہیں: echo "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf # sysctl -p /etc/ sysctl.d/userns.conf

ماخذ: opennet.ru

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