سسٹمڈ سسٹم مینیجر میں
کمزوری پہلے سے آزاد شدہ میموری ایریا تک رسائی کی وجہ سے ہوتی ہے (استعمال کے بعد مفت)، جو اس وقت ہوتی ہے جب DBus پیغامات پر کارروائی کرتے ہوئے Polkit کو متضاد طور پر درخواستوں پر عمل درآمد کیا جاتا ہے۔ کچھ DBus انٹرفیس اشیاء کو مختصر وقت کے لیے ذخیرہ کرنے کے لیے کیشے کا استعمال کرتے ہیں اور جیسے ہی DBus بس دیگر درخواستوں پر کارروائی کرنے کے لیے آزاد ہوتی ہے، کیشے کے اندراجات کو فلش کرتے ہیں۔ اگر ایک DBus طریقہ کار ہینڈلر bus_verify_polkit_async() استعمال کرتا ہے، تو اسے پولکیٹ کارروائی مکمل ہونے کا انتظار کرنا پڑ سکتا ہے۔ پولکٹ کے تیار ہونے کے بعد، ہینڈلر کو دوبارہ بلایا جاتا ہے اور میموری میں پہلے سے تقسیم شدہ ڈیٹا تک رسائی حاصل کرتا ہے۔ اگر Polkit سے درخواست میں بہت زیادہ وقت لگتا ہے، DBus میتھڈ ہینڈلر کو دوسری بار بلانے سے پہلے کیشے میں موجود آئٹمز کو صاف کر دیا جائے گا۔
ان خدمات میں جو کمزوری کے استحصال کی اجازت دیتی ہیں، systemd-machined کو نوٹ کیا جاتا ہے، جو DBus API org.freedesktop.machine1.Image.Clone فراہم کرتا ہے، جس کی وجہ سے کیشے میں ڈیٹا کا عارضی ذخیرہ ہوتا ہے اور Polkit تک غیر مطابقت پذیر رسائی ہوتی ہے۔ انٹرفیس
org.freedesktop.machine1.Image.Clone سسٹم کے تمام غیر مراعات یافتہ صارفین کے لیے دستیاب ہے، جو سسٹمڈ سروسز کو کریش کر سکتا ہے یا ممکنہ طور پر کوڈ کو روٹ کے طور پر عمل میں لانے کا سبب بن سکتا ہے (ایکسپلوٹ پروٹو ٹائپ ابھی تک ظاہر نہیں کیا گیا ہے)۔ ضابطہ جو کمزوری کے استحصال کی اجازت دیتا تھا۔
ماخذ: opennet.ru