Node-ipc NPM փաթեթում հայտնաբերվել է չարամիտ փոփոխություն (CVE-2022-23812), որն ունի 25% հավանականություն գրելու իրավունք ունեցող բոլոր ֆայլերի պարունակությունը փոխարինելու «❤️» նշանով: Վնասակար կոդն ակտիվանում է միայն այն դեպքում, երբ այն գործարկվում է Ռուսաստանի կամ Բելառուսի IP հասցեներ ունեցող համակարգերի վրա: Node-ipc փաթեթը շաբաթական ներբեռնվում է մոտ մեկ միլիոն անգամ և օգտագործվում է որպես կախվածություն 354 փաթեթների համար, ներառյալ vue-cli-ն: Բոլոր նախագծերը, որոնք ունեն node-ipc որպես կախվածություն, նույնպես տուժում են այս խնդրից:
Վնասակար կոդը տեղադրվել է NPM պահոցում՝ որպես node-ipc 10.1.1 և 10.1.2 թողարկումների մաս: Վնասակար փոփոխությունը տեղադրվել է նախագծի Git պահոցում՝ նախագծի հեղինակի անունից, 11 օր առաջ: Երկիրը որոշվել է կոդում՝ api.ipgeolocation.io ծառայությանը մուտք գործելով: Վնասակար ներդիրից ipgeolocation.io API-ին մուտք գործելու համար օգտագործված բանալին այժմ չեղյալ է հայտարարվել:
Կասկածելի կոդի ի հայտ գալու մասին նախազգուշացման մեկնաբանություններում նախագծի հեղինակը նշել է, որ փոփոխությունը կազմում է աշխատասեղանին ֆայլի ավելացում, որը ցույց է տալիս խաղաղության կոչ անող հաղորդագրություն: Փաստորեն, կոդը իրականացրել է ռեկուրսիվ որոնում դիրեկտորիաներում՝ փորձելով վերագրել հանդիպած բոլոր ֆայլերը:
Ավելի ուշ, NPM պահոցում տեղադրվեցին node-ipc 11.0.0 և 11.1.0 տարբերակները, որոնք ներկառուցված վնասակար կոդի փոխարեն ավելացրին արտաքին կախվածություն՝ «peacenotwar», որը վերահսկվում էր նույն հեղինակի կողմից և առաջարկվում էր ներառման համար բողոքի ակցիային միանալ ցանկացող փաթեթների պահպանողներին: Պնդվում է, որ peacenotwar փաթեթը միայն խաղաղության մասին հաղորդագրություն է արտածում, բայց հաշվի առնելով հեղինակի կողմից արդեն ձեռնարկված գործողությունները, փաթեթի հետագա բովանդակությունը անկանխատեսելի է, և ապակառուցողական փոփոխությունների բացակայությունը երաշխավորված չէ:
Միաժամանակ թողարկվել է կայուն node-ipc 9.2.2 ճյուղի թարմացում, որն օգտագործվում է Vue.js նախագծի կողմից։ Նոր թողարկումում, ի լրումն խաղաղության, կախվածության ցանկում ավելացվել է նաև գույների փաթեթը, որի հեղինակը հունվարին կործանարար փոփոխություններ է ներառել կոդի մեջ։ Նոր թողարկման աղբյուրի լիցենզիան MIT-ից փոխվել է DBAD-ի:
Քանի որ հեղինակի հետագա գործողությունները անկանխատեսելի են, node-ipc օգտատերերին խորհուրդ է տրվում իրենց կախվածությունները արգելափակել 9.2.1 տարբերակով: Խորհուրդ է տրվում նաև արգելափակել տարբերակները նույն հեղինակի կողմից մշակված այլ ծրագրերի համար, որը պահպանել է 41 փաթեթ: Նույն հեղինակի կողմից պահպանվող որոշ փաթեթներ (js-queue, easy-stack, js-message, event-pubsub) ունեն շաբաթական մոտ մեկ միլիոն ներբեռնում:
Լրացում. Այլ փորձեր՝ տարբեր բաց փաթեթներին գործողություններ ավելացնելու, որոնք կապված չեն ծրագրերի անմիջական ֆունկցիոնալության հետ և կապված են IP հասցեներ կամ համակարգի տեղայնացումը: Այս փոփոխություններից ամենաանվնասները (es5-ext, rete, PHP composer, PHPUnit, Redis Desktop Manager, Awesome Prometheus Alerts, verdaccio, filestash) հանգում են Ռուսաստանի և Բելառուսի օգտատերերի համար պատերազմը դադարեցնելու կոչերի ցուցադրմանը: Այնուամենայնիվ, հայտնաբերվել են նաև ավելի վտանգավոր դրսևորումներ, ինչպիսիք են AWS Terraform մոդուլներին ավելացված փրկագին պահանջող ծրագրերը և լիցենզիային ավելացված քաղաքական սահմանափակումները: ESP8266 և ESP32 սարքերի համար նախատեսված Tasmota ներկառուցված ծրագիրը պարունակում է սարքի աշխատանքը արգելափակող հետին դուռ: Ենթադրվում է, որ նման գործունեությունը լրջորեն խաթարում է բաց կոդով ծրագրային ապահովման նկատմամբ վստահությունը:
Source: opennet.ru
