123% di CVE segnalate in più al giorno nel 2026 rispetto all'anno scorso.

Dipendenze

npm audit

npm audit confronta i pacchetti del Suo progetto con gli advisory di sicurezza noti e riporta ciò che trova. È incluso in npm, non costa nulla e richiede pochi secondi: è la scansione SCA più facile da eseguire. Sapere che cosa legge Le dice che cosa può sfuggirgli.

Aggiornato il

Come funziona npm audit

npm audit invia una descrizione delle dipendenze del Suo progetto al registry predefinito e chiede quali vulnerabilità note le riguardano. Ha bisogno di un package-lock.json o di un file shrinkwrap, perché è così che sa quali versioni sono in uso. Per i dettagli, veda la documentazione di npm.

npm audit                       # report everything
npm audit --omit=dev            # skip dev dependencies
npm audit --audit-level=high    # fail only on high or critical
npm audit --json                # machine-readable output

Come leggere il report

  • La gravità deriva dall'advisory. Indica quanto è grave la falla in generale, non quanto lo è per Lei.
  • Il percorso della dipendenza mostra che cosa ha introdotto il pacchetto. La maggior parte dei risultati riguarda dipendenze transitive, e la correzione di solito va fatta nel pacchetto di livello superiore.
  • Sviluppo o produzione. Una falla in uno strumento di test non arriva agli utenti, ma lo strumento viene comunque eseguito nella Sua build, quindi non la ignori del tutto.

Se ottiene un elenco lungo, inizi da ciò che viene sfruttato e da ciò che viene distribuito. Veda come dare priorità alle vulnerabilità.

npm audit fix e quando non forzarlo

Comando Che cosa fa Rischio
npm audit fix Applica gli aggiornamenti compatibili entro i Suoi intervalli di versione Basso. Esegua comunque i test, perché il comando effettua un'installazione completa
npm audit fix --force Consente anche modifiche fuori dai Suoi intervalli, comprese le versioni major Alto. Può rompere la Sua applicazione, e npm dice di non usarlo senza avere un'idea chiara di ciò che si vuole

Se non è disponibile una correzione, può aggiornare il pacchetto padre oppure usare il campo overrides in package.json per imporre una versione transitiva corretta. La testi, perché il pacchetto padre non è stato creato per quella versione.

Eseguire npm audit in CI

Per impostazione predefinita, npm audit termina con un codice diverso da zero quando trova qualcosa, e questo fa fallire il job a ogni advisory di bassa gravità. Di solito i team impostano una soglia. Tenga presente che --audit-level cambia solo la soglia di fallimento e non filtra il report.

- run: npm ci
- run: npm audit --omit=dev --audit-level=high

Un controllo di questo tipo può anche far fallire una build senza alcuna modifica al codice, perché durante la notte è stato pubblicato un nuovo advisory. Decida chi è responsabile di quel fallimento prima di attivarlo. Per saperne di più, veda dove eseguire le scansioni SCA.

Che cosa non vede npm audit

  • Tutto ciò che è fuori da npm. La Sua immagine base, i pacchetti del sistema operativo, gli strumenti Python e le GitHub Actions non sono in package-lock.json.
  • Il codice scaricato durante l'installazione. Gli script di installazione possono scaricare file che nessun lockfile registra. Veda che cosa non registra un lockfile.
  • I nuovi pacchetti malevoli. Si basa sugli advisory pubblicati, quindi un pacchetto ancora senza advisory risulta pulito.
  • Ciò che è già stato distribuito. Riporta i risultati sul progetto che ha davanti. Un nuovo advisory per la release dell'anno scorso emerge solo se qualcuno lo riesegue su quella versione.
  • Se Lei è effettivamente colpito. Non sa se il Suo codice usa la funzione vulnerabile. L'analisi di raggiungibilità affronta questo aspetto.

npm audit signatures è un comando separato che verifica le firme del registry e le attestazioni di provenance dei pacchetti installati. Controlla da dove proviene un pacchetto, non se è sicuro.

npm audit e CRACI

Continui a eseguire npm audit sulle pull request. È gratuito e intercetta presto i problemi noti. CRACI copre ciò che questo comando non può vedere: come Suo runner GitHub Actions, registra ogni pacchetto che ciascun job ha effettivamente scaricato da npm e da qualsiasi altra fonte, compresi i pacchetti ripristinati dalle cache CI e i file scaricati dagli hook di installazione. Poi continua a controllare la SBOM di ciò che è stato distribuito man mano che vengono pubblicate nuove vulnerabilità. Veda i migliori strumenti SCA o la generazione di SBOM in fase di build.

npm audit: domande frequenti

Che cosa fa npm audit?

Invia una descrizione delle Sue dipendenze al registry npm, le confronta con gli advisory di sicurezza noti e riporta gli eventuali pacchetti vulnerabili, con la loro gravità e il modo in cui sono entrati nel Suo progetto.

npm audit fix è sicuro?

Il semplice npm audit fix di solito è sicuro, perché resta entro i Suoi intervalli di versione, ma esegua i test subito dopo. npm audit fix --force può installare nuove versioni major e rompere la Sua applicazione.

Perché npm audit mostra così tante vulnerabilità?

La maggior parte proviene da dipendenze transitive e strumenti di sviluppo. Usi --omit=dev per concentrarsi su ciò che viene distribuito e dia priorità in base a sfruttamento ed esposizione anziché al conteggio.

Come si ignora una vulnerabilità in npm audit?

npm audit non ha un elenco di esclusioni integrato. I team usano il campo overrides per cambiare la versione, una soglia con --audit-level o uno strumento wrapper che registra i risultati accettati.

npm audit ha bisogno di un lockfile?

Sì, per impostazione predefinita ha bisogno di package-lock.json o di un file shrinkwrap. Può aggirare questo requisito con --no-package-lock, ma i risultati possono allora variare da un'esecuzione all'altra.

npm audit rileva il malware?

Solo dopo che è stato pubblicato un advisory per il pacchetto. Un nuovo pacchetto malevolo non ha alcun advisory, quindi non verrà riportato il giorno in cui compare.

Veda ciò che npm audit non può vedere

Esegua un workflow GitHub Actions su CRACI e confronti la SBOM registrata con il Suo package-lock.json.

Prenota una demo