Schadelijke code gevonden in het purescript npm-installatieprogramma

npm zuiver script

Een paar dagen geleden Er is schadelijke code gedetecteerd in de afhankelijkheden van het npm-pakket met het PureScript-installatieprogramma, wat zich manifesteert bij het installeren van het purescript-pakket.

De kwaadaardige code is ingebed via load-from-cwd-or-npm afhankelijkheden en afhankelijkheden van de snelheidskaart. Opgemerkt moet worden dat de oorspronkelijke auteur van het npm-pakket met het PureScript-installatieprogramma, die tot voor kort bezig was met het onderhouden van dit npm-pakket, maar het pakket werd gepusht naar andere beheerders, verantwoordelijk is voor het begeleiden van pakketten met deze afhankelijkheden.

Over het probleem

Het probleem werd ontdekt door een van de nieuwe pakketanalisten, aan wie alimentatierechten werden overgedragen na vele onaangename meningsverschillen en ruzies met de oorspronkelijke auteur van het npm purescript-pakket.

De nieuwe handhavers zijn verantwoordelijk voor de PureScript-compiler en ze stonden erop dat het NPM-pakket met zijn installatieprogramma door de beheerders zelf moest worden gerepareerd, niet door een ontwikkelaar buiten het project.

De auteur van het npm-pakket met het PureScript-installatieprogramma was het lange tijd oneens, maar gaf het toen op en gaf toegang tot de repository. Sommige afhankelijkheden bleven echter onder zijn controle.

Vorige week werd de release van de PureScript 0.13.2-compiler aangekondigd. en de nieuwe beheerders hebben samen met het installatieprogramma de bijbehorende update van het npm-pakket voorbereid, waarvoor de schadelijke code is gedetecteerd.

De kwaadaardige code werd eerst ingevoegd in het npm-pakket "load-from-cwd-or-npm" in versie 3.0.2 en vervolgens in het tariefkaartpakket vanaf versie 1.0.3. Van beide pakketten zijn de afgelopen dagen verschillende versies uitgebracht.

Verplaatst van de post bij de auteur van het npm-pakket met het PureScript-installatieprogramma, zei hij dat zijn account was gecompromitteerd door onbekende aanvallers.

Echter in zijn huidige vorm waren de acties van de kwaadaardige code beperkt tot het saboteren van de installatie van het pakket, wat de eerste release was van de nieuwe onderhouders. Kwaadaardige acties werden teruggebracht tot een foutuitvoerlus bij een poging om een ​​pakket te installeren met de opdracht "npm i -g purescript" zonder enige expliciete kwaadwillende activiteit.

Er werden twee aanvallen geïdentificeerd

Samengevat, code saboteert het purescript npm-installatieprogramma om te voorkomen dat de download wordt voltooid, waardoor het installatieprogramma crasht tijdens de stap "Controleer of er een vooraf gecompileerd binair bestand voor uw platform beschikbaar is".

De eerste exploit deed dit door het load-from-cwd-or-npm-pakket te breken. zodat elke aanroep van loadFromCwdOrNpm() een PassThrough zou retourneren in plaats van het verwachte pakket (in dit geval het verzoekpakket, dat we gebruikten om de binaire bestanden van de compiler te downloaden). De tweede iteratie van de exploit deed dit door een bronbestand te wijzigen om te voorkomen dat een download-callback werd geactiveerd.

4 dagen later de ontwikkelaars begrepen de oorzaak van de fouten en bereidden zich voor om een ​​update uit te brengen om load-from-cwd-o-npm uit te sluiten van afhankelijkheden, brachten de aanvallers nog een update uit, load-from-cwd-or-npm 3.0.4, waarin de schadelijke code is verwijderd.

Er werd echter vrijwel onmiddellijk een update uitgebracht voor een andere Rate-Map 1.0.3-afhankelijkheid, waarbij een oplossing werd toegevoegd die het downloaden van de callback-oproep blokkeert.

Dat wil zeggen, in beide gevallen waren de wijzigingen in de nieuwe versies van load-from-cwd-or-npm en de kaartsnelheid van de aard van een schijnbare afwijking.

Bovendien was er in de kwaadaardige code een controle die mislukte acties alleen activeerde bij het installeren van de versie van de nieuwe onderhouders en helemaal niet verscheen bij het installeren van de vorige versies.

De ontwikkelaars hebben het probleem opgelost door een update uit te brengen die de problematische afhankelijkheden verwijderde.

Om te voorkomen dat gecompromitteerde code op de systemen van gebruikers wordt geïnstalleerd na een poging om de problematische versie van PureScript te installeren.

Eindelijk de ontwikkelaar adviseert aan iedereen die de genoemde versies van het pakket op hun systeem heeft verwijder de inhoud van de node_modules-mappen en de package-lock.json-bestanden en stel vervolgens de purescript-versie in op 0.13.2.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.