swhkd میں کمزوریاں، Wayland کے لیے ایک شارٹ کٹ مینیجر

عارضی فائلوں، کمانڈ لائن پیرامیٹرز اور یونکس ساکٹ کے ساتھ غلط کام کی وجہ سے swhkd (Simple Wayland HotKey Daemon) میں کمزوریوں کی ایک سیریز کی نشاندہی کی گئی ہے۔ یہ پروگرام Rust میں لکھا گیا ہے اور Wayland پروٹوکول (X11 پر مبنی ماحول میں استعمال ہونے والے sxhkd عمل کا ایک کنفیگریشن فائل سے مطابقت رکھنے والا اینالاگ) کی بنیاد پر ماحول میں ہاٹکی دبانے کو ہینڈل کرتا ہے۔

پیکیج میں ایک غیر مراعات یافتہ swhks عمل شامل ہے جو ہاٹکی ایکشنز کرتا ہے، اور ایک بیک گراؤنڈ swhkd عمل ہے جو روٹ کے طور پر چلتا ہے اور یو ان پٹ API لیول پر ان پٹ ڈیوائسز کے ساتھ تعامل کرتا ہے۔ یونکس ساکٹ کا استعمال swhks اور swhkd کے درمیان تعامل کو منظم کرنے کے لیے کیا جاتا ہے۔ پولکیٹ کے قوانین کا استعمال کرتے ہوئے، کوئی بھی مقامی صارف /usr/bin/swhkd عمل کو روٹ کے طور پر چلا سکتا ہے اور اس میں صوابدیدی پیرامیٹرز پاس کر سکتا ہے۔

شناخت شدہ خطرات:

  • CVE-2022-27815 – ایک پروسیس پی آئی ڈی کو ایک فائل میں محفوظ کرنا جس کا نام متوقع ہے اور اس ڈائرکٹری میں جو دوسرے صارفین (/tmp/swhkd.pid) کے ذریعہ لکھنے کے قابل ہو۔ کوئی بھی صارف /tmp/swhkd.pid فائل بنا سکتا ہے اور اس میں موجودہ عمل کی pid ڈال سکتا ہے، جس سے swhkd شروع نہیں ہو سکے گا۔ اگر /tmp میں علامتی لنکس بنانے کے خلاف کوئی تحفظ نہیں ہے تو، کمزوری کا استعمال کسی بھی سسٹم ڈائرکٹری میں فائلوں کو بنانے یا اوور رائٹ کرنے کے لیے کیا جا سکتا ہے (PID فائل میں لکھا جاتا ہے) یا سسٹم پر موجود کسی فائل کے مواد کا تعین کرنے کے لیے (swhkd پرنٹ کرتا ہے۔ پی آئی ڈی فائل کے پورے مواد کو stdout تک)۔ یہ قابل ذکر ہے کہ جاری کردہ فکس میں PID فائل کو /run ڈائریکٹری میں نہیں بلکہ /etc ڈائریکٹری (/etc/swhkd/runtime/swhkd_{uid}.pid) میں منتقل کیا گیا تھا، جہاں اس کا تعلق بھی نہیں ہے۔
  • CVE-2022-27814 - کنفیگریشن فائل کی وضاحت کے لیے استعمال ہونے والے "-c" کمانڈ لائن آپشن کو جوڑ کر، سسٹم پر کسی بھی فائل کی موجودگی کا تعین کرنا ممکن ہے۔ مثال کے طور پر، /root/.somefile کو چیک کرنے کے لیے آپ "pkexec /usr/bin/swhkd -d -c /root/.somefile" چلا سکتے ہیں اور اگر فائل غائب ہے، تو غلطی "/root/.somefile موجود نہیں ہے۔ " دکھایا جائے گا. جیسا کہ پہلی کمزوری کے معاملے میں، مسئلہ کو حل کرنا حیران کن ہے - مسئلہ کو ٹھیک کرنا اس حقیقت پر ابلتا ہے کہ بیرونی افادیت "بلی" ('Command::new("/bin/cat")).arg(path) اب کنفیگریشن فائل کو پڑھنے کے لیے لانچ کیا گیا ہے۔ output()')۔
  • CVE-2022-27819 - مسئلہ "-c" آپشن کے استعمال سے بھی متعلق ہے، جس کی وجہ سے فائل کے سائز اور قسم کو چیک کیے بغیر پوری کنفیگریشن فائل لوڈ اور پارس ہو جاتی ہے۔ مثال کے طور پر، مفت میموری ختم ہونے اور جعلی I/O بنا کر سروس سے انکار کا سبب بننے کے لیے، آپ اسٹارٹ اپ پر بلاک ڈیوائس کی وضاحت کر سکتے ہیں ("pkexec /usr/bin/swhkd -d -c /dev/sda") یا ایک کریکٹر ڈیوائس جو ڈیٹا کا لامحدود سلسلہ پیدا کرتا ہے۔ فائل کو کھولنے سے پہلے مراعات کو دوبارہ ترتیب دے کر مسئلہ حل کیا گیا تھا، لیکن حل مکمل نہیں ہوا، کیونکہ صرف یوزر آئی ڈی (یو آئی ڈی) ری سیٹ ہے، لیکن گروپ آئی ڈی (جی آئی ڈی) وہی رہتی ہے۔
  • CVE-2022-27818 - ایک یونکس ساکٹ /tmp/swhkd.sock فائل کا استعمال کرتے ہوئے بنایا گیا ہے جو لکھنے کے قابل ڈائرکٹری میں بنائی گئی ہے، جو پہلے خطرے کی طرح اسی طرح کے مسائل کا باعث بنتی ہے (کوئی بھی صارف /tmp/swhkd.sock بنا سکتا ہے اور پیدا یا روک سکتا ہے۔ کی پریس ایونٹس)۔
  • CVE-2022-27817 - تمام آلات سے اور تمام سیشنز میں ان پٹ ایونٹس کو قبول کیا جاتا ہے، یعنی دوسرے Wayland سیشن سے یا کنسول سے صارف ایونٹس کو روک سکتا ہے جب ہاٹکیز دوسرے صارفین کے ذریعے دبائی جاتی ہے۔
  • CVE-2022-27816 swhks عمل، swhkd کی طرح، قابل تحریر /tmp ڈائریکٹری میں PID فائل /tmp/swhks.pid استعمال کرتا ہے۔ مسئلہ پہلی کمزوری کی طرح ہے، لیکن اتنا خطرناک نہیں ہے کیونکہ swhks ایک غیر مراعات یافتہ صارف کے تحت چل رہا ہے۔

ماخذ: opennet.ru

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