node/npm vzniklo v době, kdy se předpokládalo, že všichni správci balíčků jsou hodní a pečliví. Zazáplatovat teď všechny díry v node/npm bude ještě běh na dlouhou trať.
Naštěstí tu máme modernější náhradu Deno (a Bun je na tom doufám podobně), který všechny potenciálně nebezpečné operace potřebuje explicitně povolit (čtení souborů, zápis souborů, spouštění procesů, komunikaci po síti, spuštění pre/po-instalačních skriptů). Kompatibilita Deno s Node.js je už velmi slušná. Minimálně pro nové projekty to podle mne bude lepší volba, než pokoušet se zabezpečit npm.
Audit je podobný tomu, o co se teď snaží v ekosystému node/npm – dodatečně zalepit díry (resp. v případě auditu je zjistit). Lepší řešení je vůbec ty nebezpečné operace nepovolit, když nejsou potřeba. Samozřejmě to má svá omezení – je pracné nastavit oprávnění dostatečně omezeně (ne „může komunikovat po internetu“ ale „může komunikovat s těmito servery“) a i granularita oprávnění je omezená (pokud můj skript potřebuje komunikovat s https://github.com, může s ním komunikovat i škodlivý balíček použitý v mém skriptu).