„Purescript npm“ diegimo programoje rastas kenkėjiškas kodas

npm purescript

Prieš kelias dienas paketo npm priklausomybėse nuo „PureScript“ diegimo programos buvo aptiktas kenkėjiškas kodas, kuris pasireiškia bandant įdiegti „purescript“ paketą.

Kenkėjiškas kodas įdėta per „load-from-cwd-or-npm“ priklausomybes ir greičio žemėlapio priklausomybės. Reikėtų pažymėti, kad originalus paketo „npm“ autorius su „PureScript“ diegimo programa, kuris dar neseniai vykdė šio „npm“ paketo priežiūrą, tačiau paketas buvo išsiųstas kitiems prižiūrėtojams, yra atsakingas už paketų pridėjimą su šiomis priklausomybėmis.

Apie problemą

Problemą atrado vienas iš naujų paketo analitikų, kuriam išlaikymo teisės buvo perduotos po daugybės nesutarimų ir nemalonių diskusijų su pirminiu „npm purescript“ paketo autoriumi.

Naujieji prižiūrėtojai yra atsakingi už „PureScript“ kompiliatorių ir jie reikalavo, kad NPM paketą su jo montuotoju remontuotų patys prižiūrėtojai, o ne projekto vykdytojas.

„Npm“ paketo autorius su „PureScript“ diegimo programa ilgai nesutarė, tačiau tada pasidavė ir suteikė prieigą prie saugyklos. Tačiau kai kurios priklausomybės liko jo valdomos.

Praėjusią savaitę buvo paskelbtas kompiliatoriaus „PureScript 0.13.2“ išleidimas ir naujieji prižiūrėtojai paruošė atitinkamą „npm“ paketo atnaujinimą su diegimo programa, kuriems buvo nustatytas kenkėjiškas kodas.

Kenkėjiškas kodas pirmą kartą buvo įterptas į npm paketą „load-from-cwd-or-npm“ 3.0.2 versijoje, o paskui „rate-map“ pakete iš 1.0.3 versijos. Paskutinėmis dienomis buvo paskelbtos kelios abiejų paketų versijos.

Nukrypęs nuo įrašo, lydinčio paketo npm autorių su „PureScript“ diegimo programa, jis teigė, kad nežinomi užpuolikai pažeidė jo paskyrą.

Tačiau dabartine forma kenkėjiško kodo veiksmai buvo ribojami tik sabotuojant paketo diegimą, kuri buvo pirmoji naujų prižiūrėtojų versija. Kenkėjiški veiksmai buvo nutraukti bandant įdiegti paketą su komanda „npm i -g purescript“, neatliekant jokios aiškios kenkėjiškos veiklos.

Buvo nustatyti du išpuoliai

Apibendrinant galima teigti, kodas sabotuoja „purescript npm“ diegimo programą, kad būtų išvengta atsisiuntimo pabaigos, todėl montuotojas pakimba vykdant veiksmą „Patikrinkite, ar jūsų platformai yra pateiktas iš anksto sukompiliuotas dvejetainis failas“.

Pirmasis išnaudojimas tai padarė sugadindamas paketą „load-from-cwd-or-npm“ kad bet koks skambutis į loadFromCwdOrNpm () grąžintų perėjimo seką, o ne laukiamą paketą (šiuo atveju užklausos paketą, kurį naudojome atsisiųsdami kompiliatoriaus dvejetainius failus). Antrasis išnaudojimo kartojimas tai padarė pakeisdamas šaltinio failą, kad būtų išvengta atsisiuntimo atgalinio skambučio.

Po 4 dienų kūrėjai suprato trūkumų šaltinį ir ruošėsi išleisti naujinį, kad būtų išvengta „load-from-cwd-o-npm“ priklausomybių, užpuolikai išleido dar vieną atnaujinimą load-from-cwd-or-npm 3.0.4, kur pašalintas kenkėjiškas kodas.

Tačiau beveik iš karto buvo išleistas kitos „Rate-Map 1.0.3“ priklausomybės atnaujinimas, kuriame buvo pridėta pataisa, kuri blokuoja atgalinio skambučio atsisiuntimą.

Tai yra, abiem atvejais pakeitimai naujose „load-from-cwd-or-npm“ versijose ir žemėlapio spartoje buvo akivaizdaus nukrypimo pobūdžio.

Be to, kenkėjiškame kode buvo patikrinimas, kuris suveikė nepavykusius veiksmus tik diegiant naujų prižiūrėtojų versiją ir visai nebuvo rodomas diegiant ankstesnes versijas.

Kūrėjai išsprendė problemą išleidę naujinimą, kuriame pašalintos probleminės priklausomybės.

Kad būtų išvengta pažeisto kodo įdiegimo vartotojų sistemose po bandymo įdiegti probleminę „PureScript“ versiją.

Pagaliau kūrėjas rekomenduoja visiems, kurie turi minėtas paketo versijas savo sistemoje pašalinkite katalogų „node_modules“ ir failų „pack-lock.json“ turinį, tada nustatykite „purescript“ versiją 0.13.2.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.