Disa ditë më parë kodi keqdashës u zbulua në varësitë e paketës npm me instaluesin PureScript, e cila manifestohet kur përpiqeni të instaloni paketën purescript.
Kod i dëmshëm ngulitur përmes varësisë load-from-cwd-or-npm dhe varësitë e hartës së shpejtësisë. Duhet të theksohet se autori origjinal i paketës npm me instaluesin PureScript, i cili deri vonë ishte angazhuar në mirëmbajtjen e kësaj pakete npm, por paketa u dërgua te mirëmbajtësit e tjerë, është përgjegjës për shoqërimin e paketave me këto varësi.
Në lidhje me problemin
Problemi u zbulua nga një prej analistëve të rinj të paketës, tek i cili u transferuan të drejtat e mirëmbajtjes pas shumë mosmarrëveshjeve dhe diskutimeve të këqija me autorin origjinal të paketës purescript të npm.
Mirëmbajtësit e rinj janë përgjegjës për përpiluesin PureScript dhe ata këmbëngulën që paketa NPM me instaluesin e saj të riparohej nga vetë mirëmbajtësit, jo nga një zhvillues jashtë projektit.
Autori i paketës npm me instaluesin PureScript nuk ishte dakord për një kohë të gjatë, por më pas hoqi dorë dhe i dha hyrjen në depo. Sidoqoftë, disa varësi u lanë nën kontrollin e tij.
Javën e kaluar, u njoftua lëshimi i përpiluesit të PureScript 0.13.2 dhe mirëmbajtësit e rinj përgatitën azhurnimin përkatës të paketës npm me instaluesin, për të cilin u zbulua kodi keqdashës.
Kodi keqdashës u fut së pari në paketën npm "load-from-cwd-or-npm" në versionin 3.0.2 dhe më pas në paketën e hartës së normës nga versioni 1.0.3. Në ditët e fundit u botuan disa versione të të dy paketave.
Zhvendosur nga postimi që shoqëronte autorin e paketës npm me instaluesin PureScript, ai tha se llogaria e tij ishte komprometuar nga sulmues të panjohur.
Megjithatë, në formën aktuale, veprimet e kodit me qëllim të keq u kufizuan vetëm duke sabotuar instalimin e paketës, i cili ishte versioni i parë i mirëmbajtësve të rinj. Veprimet e dëmshme u zbuluan gjatë përpjekjes për të instaluar një paketë me komandën "npm i -g purescript" pa kryer ndonjë aktivitet të qartë dashakeqës.
Dy sulme u identifikuan
Me pak fjalë, kodi saboton instaluesin npm purescript për të parandaluar përfundimin e shkarkimit, gjë që bën që instaluesi të varet gjatë hapit "Kontrolloni nëse ofrohet një binar i parakompiluar për platformën tuaj".
Shfrytëzimi i parë e bëri këtë duke thyer paketën load-from-cwd-or-npm në mënyrë që çdo thirrje për të ngarkuarFromCwdOrNpm () do të kthente një sekuencë përcjellëse në vend të paketës së pritur (në këtë rast, paketën e kërkesës, të cilën po e përdornim për të shkarkuar binaret e përpiluesit). Përsëritja e dytë e shfrytëzimit e bëri këtë duke modifikuar një skedar burimor për të parandaluar që një thirrje shkarkimi të ndezet.
4 ditë më vonë zhvilluesit e kuptuan burimin e defekteve dhe po përgatiteshin të lëshonin një azhurnim për të përjashtuar ngarkesën nga cwd-o-npm nga varësitë, sulmuesit lëshuan një tjetër përditësim load-from-cwd-or-npm 3.0.4, ku kodi me qëllim të keq është hequr.
Sidoqoftë, një azhurnim i një varësie tjetër Rate-Map 1.0.3 u lëshua pothuajse menjëherë, në të cilin u shtua një rregullim që bllokon thirrjen e thirrjes për shkarkim.
Kjo është, në të dy rastet, ndryshimet në versionet e reja të ngarkesës nga cwd-ose-npm dhe shkalla e hartës ishin të natyrës së një devijimi të dukshëm.
Gjithashtu, në kodin me qëllim të keq kishte një kontroll që shkaktoi veprimet e dështuara vetëm kur instaloni versionin e mirëmbajtësve të rinj dhe nuk u shfaq fare kur instaloni versionet e mëparshme.
Zhvilluesit e zgjidhën problemin duke lëshuar një azhurnim në të cilin u hoqën varësitë problematike.
Për të parandaluar instalimin e kodit të kompromentuar në sistemet e përdoruesve, pasi keni provuar të instaloni versionin problematik të PureScript.
Më në fund rekomandon zhvilluesi për të gjithë ata që kanë versionet e përmendura të paketës në sistemin e tyre hiqni përmbajtjen e drejtorive të node_modules dhe skedarët e packet-lock.json dhe më pas vendosni verzionin purescript 0.13.2.