A fost publicată versiunea 12.0 a managerului de pachete NPM, inclus în livrarea Node.js și utilizat pentru distribuirea modulelor în JavaScript. Noua versiune se remarcă prin încetarea executării scripturilor în mod implicit în timpul instalării pachetelor. Se presupune că schimbarea va complica desfășurarea atacurilor prin compromiterea dependențelor și va încetini răspândirea viermilor activati din scripturile de instalare.
Pentru a interzice auto-executarea scripturilor specificate în package.json prin parametrii preinstall, install sau postinstall, setarea allowScripts este implicit setată pe „off”. Executarea acestor scripturi, precum și compilarea codului C/C++ cu utilitarul node-gyp în cazul în care pachetul conține un fișier binding.gyp, se va face doar la primirea unei instrucțiuni explicite de la utilizator. În plus, parametrii „—allow-git” și „—allow-remote” sunt acum setati implicit pe „none”, ceea ce dezactivează descărcarea automată a dependențelor din repositoare Git și din linkuri directe către site-uri cu arhive tar.
Pentru a organiza execuția scripturilor de instalare, se folosește comanda „npm approve-scripts”, care primește ca argument numele pachetelor de încredere sau opțiunea „—all” pentru a permite tuturor pachetelor. Pentru pachetele suspecte, se recomandă executarea comenzii „npm approve-scripts —allow-scripts-pending”, care va genera o listă a scripturilor ce solicită execuția. După verificarea acestor scripturi, ele pot fi autorizate cu comanda „npm approve-scripts” și adăugate pe lista albă în package.json.
În plus, a fost anunțată interzicerea utilizării token-urilor de acces GAT (Granular Access Tokens) în repositoarele NPM, configurate pentru a efectua acțiuni fără autentificare în doi pași (2FA). Începând din august, astfel de token-uri nu vor permite realizarea unor operațiuni precum crearea sau ștergerea token-urilor, modificarea profilului, parolei sau email-ului, configurarea autentificării în doi pași, generarea codurilor de recuperare, modificarea drepturilor de acces și gestionarea însoțitorilor, fără o confirmare manuală suplimentară.
În ianuarie 2027, se intenționează interzicerea publicării directe a pachetelor folosind token-uri care ocolesc 2FA. Totuși, pachetele vor putea fi publicate în secțiunea de staging, unde vor rămâne până la confirmarea manuală a lansării de către responsabil. După confirmarea manuală, pachetele publicate vor deveni disponibile pentru instalare de către utilizatori.
Pentru publicarea automată, se propune utilizarea mecanismului „Trusted Publishers”, bazat pe standardul OpenID Connect (OIDC) și pe token-uri de autentificare cu durată limitată, care sunt schimbate între serviciile externe și catalogul de pachete pentru a confirma operațiunea de publicare a pachetului, în locul utilizării parolelor tradiționale sau a token-urilor de acces API permanente.
Sursa: opennet.ro
