Afhængigt af npm-pakken med PureScript-installationsprogrammet
Problemet blev opdaget af en af de nye vedligeholdere af pakken, til hvem vedligeholdelsesrettighederne blev overført efter mange uenigheder og ubehagelige diskussioner med den oprindelige forfatter til den purescript npm-pakke. De nye vedligeholdere er ansvarlige for PureScript-kompileren og insisterede på, at NPM-pakken og dens installatør skulle vedligeholdes af de samme vedligeholdere og ikke af en ekstern part. Forfatteren af npm-pakken med PureScript-installationsprogrammet var ikke enig i lang tid, men gav derefter efter og overførte adgang til depotet. Nogle afhængigheder forblev dog under hans kontrol.
I sidste uge blev PureScript 0.13.2-kompileren frigivet og
de nye vedligeholdere forberedte en tilsvarende opdatering af npm-pakken med et installationsprogram, i hvis afhængighed skadelig kode blev identificeret. Forfatteren af npm-pakken med PureScript-installationsprogrammet, som blev fjernet fra sin post som vedligeholder, sagde, at hans konto blev kompromitteret af ukendte angribere. Men i sin nuværende form var den ondsindede kodes handlinger begrænset til at sabotere installationen af pakken, som var den første version fra de nye vedligeholdere. Ondsindede handlinger svarede til en løkke med en fejlmeddelelse, når du forsøgte at installere en pakke med kommandoen "npm i -g purescript" uden at udføre nogen åbenlys ondsindet aktivitet.
To angreb blev opdaget. Et par timer efter den officielle udgivelse af den nye version af purescript npm-pakken, oprettede nogen en ny version af afhængigheden load-from-cwd-or-npm 3.0.2, hvor ændringer førte til opkaldet til loadFromCwdOrNpm() i stedet for af listen over nødvendige til installation binære filer returnerede stream
4 dage senere, efter at udviklerne fandt ud af kilden til fejlene og forberedte sig på at frigive en opdatering for at udelukke load-from-cwd-or-npm fra afhængigheder, udgav angriberne en anden opdatering, load-from-cwd-or-npm 3.0.4, hvor den skadelige kode blev fjernet. Men næsten øjeblikkeligt blev der frigivet en opdatering til en anden afhængighed, rate-map 1.0.3, som tilføjede en rettelse til at blokere download-tilbagekald. De der. i begge tilfælde havde ændringerne i de nye versioner af load-from-cwd-or-npm og rate-map karakter af åbenlys sabotage. Desuden havde den ondsindede kode et tjek, der kun udløste fejlbehæftede handlinger ved installation af en udgivelse fra nye vedligeholdere, og som ikke dukkede op på nogen måde ved installation af ældre versioner.
Udviklerne løste problemet ved at frigive en opdatering, hvor de problematiske afhængigheder blev fjernet. For at forhindre kompromitteret kode i at sætte sig på brugersystemer efter forsøg på at installere en problematisk version af PureScript, anbefales det at slette indholdet af node_modules-bibliotekerne og package-lock.json-filerne og derefter indstille purescript version 0.13.2 som nedre grænse.
Kilde: opennet.ru