U zavisnostima za npm paket s instalaterom PureScript maliciozni kod koji se javlja prilikom pokušaja instalacije paketa . Maliciozni kod je ugrađen kroz zavisnosti i . Zanimljivo je da pakete s ovim zavisnostima održava izvorni autor npm paketa s instalaterom PureScript, koji je do nedavno bio zadužen za održavanje ovog npm paketa, ali je paket prešao na druge održavaoce prije otprilike mjesec dana.
Problem je otkrio jedan od novih održavaoca paketa, kojem su prava na održavanje predata nakon mnogih nesuglasica i neugodnih rasprava s izvorom autora npm paketa purescript. Novi održavaoci su odgovorni za kompajler PureScript i insistirali su da npm paket s instalaterom treba održavati isti tim, a ne strana lica. Autor npm paketa s instalaterom PureScript se dugo opirao, ali je na kraju popustio i prebacio pristup repozitoriju. Ipak, neki od zavisnosti su ostali pod njegovom kontrolom.
Prošle sedmice je objavljen izlaz kompajlera PureScript 0.13.2 i
novi održavaoci pripremili su odgovarajuće ažuriranje npm paketa s instalaterom, u zavisnostima kojeg je otkriven maliciozni kod. Smijenjeni autor npm paketa s instalaterom PureScript izjavio je da je njegov račun bio kompromitovan od strane nepoznatih napadača. Ipak, u trenutnom obliku, aktivnost malicioznog koda bila je ograničena samo na sabotiranje instalacije paketa, koji je postao prva verzija novih održavaoca. Maliciozne radnje su se svodile na petlju s ispisom greške prilikom pokušaja instalacije paketa naredbom „npm i -g purescript“ bez izvršavanja otvorene maliciozne aktivnosti.
Otkrivene su dvije napasti. Nekoliko sati nakon službenog izlaska nove verzije npm paketa purescript, neko je stvorio novu verziju zavisnosti load-from-cwd-or-npm 3.0.2, čije su izmjene dovele do toga da poziv loadFromCwdOrNpm() umjesto liste neophodnih binarnih datoteka za instalaciju vraća tok , koji odražava ulazne zahtjeve kao izlazne vrijednosti.
Nakon 4 dana, nakon što su programeri istražili izvor grešaka i pripremili se za izdavanje ažuriranja za isključenje load-from-cwd-or-npm iz zavisnosti, zlonamerni akteri su objavili još jedno ažuriranje load-from-cwd-or-npm 3.0.4, u kojem je zlonamerni kod uklonjen. Međutim, skoro odmah je objavljeno ažuriranje druge zavisnosti rate-map 1.0.3, u kojoj je dodata ispravka koja blokira callback poziv za učitavanje. Drugim rečima, u oba slučaja su izmene u novim verzijama load-from-cwd-or-npm i rate-map imale karakter otvorene diverzije. Štaviše, u zlonamernom kodu je postojala provera koja je aktivirala greške samo pri instalaciji izdanja od novih održavača i nikako se nije manifestovala pri instalaciji starih verzija.
Programeri su rešili problem izdavanjem ažuriranja u kojem su problematične zavisnosti uklonjene. Da bi se isključilo zadržavanje kompromitovanog koda na sistemima korisnika nakon pokušaja instalacije problematične verzije, preporučuje se da se obrišu sadržaji foldera node_modules i datoteka package-lock.json, nakon čega treba postaviti kao donju granicu verziju purescript 0.13.2.
Izvor: opennet.ru
