Udgaven version 12.0 af NPM-pakkehåndtereren, der er en del af Node.js og bruges til distribution af moduler på JavaScript. Den nye version er bemærkelsesværdig for at have deaktiveret standardkørslen af scripts under installation af pakker. Ændringen forventes at komplicere angreb gennem kompromittering af afhængigheder og bremse spredningen af orme, der aktiveres fra installationsscripts.
For at forbyde automatisk kørsel af scripts angivet i package.json via preinstall-, install- eller postinstall-parametre, er indstillingen allowScripts nu sat til "off" som standard. Udførelsen af sådanne scripts, samt kompilering af C/C++-kode ved hjælp af node-gyp, når der i pakken findes en binding.gyp-fil, vil nu kun finde sted, når der gives en eksplicit instruktion fra brugeren. Derudover er indstillingerne "—allow-git" og "—allow-remote" nu sat til "none" som standard, hvilket deaktiverer automatisk hentning af afhængigheder fra Git-repositorier og direkte links til websteder med tar-arkiver.
For at organisere kørsel af installationsscripts bør man bruge kommandoen "npm approve-scripts", hvori navne på betroede pakker angives, eller indstillingen "—all" for at give tilladelse til alle pakker. For tvivlsomme pakker anbefales det at køre kommandoen "npm approve-scripts —allow-scripts-pending", som vil vise en liste over scripts, der er tilgængelige for kørsel. Efter gennemgang af disse scripts kan de tillades med kommandoen "npm approve-scripts" og tilføjes til whitelist i package.json.
Desuden er det blevet annonceret, at brugen af GAT-adgangstokens (Granular Access Tokens) i NPM-repositoriet er forbudt, når de er konfigureret til at udføre handlinger uden to-faktor-autentificering (2FA). Fra august vil sådanne tokens ikke tillade operationer som oprettelse eller sletning af tokens, ændring af profil, adgangskode eller email, konfiguration af to-faktor-autentificering, generering af gendannelseskoder, ændring af adgangsrettigheder og administration af tilknyttede handlinger uden yderligere manuel bekræftelse.
I januar 2027 planlægges det at forbyde direkte offentliggørelse af pakker, der bruger tokens, som omgår 2FA. Pakkerne vil dog kunne offentliggøres i staging-delen, hvor de vil forblive indtil manuel bekræftelse af frigivelsen fra den ansvarlige. Efter manuel bekræftelse vil de offentliggjorte pakker blive tilgængelige for installation af brugerne.
Til automatisk offentliggørelse foreslås det at anvende mekanismen 'Trusted Publishers', baseret på brugen af OpenID Connect (OIDC) standarden og tidsbegrænsede autentificeringstokens, som udveksles mellem eksterne tjenester og pakke-kataloget for at bekræfte offentliggørelsesoperationen af pakken i stedet for at bruge traditionelle adgangskoder eller permanente API-adgangstokens.
Kilde: opennet.ru
