123% meer gemelde CVE's per dag in 2026 dan vorig jaar.

Afhankelijkheden

npm audit

npm audit toetst de pakketten in uw project aan bekende beveiligingsadvisories en rapporteert wat het vindt. Het zit bij npm, kost niets en duurt enkele seconden, en dat maakt het de eenvoudigste SCA-scan die u kunt draaien. Wie weet wat het leest, weet ook wat het kan missen.

Bijgewerkt op

Hoe npm audit werkt

npm audit stuurt een beschrijving van de afhankelijkheden van uw project naar uw standaardregistry en vraagt om bekende kwetsbaarheden. Het heeft een package-lock.json of shrinkwrap-bestand nodig, want daaruit weet het welke versies u hebt. Zie de npm-documentatie voor de details.

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

Hoe u het rapport leest

  • De ernst komt uit de advisory. Die zegt hoe ernstig de fout in het algemeen is, niet hoe ernstig hij voor u is.
  • Het afhankelijkheidspad toont wat het pakket heeft binnengehaald. De meeste bevindingen zijn transitieve afhankelijkheden, en de oplossing zit meestal in het pakket daarboven.
  • Ontwikkeling of productie. Een fout in een testtool wordt niet aan gebruikers geleverd, maar draait wel in uw build, dus negeer hem niet helemaal.

Krijgt u een lange lijst, begin dan met wat wordt misbruikt en wat wordt geleverd. Zie hoe u kwetsbaarheden prioriteert.

npm audit fix, en wanneer u het niet moet forceren

Commando Wat het doet Risico
npm audit fix Past compatibele updates toe binnen uw versiebereiken Laag. Draai toch uw tests, want het voert een volledige installatie uit
npm audit fix --force Staat ook wijzigingen buiten uw bereiken toe, inclusief major-versies Hoog. Het kan uw applicatie breken, en volgens npm moet u het niet gebruiken zonder een helder idee van wat u wilt

Is er geen oplossing beschikbaar, dan kunt u het bovenliggende pakket upgraden, of met het veld overrides in package.json een gepatchte transitieve versie afdwingen. Test dat, want het bovenliggende pakket is niet tegen die versie gebouwd.

npm audit draaien in CI

Standaard eindigt npm audit met een andere exitcode dan nul zodra het iets vindt, waardoor de job mislukt op elke advisory met lage ernst. Teams stellen meestal een drempel in. Let op: --audit-level wijzigt alleen de faaldrempel en filtert het rapport niet.

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

Zo'n controle kan een build ook laten mislukken zonder codewijziging, omdat er 's nachts een nieuwe advisory is gepubliceerd. Bepaal wie eigenaar is van die mislukking voordat u de controle aanzet. Zie voor meer waar u SCA-scans laat draaien.

Wat npm audit mist

  • Alles buiten npm. Uw base image, pakketten van het besturingssysteem, Python-tools en GitHub Actions staan niet in package-lock.json.
  • Code die tijdens de installatie wordt opgehaald. Installatiescripts kunnen bestanden downloaden die geen lockfile vastlegt. Zie wat een lockfile niet vastlegt.
  • Nieuwe kwaadaardige pakketten. Het matcht op gepubliceerde advisories, dus een pakket zonder advisory komt er schoon doorheen.
  • Wat al is geleverd. Het rapporteert over het project dat het voor zich heeft. Een nieuwe advisory voor de release van vorig jaar komt alleen naar boven als iemand het opnieuw op die versie draait.
  • Of u wordt getroffen. Het weet niet of uw code de kwetsbare functie gebruikt. Reachability-analyse pakt dat aan.

npm audit signatures is een apart commando dat registryhandtekeningen en herkomstattestaties van de geïnstalleerde pakketten verifieert. Het controleert waar een pakket vandaan komt, niet of het veilig is.

npm audit en CRACI

Blijf npm audit draaien op pull requests. Het is gratis en vangt bekende problemen vroeg op. CRACI dekt wat het niet kan zien: als uw GitHub Actions-runner legt het elk pakket vast dat elke job daadwerkelijk heeft opgehaald van npm en elke andere bron, inclusief pakketten die uit CI-caches zijn teruggezet en bestanden die door install-hooks zijn opgehaald. Daarna blijft het de SBOM van wat is geleverd controleren zodra nieuwe kwetsbaarheden worden gepubliceerd. Zie de beste SCA-tools of SBOM-generatie tijdens de build.

npm audit: veelgestelde vragen

Wat doet npm audit?

Het stuurt een beschrijving van uw afhankelijkheden naar de npm-registry, toetst ze aan bekende beveiligingsadvisories en rapporteert kwetsbare pakketten, met hun ernst en hoe ze in uw project zijn gekomen.

Is npm audit fix veilig?

Gewoon npm audit fix is meestal veilig, omdat het binnen uw versiebereiken blijft, maar draai daarna wel uw tests. npm audit fix --force kan nieuwe major-versies installeren en uw applicatie breken.

Waarom toont npm audit zoveel kwetsbaarheden?

De meeste komen uit transitieve afhankelijkheden en ontwikkeltools. Gebruik --omit=dev om u te richten op wat wordt geleverd, en prioriteer op misbruik en blootstelling in plaats van op het aantal.

Hoe negeert u een kwetsbaarheid in npm audit?

npm audit heeft geen ingebouwde negeerlijst. Teams gebruiken het veld overrides om de versie te wijzigen, een drempel met --audit-level, of een wrapper-tool die geaccepteerde bevindingen vastlegt.

Heeft npm audit een lockfile nodig?

Ja, standaard heeft het package-lock.json of een shrinkwrap-bestand nodig. U kunt dat omzeilen met --no-package-lock, maar de resultaten kunnen dan per run verschillen.

Detecteert npm audit malware?

Alleen zodra er een advisory voor het pakket is gepubliceerd. Een nieuw kwaadaardig pakket heeft geen advisory, dus het wordt niet gemeld op de dag dat het verschijnt.

Zie wat npm audit niet kan zien

Laat één GitHub Actions-workflow op CRACI draaien en vergelijk de vastgelegde SBOM met uw package-lock.json.

Demo boeken