123% flere rapporterte CVE-er per dag i 2026 enn i fjor.

Avhengigheter

pip-audit

pip-audit skanner Python-avhengigheter etter pakker med kjente sårbarheter. Det kommer fra Python Packaging Authority og virker på miljøer, requirements-filer og prosjektfiler. Python har ikke noe som tilsvarer npm audit innebygd i pip, så dette er standardmåten å få det på.

Oppdatert

Slik kjører du pip-audit

pip install pip-audit

pip-audit                          # the current environment
pip-audit -r requirements.txt      # a requirements file
pip-audit .                        # a local project
pip-audit --fix --dry-run          # show what would be upgraded
pip-audit --fix                    # upgrade vulnerable packages
pip-audit -s osv                   # use OSV instead of PyPI
pip-audit -f cyclonedx-json        # write a CycloneDX SBOM

Som standard slår det opp pakker gjennom JSON-API-et til PyPI, som bygger på Python Packaging Advisory Database, og det kan bruke OSV i stedet. Se prosjektsiden for den fullstendige listen over alternativer.

Vær forsiktig med hva du kjører audit på

Dette overrasker mange. Å kjøre audit på en requirements-fil løser avhengighetene i den, og prosjektet advarer om at pip-audit -r INPUT funksjonelt tilsvarer pip install -r INPUT. Pakkeinstallasjon kan kjøre kode, så en ondsinnet pakke kan kjøre under auditen. Prosjektets egen regel er enkel: Hvis du ikke ville kjørt pip install på det, ikke kjør pip audit på det.

Dette betyr også at sjekken ikke kan beskytte deg mot en pakke som ennå ikke har noen advisory, for eksempel en ny typosquat- eller slopsquatting-pakke.

Slik kjører du pip-audit i CI

Det finnes en offisiell GitHub Action, pypa/gh-action-pip-audit, eller du kan kjøre kommandoen selv. Den avslutter med en kode som ikke er null når den finner en sårbarhet, så en ny advisory kan få et bygg til å feile uten noen kodeendring.

- run: pip install -r requirements.txt pip-audit
- run: pip-audit

Kjør audit på det samme avhengighetssettet som du leverer. Requirements med eksakte versjoner og hasher gir deg et stabilt resultat. For hvordan dette passer sammen med andre sjekker, se hvor du bør kjøre SCA-skanninger.

Hva pip-audit ikke dekker

  • Koden din. Det analyserer avhengighetstrær, ikke kildekode. For det, se SAST vs SCA.
  • Native biblioteker. Python-wheels pakker ofte inn C-biblioteker, og prosjektet oppgir at det ikke oppdager transitive sårbarheter i delte biblioteker som ikke er Python.
  • Alt annet i bygget. Base-imaget ditt, systempakker og CI-actions er utenfor synsfeltet.
  • Nye ondsinnede pakker. Det matcher kjente advisories.
  • Bygget som ble levert. Python-oppløsning varierer med miljøet, så en audit på en annen maskin kan se andre versjoner enn utgivelsen. Uten en lockfile kan også rekkefølgen på oppløsningen variere.

pip-audit vs andre Python-skannere

Verktøy Bra til Merk
pip-audit Python-avhengigheter, gratis Bare Python
Trivy, Grype Python-pakker inne i et container-image Dekker også operativsystempakker
Kommersielle SCA-verktøy Policy og arbeidsflyt på tvers av mange språk og team Se de beste SCA-verktøyene

pip-audit og CRACI

pip-audit er en fornuftig sjekk på pull requests. CRACI arbeider fra den andre siden: Som GitHub Actions-runneren din registrerer CRACI hver pakke en jobb hentet fra PyPI og alle andre kilder, på alle nivåer i treet, i en SBOM av bygget som produserte utgivelsen. Deretter fortsetter CRACI å sjekke den SBOM-en etter hvert som nye sårbarheter publiseres, så du vet om fjorårets utgivelse er berørt. Se SBOM-er fra bygget og SBOM-generering under bygget.

pip-audit: ofte stilte spørsmål

Hva er pip-audit?

Et verktøy fra Python Packaging Authority som skanner Python-miljøer, requirements-filer og prosjekter etter pakker med kjente sårbarheter.

Finnes det en npm audit for Python?

pip-audit er det nærmeste, men det er et eget verktøy og ikke en pip-kommando, så du installerer det selv.

Hvordan retter du sårbarheter funnet av pip-audit?

Kjør pip-audit --fix for å oppgradere sårbare pakker, eller --fix --dry-run først for å se hva som ville endres. Kjør deretter testene og oppdater de festede requirements-oppføringene dine.

Er det trygt å kjøre pip-audit på kode du ikke stoler på?

Nei. Å kjøre audit på en requirements-fil tilsvarer funksjonelt å installere den, og installasjon kan kjøre kode. Hvis du ikke ville installert en pakke, ikke kjør audit på den.

Kan pip-audit generere en SBOM?

Ja. Det kan skrive CycloneDX i JSON eller XML. SBOM-en beskriver Python-avhengighetene det løste, ikke resten av bygget ditt.

Hvilken sårbarhetsdatabase bruker pip-audit?

Som standard JSON-API-et til PyPI, som bygger på Python Packaging Advisory Database. Det kan også bruke OSV.

Se hva Python-bygget ditt trakk inn

Kjør én GitHub Actions-workflow på CRACI og få en SBOM av hver pakke jobben faktisk hentet.

Book en demo