eBPF میں کمزوریاں جو سپیکٹر 4 کے حملے کے تحفظ کو نظرانداز کرنے کی اجازت دیتی ہیں۔

لینکس کرنل میں دو کمزوریوں کی نشاندہی کی گئی ہے جو eBPF سب سسٹم کو سپیکٹر وی 4 اٹیک (SSB، Speculative Store بائی پاس) کے خلاف تحفظ کو نظرانداز کرنے کے لیے استعمال کرنے کی اجازت دیتے ہیں۔ ایک غیر مراعات یافتہ BPF پروگرام کا استعمال کرتے ہوئے، حملہ آور بعض کارروائیوں کے قیاس آرائی پر عمل درآمد کے لیے حالات پیدا کر سکتا ہے اور کرنل میموری کے صوابدیدی علاقوں کے مواد کا تعین کر سکتا ہے۔ دانا میں eBPF سب سسٹمز کے مینٹینرز کو ایک پروٹوٹائپ ایکسپلائٹ تک رسائی حاصل ہوئی جو عملی طور پر حملے کرنے کی صلاحیت کو ظاہر کرتی ہے۔ مسائل کو پیچ (1, 2) کی شکل میں طے کیا گیا ہے، جو اگلے لینکس کرنل اپ ڈیٹ میں شامل کیا جائے گا۔ ڈسٹری بیوشن کٹس میں اپ ڈیٹس ابھی تک نہیں بنائے گئے ہیں (Debian, RHEL, SUSE, Arch, Fedora, Ubuntu)۔

سپیکٹر 4 حملے کا طریقہ بالواسطہ ایڈریسنگ کا استعمال کرتے ہوئے متبادل لکھنے اور پڑھنے کی کارروائیوں پر کارروائی کرتے وقت کارروائیوں کے قیاس آرائی کے نتائج کو ضائع کرنے کے بعد پروسیسر کیش میں ذخیرہ شدہ ڈیٹا کو بحال کرنے پر مبنی ہے۔ جب پڑھنے کا عمل رائٹ آپریشن کے بعد ہوتا ہے (مثال کے طور پر، mov [rbx + rcx], 0x0; mov rax, [rdx + rsi])، اسی طرح کے آپریشن کیے جانے کی وجہ سے ریڈ ایڈریس کا آفسیٹ پہلے سے معلوم ہو سکتا ہے (پڑھنے کے آپریشنز بہت زیادہ کثرت سے انجام دیا جاتا ہے اور کیشے سے پڑھا جاسکتا ہے) اور پروسیسر قیاس آرائی کے ساتھ لکھنے سے پہلے پڑھنے کو انجام دے سکتا ہے بغیر تحریر کے انڈائرکشن آفسیٹ کا حساب کیے جانے کا انتظار کیے بغیر۔

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

پہلا خطرہ (CVE-2021-35477) BPF پروگرام کی تصدیق کے طریقہ کار میں خرابی کی وجہ سے ہے۔ سپیکٹر 4 کے حملے سے بچانے کے لیے، تصدیق کنندہ ممکنہ طور پر دشواری والے اسٹورز کے بعد میموری میں ایک اضافی ہدایات شامل کرتا ہے جو پچھلے آپریشن کے نشانات کو ہٹانے کے لیے ایک صفر قدر ذخیرہ کرتا ہے۔ رائٹ نال آپریشن کے بہت تیز ہونے اور قیاس آرائی پر عملدرآمد کو روکنے کی توقع تھی کیونکہ یہ صرف BPF اسٹیک فریم کے پوائنٹر پر منحصر ہے۔ لیکن درحقیقت، ایسے حالات پیدا کرنا ممکن ہوا جس کے تحت قیاس آرائی پر عمل درآمد کی طرف جانے والی ہدایت کو اسٹور آپریشن سے پہلے عمل میں لایا جا سکے۔

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

ماخذ: opennet.ru

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