Škodlivý kód sa našiel v inštalátore purescript npm

NPM purescript

Pred niekoľkými dňami škodlivý kód bol zistený v závislostiach balíka npm pomocou inštalátora PureScript, ktorá sa prejaví pri pokuse o inštaláciu balíka purescript.

Škodlivý kód vložené prostredníctvom závislostí load-from-cwd-or-npm a závislosti rýchlostnej mapy. Je potrebné poznamenať, že pôvodný autor balíka npm s inštalátorom PureScript, ktorý sa donedávna podieľal na údržbe tohto balíka npm, ale bol odoslaný iným správcom, je zodpovedný za sprevádzanie balíkov s týmito závislosťami.

O probléme

Problém zistil jeden z nových analytikov balíka, na ktorého boli práva na výživu prevedené po mnohých nezhodách a škaredých diskusiách s pôvodným autorom balíka npm purescript.

Noví správcovia sú zodpovední za kompilátor PureScript a trvali na tom, aby balíček NPM s jeho inštalátorom opravovali samotní údržbári, nie vývojár mimo projektu.

Autor balíka npm s inštalátorom PureScript dlho nesúhlasil, ale potom to vzdal a umožnil prístup do úložiska. Niektoré závislosti však zostali pod jeho kontrolou.

Minulý týždeň bolo oznámené vydanie kompilátora PureScript 0.13.2 a noví správcovia pripravili príslušnú aktualizáciu balíka npm s inštalátorom, pre ktorý bol zistený škodlivý kód.

Škodlivý kód bol najskôr vložený do balíka npm „load-from-cwd-or-npm“ vo verzii 3.0.2 a potom v balíku rate-map z verzie 1.0.3. V posledných dňoch bolo zverejnených niekoľko verzií oboch balíkov.

Presunutý z príspevku sprevádzajúceho autora balíka npm s inštalátorom PureScript uviedol, že jeho účet bol kompromitovaný neznámymi útočníkmi.

Avšak, v súčasnej podobe boli akcie škodlivého kódu obmedzené iba sabotážou inštalácie balíka, ktorá bola prvou verziou nových správcov. Pri pokuse o inštaláciu balíka pomocou príkazu „npm i -g purescript“ bez vykonania akejkoľvek výslovnej škodlivej činnosti boli odstránené škodlivé akcie.

Boli identifikované dva útoky

Stručne povedané, kód sabotuje inštalačný program purescript npm, aby zabránil dokončeniu sťahovania, čo spôsobí, že inštalačný program visí počas kroku „Skontrolujte, či je pre vašu platformu poskytnutý predkompilovaný binárny súbor“.

Prvý exploit to urobil rozbitím balíka load-from-cwd-or-npm takže akékoľvek volanie loadFromCwdOrNpm () vráti namiesto očakávaného balíka postupnú sekvenciu (v tomto prípade balíček požiadaviek, ktorý sme používali na stiahnutie binárnych súborov kompilátora). Druhá iterácia exploitu to urobila úpravou zdrojového súboru, aby sa zabránilo spusteniu spätného volania sťahovania.

4 dní neskôr vývojári pochopili zdroj chýb a pripravovali sa na vydanie aktualizácie, ktorá vylúči načítanie zo súboru-cwd-o-npm zo závislostí, útočníci vydali ďalšiu aktualizáciu load-from-cwd-or-npm 3.0.4, kde bol odstránený škodlivý kód.

Avšak takmer okamžite bola vydaná aktualizácia na ďalšiu závislosť od Rate-Map 1.0.3, v ktorej bola pridaná oprava, ktorá blokuje spätné volanie na stiahnutie.

To znamená, že v obidvoch prípadoch mali zmeny v nových verziách načítania z formátu cwd alebo npm a rýchlosti mapy zjavnú odchýlku.

V škodlivom kóde tiež bola kontrola, ktorá spustila neúspešné akcie iba pri inštalácii novej verzie správcov, a pri inštalácii starších verzií sa vôbec neobjavila.

Vývojári problém vyriešili vydaním aktualizácie, v ktorej boli problematické závislosti odstránené.

Aby sa zabránilo inštalácii napadnutého kódu na systémy používateľov po pokuse o inštaláciu problémovej verzie PureScript.

Konečne odporúča vývojár všetkým, ktorí majú vo svojom systéme uvedené verzie balíka odstráňte obsah adresárov node_modules a súborov package-lock.json a potom nastavte verziu purescript 0.13.2.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.