Purescript npm -asennusohjelmasta löytyi haitallinen koodi

npm puhekirja

Joitakin päiviä sitten npm-paketin riippuvuuksista havaittiin haitallinen koodi PureScript-asennusohjelman avulla, joka ilmenee yritettäessä asentaa purescript-paketti.

Vahingoittava koodi upotettu riippuvuuksien load-from-cwd-tai-npm kautta ja nopeuskartan riippuvuudet. On huomattava, että npm-paketin alkuperäinen kirjoittaja PureScript-asennusohjelman kanssa, joka viime aikoihin asti oli sitoutunut ylläpitämään tätä npm-pakettia, mutta paketti lähetettiin muille ylläpitäjille, on vastuussa näiden riippuvuuksien mukana olevien pakettien mukana.

Tietoja ongelmasta

Yksi paketin uusista analyytikoista löysi ongelman, jolle elatusapuoikeudet siirrettiin monien erimielisyyksien ja ikävien keskustelujen jälkeen npm purescript -paketin alkuperäisen kirjoittajan kanssa.

Uudet ylläpitäjät ovat vastuussa PureScript-kääntäjästä ja he vaativat, että ylläpitäjien tulee itse korjata NPM-paketti ja sen asentaja, ei projektin ulkopuolinen kehittäjä.

PureScript-asennusohjelman npm-paketin kirjoittaja oli eri mieltä pitkään, mutta luopui ja antoi pääsyn arkistoon. Jotkut riippuvuudet jätettiin kuitenkin hänen hallintaansa.

Viime viikolla ilmoitettiin PureScript 0.13.2 -kääntäjän julkaisu ja uudet ylläpitäjät valmistelivat vastaavan päivityksen npm-paketista asentajan kanssa, jonka haittaohjelma havaittiin.

Haitallinen koodi lisättiin ensin npm-pakettiin "load-from-cwd-or-npm" versiossa 3.0.2 ja sitten rate-map -paketissa versiosta 1.0.3. Viime päivinä molemmista paketeista julkaistiin useita versioita.

Siirtynyt postista, jonka mukana oli npm-paketin kirjoittaja PureScript-asennusohjelmalla, hän sanoi, että tuntemattomat hyökkääjät vaarantivat hänen tilinsä.

Kuitenkin, nykyisessä muodossa haitallisen koodin toimia rajoitettiin vain sabotoimalla paketin asennus, joka oli uusien ylläpitäjien ensimmäinen versio. Haitalliset toiminnot poistettiin, kun yritettiin asentaa paketti "npm i -g purescript" -komennolla suorittamatta nimenomaista haitallista toimintaa.

Kaksi hyökkäystä tunnistettiin

Lyhyesti sanottuna koodi sabotoi purescript npm -asennusohjelman estääkseen lataamista loppuun, joka saa asennusohjelman jumittumaan "Tarkista, onko alustallesi toimitettu valmiiksi käännetty binaari" -vaiheen aikana.

Ensimmäinen hyödyntäminen teki tämän rikkomalla paketin load-from-cwd-or-npm jotta kaikki loadFromCwdOrNpm () -kutsut palauttaisivat läpivientisarjan odotetun paketin (tässä tapauksessa pyyntöpaketin, jota käytimme kääntäjän binäärien lataamiseen) sijaan. Hyödynnön toinen iterointi teki tämän muuttamalla lähdetiedostoa estämään latauspyynnön käynnistyminen.

4 päivää myöhemmin kehittäjät ymmärsivät virheiden lähteen ja valmistautuivat julkaisemaan päivityksen poistaakseen load-from-cwd-o-npm: n riippuvuuksista, hyökkääjät julkaisivat uuden päivityksen load-from-cwd-or-npm 3.0.4, josta haitallinen koodi on poistettu.

Kuitenkin melkein välittömästi julkaistiin päivitys toiseen Rate-Map 1.0.3 -riippuvuuteen, johon lisättiin korjaus, joka estää soittopyynnön lataamista.

Toisin sanoen molemmissa tapauksissa muutokset uusissa versioissa load-from-cwd-tai-npm ja kartanopeudesta olivat luonteeltaan ilmeisiä poikkeamia.

Haitallisessa koodissa oli myös tarkistus, joka laukaisi epäonnistuneet toimet vain asennettaessa uusien ylläpitäjien versiota, eikä se ilmestynyt lainkaan edellisiä versioita asennettaessa.

Kehittäjät ratkaisivat ongelman julkaisemalla päivityksen, jossa ongelmalliset riippuvuudet poistettiin.

Estää vaarantuneen koodin asentaminen käyttäjien järjestelmiin sen jälkeen, kun yritit asentaa ongelmallisen PureScript-version.

Vihdoin kehittäjä suosittelee kaikille, joiden järjestelmässä on mainitut paketin versiot poista node_modules-hakemistojen ja package-lock.json-tiedostojen sisältö ja aseta sitten purescript-versio 0.13.2.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.