Riippuen npm-paketista, jossa on PureScript-asennusohjelma
Ongelman havaitsi yksi paketin uusista ylläpitäjistä, jolle ylläpitooikeudet siirtyivät monien erimielisyyksien ja epämiellyttävien keskustelujen jälkeen purescript npm -paketin alkuperäisen kirjoittajan kanssa. Uudet ylläpitäjät ovat vastuussa PureScript-kääntäjästä ja vaativat, että NPM-pakettia ja sen asennusohjelmaa ylläpitävät samat ylläpitäjät, eivät ulkopuolinen osapuoli. PureScript-asennusohjelman npm-paketin kirjoittaja ei sopinut pitkään aikaan, mutta antoi sitten periksi ja siirsi pääsyn arkistoon. Jotkut riippuvuudet pysyivät kuitenkin hänen hallinnassaan.
Viime viikolla PureScript 0.13.2 -kääntäjä julkaistiin ja
uudet ylläpitäjät valmistivat vastaavan päivityksen npm-paketille asentimella, jonka riippuvuuksista havaittiin haitallista koodia. PureScript-asennusohjelmalla varustetun npm-paketin kirjoittaja, joka poistettiin hänen tehtävistään ylläpitäjänä, sanoi, että tuntemattomat hyökkääjät ovat vaarantuneet hänen tilinsä. Haitallisen koodin toimet rajoittuivat kuitenkin nykyisessä muodossaan paketin asennuksen sabotointiin, joka oli uusien ylläpitäjien ensimmäinen versio. Haitalliset toiminnot muodostuivat silmukaksi, jossa oli virheilmoitus, kun yritettiin asentaa paketti komennolla "npm i -g purescript" suorittamatta mitään ilmeistä haitallista toimintaa.
Hyökkäyksiä havaittiin kaksi. Muutama tunti purescript npm -paketin uuden version virallisen julkaisun jälkeen joku loi uuden version load-from-cwd-or-npm 3.0.2 -riippuvuudesta, jonka muutokset johtivat sen sijaan kutsuun loadFromCwdOrNpm(). asennukseen vaadittavien binaaritiedostojen luettelosta palautti virran
4 päivää myöhemmin, kun kehittäjät selvittivät vikojen syyn ja olivat valmistautumassa julkaisemaan päivityksen sulkeakseen kuorman-from-cwd-or-npm riippuvuuksista, hyökkääjät julkaisivat uuden päivityksen, load-from-cwd-or-npm. 3.0.4, jossa haitallinen koodi poistettiin. Kuitenkin melkein välittömästi julkaistiin päivitys toiseen riippuvuuteen, rate-map 1.0.3, joka lisäsi korjauksen estämään latauksen takaisinkutsun. Nuo. Molemmissa tapauksissa muutokset load-from-cwd-or-npm ja rate-map uusissa versioissa olivat ilmeistä sabotaasi. Lisäksi haitallisessa koodissa oli tarkistus, joka laukaisi virhetoimintoja vain uusien ylläpitäjien julkaisua asennettaessa, eikä se näkynyt millään tavalla vanhempia versioita asennettaessa.
Kehittäjät ratkaisivat ongelman julkaisemalla päivityksen, jossa ongelmalliset riippuvuudet poistettiin. Jotta estetään vaarantunut koodi asettumasta käyttäjäjärjestelmiin ongelmallisen PureScript-version asentamisen jälkeen, on suositeltavaa poistaa node_modules-hakemistojen ja package-lock.json-tiedostojen sisältö ja asettaa sitten purescript-versio 0.13.2 alaraja.
Lähde: opennet.ru