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

Polkit جزو میں ایک کمزوری (CVE-2021-3560) کی نشاندہی کی گئی ہے، جسے تقسیم میں استعمال کیا جاتا ہے تاکہ غیر مراعات یافتہ صارفین کو ایسے اعمال انجام دینے کی اجازت دی جائے جن کے لیے اعلیٰ رسائی کے حقوق کی ضرورت ہوتی ہے (مثال کے طور پر، USB ڈرائیو لگانا)، جو مقامی صارف کو اجازت دیتا ہے۔ نظام میں بنیادی حقوق حاصل کریں۔ Polkit ورژن 0.119 میں کمزوری طے کی گئی ہے۔

یہ مسئلہ ریلیز 0.113 کے بعد سے موجود ہے، لیکن RHEL، Ubuntu، Debian، اور SUSE سمیت بہت سی ڈسٹری بیوشنز نے پرانے Polkit ریلیز کی بنیاد پر پیکجز میں متاثرہ فعالیت کو بیک پورٹ کر دیا ہے (پیکج فکس پہلے ہی تقسیم میں دستیاب ہیں)۔

مسئلہ خود کو polkit_system_bus_name_get_creds_sync() فنکشن میں ظاہر کرتا ہے، جو استحقاق کی بلندی کی درخواست کرنے والے عمل کے شناخت کنندگان (uid اور pid) حاصل کرتا ہے۔ DBus میں ایک منفرد نام تفویض کر کے پولکیٹ کے ذریعے ایک عمل کی شناخت کی جاتی ہے، جسے پھر استحقاق کی تصدیق کے لیے استعمال کیا جاتا ہے۔ اگر کوئی عمل dbus-daemon سے polkit_system_bus_name_get_creds_sync ہینڈلر شروع ہونے سے پہلے منقطع ہو جاتا ہے، تو ہینڈلر کو منفرد نام کے بجائے ایک ایرر کوڈ موصول ہوتا ہے۔

کمزوری اس حقیقت کی وجہ سے ہے کہ واپس کیے گئے ایرر کوڈ پر صحیح طریقے سے کارروائی نہیں کی گئی ہے اور polkit_system_bus_name_get_creds_sync() فنکشن FALSE کی بجائے TRUE لوٹاتا ہے، باوجود اس کے کہ اس عمل کو uid/pid سے مماثل نہیں کیا جا سکتا اور اس عمل کے لیے درخواست کی گئی مراعات کی تصدیق نہیں کی جا سکتی۔ کوڈ جس سے polkit_system_bus_name_get_creds_sync() فنکشن کو بلایا گیا تھا یہ فرض کرتا ہے کہ چیک کامیاب تھا اور استحقاق بڑھانے کی درخواست کسی غیر مراعات یافتہ صارف کی طرف سے نہیں بلکہ روٹ سے آئی ہے، جس سے اسناد کی اضافی تصدیق اور تصدیق کے بغیر مراعات یافتہ کارروائیاں کرنا ممکن ہو جاتا ہے۔

ماخذ: opennet.ru

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