Կախված PureScript տեղադրիչով npm փաթեթից
Խնդիրը հայտնաբերել է փաթեթի նոր սպասարկողներից մեկը, ում պահպանման իրավունքները փոխանցվել են մաքուր npm փաթեթի սկզբնական հեղինակի հետ բազմաթիվ տարաձայնություններից և տհաճ քննարկումներից հետո։ Նոր սպասարկողները պատասխանատու են PureScript կոմպիլյատորի համար և պնդեցին, որ NPM փաթեթը և դրա տեղադրողը պետք է պահպանվեն նույն սպասարկողների կողմից, այլ ոչ թե դրսի կողմից: PureScript տեղադրողի հետ npm փաթեթի հեղինակը երկար ժամանակ համաձայն չէր, բայց հետո զիջեց և մուտքը փոխանցեց պահեստարան։ Սակայն որոշ կախվածություններ մնացին նրա վերահսկողության տակ։
Անցյալ շաբաթ թողարկվեց PureScript 0.13.2 կոմպիլյատորը և
Նոր սպասարկողները պատրաստել են npm փաթեթի համապատասխան թարմացում տեղադրողով, որի կախվածության մեջ հայտնաբերվել է վնասակար կոդ։ PureScript տեղադրողի հետ npm փաթեթի հեղինակը, ով հեռացվել է սպասարկողի իր պաշտոնից, ասել է, որ իր հաշիվը վտանգվել է անհայտ հարձակվողների կողմից: Այնուամենայնիվ, իր ներկայիս տեսքով, վնասակար կոդի գործողությունները սահմանափակվում էին փաթեթի տեղադրման սաբոտաժով, որը նոր սպասարկողների առաջին տարբերակն էր: Վնասակար գործողությունները սխալի հաղորդագրությամբ հանգույց էին, երբ փորձում էին փաթեթ տեղադրել «npm i -g մաքուր գրություն» հրամանով, առանց որևէ ակնհայտ վնասակար գործողություն կատարելու:
Հայտնաբերվել է երկու հարձակում. Purescript npm փաթեթի նոր տարբերակի պաշտոնական թողարկումից մի քանի ժամ անց ինչ-որ մեկը ստեղծեց load-from-cwd-or-npm 3.0.2 կախվածության նոր տարբերակը, որի փոփոխությունները հանգեցրին փոխարենը loadFromCwdOrNpm()-ին կանչելու: տեղադրման համար անհրաժեշտ երկուական ֆայլերի ցանկի վերադարձված հոսք
4 օր անց, այն բանից հետո, երբ մշակողները պարզեցին անհաջողությունների աղբյուրը և պատրաստվում էին թողարկել թարմացում՝ load-from-cwd-or-npm-ը կախվածությունից բացառելու համար, հարձակվողները թողարկեցին ևս մեկ թարմացում՝ load-from-cwd-or-npm: 3.0.4, որտեղ վնասակար կոդը հեռացվել է: Այնուամենայնիվ, գրեթե անմիջապես թողարկվեց մեկ այլ կախվածության թարմացում՝ rate-map 1.0.3, որն ավելացրեց ուղղում, որն արգելափակում էր բեռնման համար հետադարձ զանգը: Նրանք. երկու դեպքում էլ load-from-cwd-or-npm-ի և rate-map-ի նոր տարբերակների փոփոխությունները ակնհայտ դիվերսիայի բնույթ էին կրում: Ավելին, վնասակար կոդը ուներ ստուգում, որը անսարք գործողություններ էր առաջացնում միայն նոր սպասարկողներից թողարկում տեղադրելիս և ոչ մի կերպ չէր երևում հին տարբերակները տեղադրելիս:
Մշակողները լուծեցին խնդիրը՝ թողարկելով թարմացում, որում խնդրահարույց կախվածությունները հեռացվեցին։ Որպեսզի PureScript-ի խնդրահարույց տարբերակը տեղադրելուց հետո վտանգված կոդը չտեղավորվի օգտատերերի համակարգերում, խորհուրդ է տրվում ջնջել node_modules դիրեկտորիաների և package-lock.json ֆայլերի բովանդակությունը, այնուհետև սահմանել մաքուր 0.13.2 տարբերակը: ստորին սահմանը.
Source: opennet.ru