În dependențele pachetului npm cu instalatorul PureScript cod malițios care se manifestă la încercarea de a instala pachetul . Codul malițios este integrat prin dependențe și . Este demn de remarcat că întreținerea pachetelor cu aceste dependențe este realizată de autorul inițial al pachetului npm cu instalatorul PureScript, care până de curând s-a ocupat de întreținerea acestui pachet npm, dar acum o lună pachetul a fost predat altor întreținători.
Problema a fost descoperită de unul dintre noii întreținători ai pachetului, căruia drepturile de întreținere au fost transferate după multe neînțelegeri și discuții neplăcute cu autorul inițial al pachetului npm purescript. Noii întreținători sunt responsabili pentru compilatorul PureScript și au insistat că pachetul npm cu instalatorul să fie întreținut de aceleași persoane și nu de terți. Autorul pachetului npm cu instalatorul PureScript nu a fost de acord o perioadă lungă, dar apoi a cedat și a transferat accesul la repository. Totuși, unele dependențe au rămas sub conducerea lui.
Săptămâna trecută a fost lansată versiunea 0.13.2 a compilatorului PureScript și
noii întreținători au pregătit actualizarea corespunzătoare a pachetului npm cu instalatorul, în dependențele căruia a fost descoperit cod malitios. Autorul pachetului npm cu instalatorul PureScript, înlăturat de la funcție, a declarat că contul său a fost compromis de atacatori necunoscuți. Cu toate acestea, în forma sa actuală, acțiunile codului malitios erau limitate doar la sabotajul instalării pachetului, ceea ce a devenit prima versiune sub conducerea noilor întreținători. Acțiunile malițioase constau în blocarea cu un mesaj de eroare atunci când se încearcă instalarea pachetului cu comanda „npm i -g purescript” fără a executa activitate malițioasă explicită.
Au fost identificate două atacuri. La câteva ore după lansarea oficială a noii versiuni a pachetului npm purescript, cineva a formulat o nouă versiune a dependenței load-from-cwd-or-npm 3.0.2, modificările din care au dus la faptul că apelul loadFromCwdOrNpm() în loc de lista necesară pentru instalare a fișierelor binare returna un flux , care oglindește cererile de intrare ca valori de ieșire.
După 4 zile, după ce dezvoltatorii au identificat sursa defecțiunilor și se pregăteau să lanseze o actualizare pentru a elimina load-from-cwd-or-npm din dependențe, atacatorii au lansat o nouă actualizare load-from-cwd-or-npm 3.0.4, în care codul malițios a fost eliminat. Cu toate acestea, aproape imediat a fost lansată o actualizare a unei alte dependențe rate-map 1.0.3, care a inclus o corecție ce blochează apelurile callback pentru încărcare. Adică, în ambele cazuri, modificările din noile versiuni load-from-cwd-or-npm și rate-map au avut caracter de sabotaj evident. Mai mult, în codul malițios existau verificări care activau acțiuni defuncte doar la instalarea versiunilor recente de către noii întreținători și nu se manifestau la instalarea versiunilor mai vechi.
Dezvoltatorii au rezolvat problema prin lansarea unei actualizări în care dependențele problematice au fost eliminate. Pentru a exclude inițierea codului compromis pe sistemele utilizatorilor după încercarea de instalare a versiunii problematice, se recomandă ștergerea conținutului directorilor node_modules și a fișierelor package-lock.json, după care să se seteze ca limită inferioară versiunea purescript 0.13.2.
Sursa: opennet.ro
