123% fler rapporterade CVE:er per dag 2026 än förra året.

Beroenden

pip-audit

pip-audit skannar Python-beroenden efter paket med kända sårbarheter. Det kommer från Python Packaging Authority och fungerar på miljöer, requirements-filer och projektfiler. Python har ingen motsvarighet till npm audit inbyggd i pip, så det här är standardsättet att få en.

Uppdaterad

Så kör 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 upp paket via PyPI:s JSON-API, som bygger på Python Packaging Advisory Database, och det kan använda OSV i stället. Se projektsidan för hela listan med alternativ.

Var försiktig med vad du granskar

Det här överraskar många. När en requirements-fil granskas löses dess beroenden, och projektet varnar för att pip-audit -r INPUT funktionellt motsvarar pip install -r INPUT. Paketinstallation kan köra kod, så ett skadligt paket kan köras under granskningen. Projektets egen regel är enkel: om du inte skulle köra pip install på det, kör inte pip audit på det.

Det betyder också att kontrollen inte kan skydda dig mot ett paket som ännu saknar säkerhetsmeddelande, till exempel ett nytt typosquatting-paket eller slopsquatting-paket.

Köra pip-audit i CI

Det finns en officiell GitHub Action, pypa/gh-action-pip-audit, eller så kör du kommandot själv. Det avslutas med en nollskild kod när det hittar en sårbarhet, så ett nytt säkerhetsmeddelande kan få ett bygge att misslyckas utan någon kodändring.

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

Granska samma uppsättning beroenden som du levererar. Requirements med exakta versioner och hashar ger ett stabilt resultat. För hur det här passar ihop med andra kontroller, se var du bör köra SCA-skanningar.

Vad pip-audit inte täcker

  • Din kod. Det analyserar beroendeträd, inte källkod. För det, se SAST vs SCA.
  • Nativa bibliotek. Python-wheels innehåller ofta C-bibliotek, och projektet anger att det inte upptäcker transitiva sårbarheter i delade bibliotek som inte är Python.
  • Allt annat i bygget. Din basavbild, systempaket och CI-actions ligger utanför vad det ser.
  • Nya skadliga paket. Det matchar mot kända säkerhetsmeddelanden.
  • Bygget som levererades. Beroendelösningen i Python varierar med miljön, så en granskning på en annan dator kan se andra versioner än releasen. Utan lockfile kan även ordningen vid beroendelösningen variera.

pip-audit vs andra Python-skannrar

Verktyg Passar för Notering
pip-audit Python-beroenden, gratis Bara Python
Trivy, Grype Python-paket i en containeravbild Täcker också operativsystemets paket
Kommersiella SCA-verktyg Policy och arbetsflöden över många språk och team Se de bästa SCA-verktygen

pip-audit och CRACI

pip-audit är en förnuftig kontroll på pull requests. CRACI arbetar från andra hållet: som din GitHub Actions-runner registrerar CRACI varje paket som ett jobb hämtade från PyPI och varje annan källa, i alla led av trädet, i en SBOM över bygget som tog fram releasen. Sedan fortsätter CRACI att kontrollera den SBOM:en när nya sårbarheter publiceras, så du vet om förra årets release påverkas. Se SBOM:er från bygget och SBOM-generering under bygget.

pip-audit: vanliga frågor

Vad är pip-audit?

Ett verktyg från Python Packaging Authority som skannar Python-miljöer, requirements-filer och projekt efter paket med kända sårbarheter.

Finns det ett npm audit för Python?

pip-audit är den närmaste motsvarigheten, men det är ett separat verktyg och inte ett pip-kommando, så du installerar det själv.

Hur åtgärdar du sårbarheter som pip-audit hittar?

Kör pip-audit --fix för att uppgradera sårbara paket, eller först --fix --dry-run för att se vad som skulle ändras. Kör sedan dina tester och uppdatera dina låsta requirements.

Är det säkert att köra pip-audit på kod du inte litar på?

Nej. Att granska en requirements-fil motsvarar funktionellt att installera den, och installation kan köra kod. Om du inte skulle installera ett paket ska du inte granska det.

Kan pip-audit generera en SBOM?

Ja. Det kan skriva CycloneDX i JSON eller XML. SBOM:en beskriver de Python-beroenden som det löste, inte resten av ditt bygge.

Vilken sårbarhetsdatabas använder pip-audit?

Som standard PyPI:s JSON-API, som bygger på Python Packaging Advisory Database. Det kan också använda OSV.

Se vad ditt Python-bygge drog in

Kör ett GitHub Actions-arbetsflöde på CRACI och få en SBOM över varje paket som jobbet faktiskt hämtade.

Boka en demo