Sårbarhed i pac-resolver NPM-pakken med 3 millioner downloads om ugen

Pac-resolver NPM-pakken, som har over 3 millioner downloads om ugen, har en sårbarhed (CVE-2021-23406), der gør det muligt at udføre dens JavaScript-kode i forbindelse med applikationen, når der sendes HTTP-anmodninger fra Node.js-projekter, der understøtter automatisk konfiguration af proxyserver.

Pac-resolver-pakken analyserer PAC-filer, der inkluderer et automatisk proxy-konfigurationsscript. PAC-filen indeholder almindelig JavaScript-kode med en FindProxyForURL-funktion, der definerer logikken for at vælge en proxy afhængigt af værten og den anmodede URL. Essensen af ​​sårbarheden er, at for at udføre denne JavaScript-kode i pac-resolver, blev VM API'et i Node.js brugt, hvilket giver dig mulighed for at udføre JavaScript-kode i en anden kontekst af V8-motoren.

Den angivne API er udtrykkeligt markeret i dokumentationen som ikke beregnet til at køre kode, der ikke er tillid til, da den ikke giver fuldstændig isolation af koden, der køres, og giver adgang til den originale kontekst. Problemet er blevet løst i pac-resolver 5.0.0, som er blevet flyttet til at bruge vm2-biblioteket, som giver et højere niveau af isolation, der er velegnet til at køre kode, der ikke er tillid til.

Sårbarhed i pac-resolver NPM-pakken med 3 millioner downloads om ugen

Når du bruger en sårbar version af pac-resolver, kan en angriber gennem transmission af en specialdesignet PAC-fil opnå eksekvering af sin JavaScript-kode i sammenhæng med koden for et projekt, der bruger Node.js, hvis dette projekt bruger biblioteker, der har afhængigheder med pac-resolver. Det mest populære af de problematiske biblioteker er Proxy-Agent, opført som en afhængighed af 360 projekter, inklusive urllib, aws-cdk, mailgun.js og firebase-tools, i alt mere end tre millioner downloads om ugen.

Hvis et program, der har afhængigheder af pac-resolver, indlæser en PAC-fil leveret af et system, der understøtter den automatiske WPAD proxy-konfigurationsprotokol, så kan angribere med adgang til det lokale netværk bruge distributionen af ​​proxyindstillinger via DHCP til at indsætte ondsindede PAC-filer.

Kilde: opennet.ru

Tilføj en kommentar