Udviklere der har ansvaret for projektet fra NPM-pakkehåndteringen, frigivet for nylig frigivet en korrigerende opdatering til NPM 6.13.4 inkluderet i Node.js-leveringen og bruges til at distribuere JavaScript-moduler.
Denne nye korrigerende version af manager var lanceret for at løse tre sårbarheder der gør det muligt at ændre eller overskrive vilkårlige systemfiler, når du installerer en pakke udarbejdet af en angriber.
CVE-2019-16775
Denne sårbarhed påvirker NPM CLI-versioner før 6.13.3, godt er du de er sårbare over for vilkårlig skrivning af filer. Pakker kan oprette symbolske links til filer uden for mappen node_modules gennem papirkurven efter installationen.
En korrekt konstrueret post i feltet bin package.json tillader en pakkeeditor at oprette et symbolsk link, der peger på vilkårlige filer på en brugers system, når pakken er installeret. Denne adfærd er stadig mulig gennem installationsskripter.
CVE-2019-16776
I denne sårbarhed NPM CLI-versioner før 6.13.3 påvirkes af vilkårlig filskrivning. Da du ikke kan forhindre adgang til mapper uden for den tilsigtede node_modules-mappe gennem bin-feltet.
En korrekt konstrueret post i feltet bin package.json giver en pakkeeditor mulighed for at ændre og få adgang til vilkårlige filer på en brugers system, når pakken er installeret. Denne adfærd er stadig mulig gennem installationsskripter.
I papirkurven var ruter med "/../" tilladt
CVE-2019-16777
Endelig NPM CLI-versioner før 6.13.4 er sårbare i denne sårbarhed til en vilkårlig filoverskrivning. Da du ikke kan forhindre andre binære filer i at overskrive eksisterende globalt installerede binære filer.
Fx hvis en pakke blev installeret globalt og oprettet en servicebinær, enhver efterfølgende installation pakker, der også opretter en tjenestebinær vil overskrive den gamle tjenestebinær. Denne adfærd er stadig tilladt på lokale installationer og også gennem installationsskripter.
Du kan kun erstatte filer i destinationsmappen, hvor de eksekverbare filer er installeret (normalt / usr, / local, / bin).
Selvom en vigtig faktor for disse sårbarheder er, at den person, der ønsker at udnytte disse fejl, bliver nødt til at få sit offer til at installere pakken med den specielt designede papirkurv. Men som vi tidligere har set, er dette ikke en uoverstigelig barriere.
Sikkerhedsteamet hos npm, Inc. har scannet registreringsdatabasen efter eksempler på dette angreb og har ikke fundet nogen pakker, der er offentliggjort i registreringsdatabasen med denne udnyttelse. Det garanterer ikke, at det ikke er blevet brugt, men det betyder, at det i øjeblikket ikke bruges i pakker, der er offentliggjort i registreringsdatabasen.
Vi vil fortsat overvåge og tage skridt til at forhindre dårlige aktører i at udnytte denne sårbarhed i fremtiden. Vi kan dog ikke scanne alle mulige kilder til npm-pakker (private registre, spejle, git-arkiver osv.), Så det er vigtigt at opdatere så hurtigt som muligt.
Fejlfinding
Som den vigtigste løsning anbefales det, at du opdaterer til den nye korrigerende version, da pakken. Json-parseringsbiblioteker, der er brugt i NPM v6.13.3, blev opdateret på en måde, der ville desinficere og validere alle poster i bakkefeltet for at fjerne de skrå skråstreg initialer, ruteindgange og andre måder til ruteudslip ved hjælp af det velafprøvede og meget pålidelige rutehjælpeprogram indbygget i Node.js.
Selvom, som en løsning kan det installeres med indstillingen –Ignorér-scripts, som forbyder kørsel af indbyggede driverpakker.
Uden yderligere ado, hvis du vil vide mere om bugs, kan du tjekke detaljerne i npm-blogindlægget I det følgende link.
Endelig for dem, der ønsker at installere den nye version, kan de gøre det fra officielle kanaler eller ved at vælge at kompilere fra kildekoden. For dette kan du følge instruktionerne i følgende link.