نیٹ ورک ڈسپیچر میں کمزوریاں جو روٹ تک رسائی کی اجازت دیتی ہیں۔

Microsoft کے سیکورٹی محققین نے نیٹ ورک ڈسپیچر سروس میں دو کمزوریوں (CVE-2022-29799, CVE-2022-29800) کی نشاندہی کی ہے، جس کا کوڈ نام Nimbuspwn ہے، جو ایک غیر مراعات یافتہ صارف کو روٹ مراعات کے ساتھ صوابدیدی احکامات پر عمل درآمد کرنے کی اجازت دیتی ہے۔ مسئلہ نیٹ ورک ڈسپیچر 2.2 کے اجراء میں طے ہوا ہے۔ ابھی تک تقسیم کے ذریعہ اپ ڈیٹس کی اشاعت کے بارے میں کوئی معلومات نہیں ہے (Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux)۔

نیٹ ورک ڈی ڈسپیچر بہت سے لینکس ڈسٹری بیوشنز میں استعمال ہوتا ہے، بشمول اوبنٹو، جو نیٹ ورک کے پیرامیٹرز کو کنفیگر کرنے کے لیے بیک گراؤنڈ پروسیس systemd-networkd کا استعمال کرتا ہے، اور NetworkManager-dispatcher کی طرح کام کرتا ہے، یعنی جب نیٹ ورک کنکشن کی حالت بدل جاتی ہے تو اسکرپٹ شروع کرنے میں مصروف ہوتا ہے، مثال کے طور پر، مرکزی نیٹ ورک کنکشن قائم ہونے کے بعد اسے VPN لانچ کرنے کے لیے استعمال کیا جاتا ہے۔

نیٹ ورک ڈسپیچر سے وابستہ پس منظر کا عمل روٹ کے طور پر چلتا ہے اور D-Bus کے ذریعے ایونٹ کے سگنل وصول کرتا ہے۔ نیٹ ورک کنکشن کی حالت میں تبدیلیوں سے متعلق واقعات کے بارے میں معلومات systemd-networkd سروس کے ذریعے بھیجی جاتی ہے۔ مسئلہ یہ ہے کہ غیر مراعات یافتہ صارفین ایک غیر موجود ریاستی واقعہ پیدا کر سکتے ہیں اور اپنے اسکرپٹ کو روٹ کے طور پر عمل میں لانے کے لیے متحرک کر سکتے ہیں۔

Systemd-networkd کو صرف /etc/networkd-dispatcher ڈائرکٹری میں موجود سسٹم ہینڈلر اسکرپٹس کو چلانے کے لیے ڈیزائن کیا گیا ہے اور صارف کی تبدیلی کے لیے قابل رسائی نہیں ہے، لیکن فائل پاتھ پروسیسنگ کوڈ میں ایک کمزوری (CVE-2022-29799) کی وجہ سے، وہاں موجود تھا۔ حد سے باہر کی بیس ڈائرکٹری کا امکان اور صوابدیدی اسکرپٹ شروع کرنے کا امکان۔ خاص طور پر، اسکرپٹ کے لیے فائل کا راستہ بناتے وقت، D-Bus کے ذریعے منتقل ہونے والی OperationalState اور AdministrativeState ویلیوز کا استعمال کیا جاتا تھا، جس میں خصوصی حروف کو صاف نہیں کیا جاتا تھا۔ حملہ آور اپنی ریاست بنا سکتا ہے، جس کا نام "../" کے حروف پر مشتمل ہوتا ہے اور نیٹ ورک ڈسپیچر کال کو دوسری ڈائرکٹری میں بھیج سکتا ہے۔

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

آپریٹنگ تکنیک:

  • ایک ڈائرکٹری "/tmp/nimbuspwn" اور ایک علامتی لنک "/tmp/nimbuspwn/poc.d" بنائی گئی ہے جو ڈائرکٹری "/sbin" کی طرف اشارہ کرتی ہے، جو روٹ کی ملکیت والی قابل عمل فائلوں کو چیک کرنے کے لیے استعمال ہوتی ہے۔
  • "/sbin" سے قابل عمل فائلوں کے لیے، اسی نام کی فائلیں "/tmp/nimbuspwn" ڈائریکٹری میں بنائی جاتی ہیں، مثال کے طور پر، فائل "/sbin/vgs" کے لیے ایک قابل عمل فائل "/tmp/nimbuspwn/vgs" ہے۔ بنایا گیا، ایک غیر مراعات یافتہ صارف کی ملکیت ہے، جس میں وہ کوڈ رکھا جاتا ہے جسے حملہ آور چلانا چاہتا ہے۔
  • D-Bus کے ذریعے نیٹ ورک ڈسپیچر کے عمل کو ایک سگنل بھیجا جاتا ہے جو آپریشنل اسٹیٹ میں "../../../tmp/nimbuspwn/poc" کی قدر کی نشاندہی کرتا ہے۔ نام کی جگہ "org.freedesktop.network1" میں سگنل بھیجنے کے لیے، اس کے ہینڈلرز کو systemd-networkd سے جوڑنے کی صلاحیت استعمال کی گئی، مثال کے طور پر، gpgv یا epmd کے ساتھ ہیرا پھیری کے ذریعے، یا آپ اس حقیقت کا فائدہ اٹھا سکتے ہیں کہ systemd-networkd پہلے سے طے شدہ طور پر نہیں چل رہا ہے (مثال کے طور پر، لینکس منٹ پر)۔
  • سگنل موصول ہونے کے بعد، نیٹ ورک ڈی ڈسپیچر ایگزیکیوٹیبل فائلوں کی ایک فہرست بناتا ہے جو روٹ صارف کی ملکیت ہے اور ڈائرکٹری "/etc/networkd-dispatcher/../../../tmp/nimbuspwn/poc.d" میں دستیاب ہے۔ جو دراصل "/sbin" سے لنک کرتا ہے۔
  • اس وقت جب فائلوں کی فہرست موصول ہوئی ہے، لیکن اسکرپٹ ابھی تک لانچ نہیں ہوا ہے، علامتی لنک کو "/tmp/nimbuspwn/poc.d" سے "/tmp/nimbuspwn" پر ری ڈائریکٹ کیا گیا ہے اور نیٹ ورک ڈسپیچر لانچ کرے گا۔ روٹ رائٹس کے ساتھ حملہ آور کی میزبانی کردہ اسکرپٹ۔

نیٹ ورک ڈسپیچر میں کمزوریاں جو روٹ تک رسائی کی اجازت دیتی ہیں۔


ماخذ: opennet.ru

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