Ovisno o npm paketu s PureScript instalaterom
Problem je otkrio jedan od novih održavatelja paketa, na koga su preneta prava održavanja nakon mnogih nesuglasica i neugodnih razgovora sa originalnim autorom purescript npm paketa. Novi održavaoci su odgovorni za PureScript kompajler i insistirali su da NPM paket i njegov instalater treba da održavaju isti održavaoci, a ne spoljna strana. Autor npm paketa sa PureScript instalaterom se dugo nije slagao, ali je onda popustio i prenio pristup spremištu. Međutim, neke zavisnosti su ostale pod njegovom kontrolom.
Prošle sedmice je objavljen kompajler PureScript 0.13.2 i
novi održavaoci su pripremili odgovarajuće ažuriranje npm paketa sa instalaterom, u čijoj zavisnosti je identifikovan zlonamerni kod. Autor npm paketa sa instalaterom PureScript, koji je uklonjen sa svoje pozicije održavaoca, rekao je da su njegov nalog kompromitovali nepoznati napadači. Međutim, u svom sadašnjem obliku, radnje zlonamjernog koda bile su ograničene na sabotiranje instalacije paketa, što je bila prva verzija novih održavatelja. Zlonamjerne radnje su dovele do petlje s porukom o grešci kada se pokušava instalirati paket sa naredbom “npm i -g purescript” bez izvođenja bilo kakve očigledne zlonamjerne aktivnosti.
Otkrivena su dva napada. Nekoliko sati nakon službenog objavljivanja nove verzije purescript npm paketa, neko je kreirao novu verziju ovisnosti load-from-cwd-or-npm 3.0.2, čije promjene su dovele do poziva loadFromCwdOrNpm() umjesto toga sa liste potrebnih za instalaciju binarnih datoteka vratio stream
4 dana kasnije, nakon što su programeri otkrili izvor grešaka i pripremali se za izdavanje ažuriranja kako bi isključili load-from-cwd-or-npm iz zavisnosti, napadači su objavili još jedno ažuriranje, load-from-cwd-or-npm 3.0.4, u kojoj je zlonamjerni kod uklonjen. Međutim, skoro odmah, objavljeno je ažuriranje za drugu zavisnost, mapu brzine 1.0.3, koja je dodala ispravku koja je blokirala učitavanje povratnog poziva. One. u oba slučaja, promjene u novim verzijama load-from-cwd-or-npm i rate-map bile su u prirodi očigledne sabotaže. Štaviše, zlonamjerni kod je imao provjeru koja je pokretala pogrešne radnje samo prilikom instaliranja izdanja od novih održavatelja i nije se pojavljivala ni na koji način prilikom instaliranja starijih verzija.
Programeri su riješili problem tako što su objavili ažuriranje u kojem su problematične ovisnosti uklonjene. Kako bi se spriječilo da se kompromitirani kod naslanja na korisničke sisteme nakon pokušaja instaliranja problematične verzije PureScript-a, preporučuje se da izbrišete sadržaj direktorija node_modules i datoteke package-lock.json, a zatim postavite purescript verziju 0.13.2 kao donja granica.
izvor: opennet.ru