Në varësitë e paketës npm me instaluesin PureScript kod i dëmshëm që shfaqet gjatë përpjekjes për të instaluar paketën . Kodi i dëmshëm është integruar përmes varësive dhe . E veçantë është se mbështetjes së pakove me këto varësi iu është dhënë nga autori origjinal i paketës npm me instaluesin PureScript, i cili deri para disa javëve merrej me mbështetje për këtë paketë npm, por rreth një muaji më parë paketa iu kalua mbështetësve të tjerë.
Problemin e zbuloi një nga mbështetësit e rinj të paketës, të cilit nënshtresat për mbështetje iu kaluan pas shumë mosmarrëveshjeve dhe diskutimeve të pakëndshme me autorin origjinal të paketës npm purescript. Mbështetësit e rinj janë përgjegjës për kompilatorin PureScript dhe insistuan që paketa npm me instaluesin e saj duhet të mbështetet nga të njëjtit mbështetës, dhe jo nga një palë e jashtme. Autori i paketës npm me instaluesin PureScript gjatë kohës nuk pranoi për një kohë të gjatë, por më pas u dorëzua dhe ia kaloi aksesin në repositorin. Ndërkohë, disa varësi mbetën nën menaxhimin e tij.
Java javën e kaluar është lëshuar versioni i kompilatorit PureScript 0.13.2 dhe
mbështetësit e rinj përgatitën përkatësisht azhurnimin e paketës npm me instaluesin, në varësi të të cilit u zbulua kodi i dëmshëm. Autori i pakos npm me instaluesin PureScript që u shkarkua nga posti i mbështetësit deklaroi se llogaria e tij ishte kompromituar nga sulmues të panjohur. Megjithatë, në formën aktuale veprimet e kodit të dëmshëm ishin kufizuar vetëm në sabotazhin e instalimit të paketës, e cila u bë versioni i parë nga mbështetësit e rinj. Veprimet e dëmshme ishin të kufizuara në ciklim me shpërndarjen e një gabimi gjatë përpjekjes për të instaluar paketën me komandën «npm i -g purescript» pa kryer ndonjë aktivitet të qartë të dëmshëm.
U zbuluan dy sulme. Më shumë se disa orë pas daljes zyrtare të versionit të ri të paketës npm purescript, nga dikush u formua një version i ri i varësisë load-from-cwd-or-npm 3.0.2, përmirësimet në të cilat çuan në faktin se thirrja loadFromCwdOrNpm() në vend që të kthejë listën e skedarëve të nevojshëm për instalimin, ktheu një rrjedhë , që pasqyron kërkesat hyrëse si vlera dalëse.
Pas 4 ditëve, pas përfundimit të ekipit të zhvilluesve mbi burimin e dështimeve dhe përgatitjes për të nxjerrë një përditësim për përjashtimin e load-from-cwd-or-npm nga varësitë, sulmuesit në liri lëshuan një përditësim tjetër load-from-cwd-or-npm 3.0.4, ku kodi keqdashës ishte hequr. Megjithatë, thuajse menjëherë, u lëshua një përditësim tjetër për varësinë rate-map 1.0.3, ku ishte shtuar një rregullim që bllokonte thirrjet callback për ngarkimin. Kështu, në të dy rastet, ndryshimet në versionet e reja të load-from-cwd-or-npm dhe rate-map ishin të natyrës qartë subversive. Për më tepër, në kodin keqdashës kishte një kontroll që aktivizonte veprimet dështake vetëm gjatë instalimit të lëshimit nga shoqëruesit e rinj, dhe nuk manifestoheshin gjatë instalimit të versioneve më të vjetra.
Zhvilluesit zgjidhën problemin duke lëshuar një përditësim, në të cilin varësitë problematike u hoqën. Për të përjashtuar vendosjen e kodit të komprometuar në sistemet e përdoruesve pas përpjekjes për instalimin e versionit problematik të PureScript, rekomandohet që të hiqen përmbajtjet e katalogëve node_modules dhe skedarëve package-lock.json, e më pas të vendoset si kufiri i poshtëm versioni purescript 0.13.2.
Burimi: opennet.ru
