Priklausomai nuo npm paketo su PureScript diegimo programa
Problemą atrado vienas iš naujųjų paketo prižiūrėtojų, kuriam priežiūros teisės buvo perleistos po daugybės nesutarimų ir nemalonių diskusijų su pirminiu purescript npm paketo autoriumi. Naujieji prižiūrėtojai yra atsakingi už PureScript kompiliatorių ir reikalavo, kad NPM paketą ir jo diegimo programą prižiūrėtų tie patys prižiūrėtojai, o ne išorinė šalis. Npm paketo autorius su PureScript diegimo programa ilgai nesutiko, bet paskui pasidavė ir perdavė prieigą prie saugyklos. Tačiau kai kurios priklausomybės liko jo kontroliuojamos.
Praėjusią savaitę buvo išleistas PureScript 0.13.2 kompiliatorius ir
nauji prižiūrėtojai parengė atitinkamą npm paketo atnaujinimą su diegimo programa, kurios priklausomybėse buvo nustatytas kenkėjiškas kodas. Npm paketo su „PureScript“ diegimo programa autorius, kuris buvo pašalintas iš prižiūrėtojo pareigų, teigė, kad jo paskyra buvo pažeista nežinomų užpuolikų. Tačiau dabartinėje formoje kenkėjiško kodo veiksmai apsiribojo paketo, kuris buvo pirmoji naujųjų prižiūrėtojų versija, diegimo sabotavimu. Kenkėjiški veiksmai prilygo kilpai su klaidos pranešimu, kai bandoma įdiegti paketą su komanda „npm i -g purescript“, neatliekant jokios akivaizdžios kenkėjiškos veiklos.
Buvo aptikti du išpuoliai. Praėjus kelioms valandoms po oficialaus naujos „purescript npm“ paketo versijos išleidimo, kažkas sukūrė naują „load-from-cwd-or-npm 3.0.2“ priklausomybės versiją, kurios pakeitimai lėmė tai, kad iškvietimas loadFromCwdOrNpm( ) vietoj įdiegimui reikalingų dvejetainių failų sąrašo grąžino srautą
Po 4 dienų, kai kūrėjai išsiaiškino gedimų šaltinį ir ruošėsi išleisti naujinimą, kad iš priklausomybių būtų pašalintas load-from-cwd-or-npm, užpuolikai išleido kitą naujinimą, load-from-cwd-or-npm. 3.0.4, kuriame buvo pašalintas kenkėjiškas kodas. Tačiau beveik iš karto buvo išleistas kitos priklausomybės, greičio žemėlapio 1.0.3, naujinimas, kuris pridėjo pataisą, kuri užblokavo atgalinio skambučio įkėlimą. Tie. abiem atvejais naujose load-from-cwd-or-npm ir rate-map versijose pakeitimai buvo akivaizdaus sabotažo pobūdžio. Be to, kenkėjiškas kodas turėjo patikrinimą, kuris suaktyvino klaidingus veiksmus tik diegiant leidimą iš naujų prižiūrėtojų ir jokiu būdu nepasirodė diegiant senesnes versijas.
Kūrėjai išsprendė problemą išleisdami naujinimą, kuriame buvo pašalintos probleminės priklausomybės. Siekiant išvengti, kad pažeistas kodas nenusėstų vartotojų sistemose po bandymo įdiegti probleminę PureScript versiją, rekomenduojama ištrinti node_modules katalogų ir pack-lock.json failų turinį, o tada nustatyti purescript 0.13.2 versiją kaip apatinė riba.
Šaltinis: opennet.ru