Rust repository crates.io میں نقصان دہ پیکج rustdecimal کا پتہ چلا

رسٹ لینگویج کے ڈویلپرز نے خبردار کیا ہے کہ crates.io ریپوزٹری میں نقصان دہ کوڈ پر مشتمل ایک rustdecimal پیکیج کی نشاندہی کی گئی ہے۔ پیکج جائز rust_decimal پیکیج پر مبنی تھا اور اسے نام میں مماثلت کا استعمال کرتے ہوئے اس امید کے ساتھ تقسیم کیا گیا تھا کہ صارف فہرست میں سے ماڈیول تلاش کرتے یا منتخب کرتے وقت انڈر سکور کی عدم موجودگی کو محسوس نہیں کرے گا۔

یہ بات قابل ذکر ہے کہ یہ حکمت عملی کامیاب ثابت ہوئی اور ڈاؤن لوڈز کی تعداد کے لحاظ سے فرضی پیکیج اصل سے تھوڑا پیچھے تھا (111 ہزار 1.23.1 ہزار ڈاؤن لوڈز rustdecimal 113 اور 1.23.1 ہزار اصل rust_decimal 25) . ایک ہی وقت میں، ڈاؤن لوڈز کی اکثریت ایک بے ضرر کلون کی تھی جس میں بدنیتی پر مبنی کوڈ نہیں تھا۔ بدنیتی پر مبنی تبدیلیاں 1.23.5 مارچ کو ورژن rustdecimal 500 میں شامل کی گئی تھیں، جسے مسئلہ کی نشاندہی اور پیکج کو بلاک کرنے سے پہلے تقریباً XNUMX بار ڈاؤن لوڈ کیا گیا تھا (یہ خیال کیا جاتا ہے کہ بدنیتی پر مبنی ورژن کے زیادہ تر ڈاؤن لوڈ بوٹس کے ذریعے کیے گئے تھے) اور ذخیرہ میں موجود دوسرے پیکجوں پر انحصار کے طور پر استعمال نہیں کیا گیا تھا (یہ ممکن ہے کہ بدنیتی پر مبنی پیکیج اختتامی ایپلی کیشنز پر انحصار تھا)۔

بدنیتی پر مبنی تبدیلیوں میں ایک نیا فنکشن شامل کرنا شامل تھا، Decimal::new، جس کے نفاذ میں بیرونی سرور سے ڈاؤن لوڈ کرنے اور ایک قابل عمل فائل کو لانچ کرنے کے لیے مبہم کوڈ شامل تھا۔ فنکشن کو کال کرتے وقت، ماحولیاتی متغیر GITLAB_CI کو چیک کیا گیا، اور اگر سیٹ کیا گیا تو، فائل /tmp/git-updater.bin کو بیرونی سرور سے ڈاؤن لوڈ کیا گیا۔ ڈاؤن لوڈ کے قابل نقصان دہ ہینڈلر لینکس اور میک او ایس پر کام کی حمایت کرتا ہے (ونڈوز پلیٹ فارم تعاون یافتہ نہیں تھا)۔

یہ فرض کیا گیا تھا کہ مسلسل انضمام کے نظام پر جانچ کے دوران بدنیتی پر مبنی فنکشن کو انجام دیا جائے گا۔ rustdecimal کو مسدود کرنے کے بعد، crates.io منتظمین نے اسی طرح کی بدنیتی پر مبنی داخلوں کے لیے ریپوزٹری کے مواد کا تجزیہ کیا، لیکن دوسرے پیکجوں میں مسائل کی نشاندہی نہیں کی۔ GitLab پلیٹ فارم پر مبنی مسلسل انٹیگریشن سسٹم کے مالکان کو مشورہ دیا جاتا ہے کہ وہ اس بات کو یقینی بنائیں کہ ان کے سرورز پر ٹیسٹ کیے گئے پروجیکٹس اپنی انحصار میں rustdecimal پیکیج کا استعمال نہ کریں۔

ماخذ: opennet.ru

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