In 2026, a dataset mapping vulnerabilities across major package managers identified 270,430 known vulnerabilities linked to Python package versions on PyPI — and 141,044 packages that permit at least one vulnerable dependency version within their declared ranges. Yet many Python developers still rely on a single tool, run once in CI, and call it done. Three tools dominate the Python dependency security landscape: pip-audit, Safety CLI, and OSV-Scanner. Each has a different database, a different model, and a different answer to the question “which packages in my environment are vulnerable?” This guide gives you the full comparison — and tells you exactly how to wire each one into your CI/CD pipeline in 2026.
En 2026, un dataset cartographiant les vulnérabilités dans les principaux gestionnaires de packages a recensé 270 430 vulnérabilités connues liées à des versions de packages Python sur PyPI — et 141 044 packages qui autorisent au moins une version dépendante vulnérable dans leurs plages déclarées. Pourtant, beaucoup de développeurs Python se contentent d’un seul outil, exécuté une fois en CI. Trois outils dominent le paysage de la sécurité des dépendances Python : pip-audit, Safety CLI et OSV-Scanner. Chacun repose sur une base de données différente et répond différemment à la question « quels packages dans mon environnement sont vulnérables ? » Ce guide vous donne la comparaison complète et explique comment intégrer chacun dans votre pipeline CI/CD en 2026.
pip-audit 2.10.0 — The PyPA Standard
pip-audit 2.10.0 — Le Standard PyPA
pip-audit is the official Python dependency auditor maintained by PyPA (Python Packaging Authority) with backing from Trail of Bits and Google. Version 2.10.0, released December 1, 2025, is the current stable release and brings several important additions for modern Python workflows.
pip-audit est l’auditeur officiel de dépendances Python maintenu par PyPA (Python Packaging Authority) avec le soutien de Trail of Bits et Google. La version 2.10.0, publiée le 1er décembre 2025, est la version stable actuelle et apporte plusieurs ajouts importants pour les workflows Python modernes.
What’s new in pip-audit 2.10.0
Nouveautés de pip-audit 2.10.0
The most significant addition is PEP 751 lockfile support: passing
--locked to pip-audit now audits pylock.toml files — the
new standardized Python lockfile format. pip-audit also gains support for the
Ecosyste.ms vulnerability service (--vulnerability-service=esms),
a federated source that aggregates advisories beyond the default OSV database.
Additionally, vulnerability aliases are now included in JSON output automatically, and
in other formats when --aliases is specified — useful when your security
policy tracks advisories by GHSA or CVE ID interchangeably.
L’ajout le plus significatif est le support des lockfiles PEP 751 :
passer --locked à pip-audit permet d’auditer les fichiers pylock.toml
— le nouveau format standardisé de lockfile Python. pip-audit intègre également le
service de vulnérabilités Ecosyste.ms
(--vulnerability-service=esms), une source fédérée qui agrège les
advisories au-delà de la base OSV par défaut. Les alias de vulnérabilités sont
désormais inclus automatiquement dans la sortie JSON, et dans les autres formats avec
--aliases — utile quand votre politique de sécurité suit les advisories
par GHSA ou CVE de façon interchangeable.
Core pip-audit commands
Commandes pip-audit essentielles
# Install pip install pip-audit # Audit current environment pip-audit # Audit a requirements file pip-audit -r requirements.txt # Audit a PEP 751 lockfile (pip-audit 2.10+) pip-audit --locked # Audit a poetry.lock / pylock.toml project pip-audit --requirement pylock.toml # JSON output with CVE aliases pip-audit --format json --aliases -r requirements.txt # Auto-fix: upgrade vulnerable packages pip-audit --fix -r requirements.txt # Use Ecosyste.ms as additional source pip-audit --vulnerability-service=esms -r requirements.txt # Ignore a specific vulnerability (with expiry) pip-audit --ignore-vuln GHSA-xxxx-yyyy-zzzz -r requirements.txt
pip-audit queries the OSV.dev database by default, which aggregates advisories
from NVD, GitHub Security Advisories, and PyPI’s own advisory database. Independent
benchmarks show pip-audit achieves 98% CVE recall against the OSV database
— the highest coverage among open-source Python scanners. It resolves transitive
dependencies by default; you should never pass --no-deps unless you are
explicitly auditing a flat list of pinned versions.
pip-audit interroge la base OSV.dev par défaut, qui agrège les advisories
de NVD, GitHub Security Advisories et la propre base de données advisory de PyPI. Des
benchmarks indépendants montrent que pip-audit atteint un rappel CVE de 98%
sur la base OSV — la meilleure couverture parmi les scanners Python open-source. Il
résout les dépendances transitives par défaut ; ne passez jamais --no-deps
sauf si vous auditez explicitement une liste plate de versions pinées.
Lock file scanning tip: Always scan your lockfile
(requirements.txt with hashes, pylock.toml, or uv.lock) rather
than just pyproject.toml. The lockfile contains the exact resolved versions —
scanning only the top-level manifest misses transitive vulnerabilities.
Astuce lockfile : Scannez toujours votre
lockfile (requirements.txt avec hashes, pylock.toml ou uv.lock)
plutôt que le seul pyproject.toml. Le lockfile contient les versions exactes résolues
— scanner uniquement le manifest de haut niveau manque les vulnérabilités transitives.
Safety CLI 3.7.0 — Freemium Multi-Ecosystem Scanner
Safety CLI 3.7.0 — Scanner Multi-Écosystème Freemium
Safety CLI, maintained by SafetyCLI (formerly PyUp.io), is the other major Python vulnerability scanner. Version 3.7.0 is the current release. The key differentiator is Safety’s proprietary vulnerability database, which the company claims covers 3× more vulnerabilities than competitors including Dependabot, pip-audit, Snyk, and OSV. This is possible because Safety’s team manually curates advisories from sources not yet indexed by NVD or GitHub, often publishing earlier.
Safety CLI, maintenu par SafetyCLI (anciennement PyUp.io), est l’autre grand scanner de vulnérabilités Python. La version 3.7.0 est la version actuelle. Le différenciateur clé est la base de données propriétaire de Safety, que l’entreprise affirme couvrir 3× plus de vulnérabilités que ses concurrents, dont Dependabot, pip-audit, Snyk et OSV. C’est possible grâce à une équipe qui curate manuellement des advisories de sources pas encore indexées par NVD ou GitHub, publiant souvent plus tôt.
Safety CLI 3 key features
Fonctionnalités clés de Safety CLI 3
Safety 3 added a scan command that recursively finds all Python dependency
files in a directory — supporting requirements*.txt, poetry.lock,
Pipfile.lock, setup.cfg, and pyproject.toml. It outputs
results in JSON, HTML, SBOM (CycloneDX), and text formats. Safety 3 also supports
JavaScript packages (npm/yarn/pnpm/conda), making it a semi-polyglot tool if your team
uses Python and Node.js together.
Safety 3 a ajouté une commande scan qui trouve récursivement tous les fichiers
de dépendances Python dans un répertoire — supportant requirements*.txt,
poetry.lock, Pipfile.lock, setup.cfg et
pyproject.toml. Il produit les résultats en JSON, HTML, SBOM (CycloneDX) et
texte. Safety 3 supporte aussi les packages JavaScript (npm/yarn/pnpm/conda), en faisant
un outil semi-polyglotte si votre équipe utilise Python et Node.js ensemble.
# Install Safety CLI pip install safety # Scan a requirements file safety scan -r requirements.txt # Scan the entire project directory safety scan # JSON output for CI parsing safety scan --output json # SBOM output (CycloneDX) safety scan --output sbom # Disable telemetry (recommended in CI) safety scan --disable-telemetry -r requirements.txt # Check a specific package safety check --package requests==2.28.0
Freemium limit to know: Safety’s free tier provides basic vulnerability detection but limits database update frequency. The commercial tier adds malicious package detection (typosquatting, protestware), policy management, and authenticated CI scans with the full advisory database. For teams with a budget, the paid plan is worth it for earlier advisory access. For fully open-source workflows, pip-audit + OSV-Scanner covers most needs without an account.
Limite freemium à connaître : Le tier gratuit de Safety fournit une détection basique mais limite la fréquence de mise à jour de la base. Le tier commercial ajoute la détection de packages malveillants (typosquatting, protestware), la gestion de politiques et des scans CI authentifiés avec la base complète. Pour les équipes avec un budget, le plan payé vaut le coût pour un accès anticipé aux advisories. Pour les workflows full open-source, pip-audit + OSV-Scanner couvre la plupart des besoins sans compte.
OSV-Scanner V2 — Google’s Polyglot Answer
OSV-Scanner V2 — La Réponse Polyglotte de Google
OSV-Scanner, maintained by Google’s Open Source Security Team, is built on top of the osv.dev database — the largest open-source vulnerability database, aggregating advisories from NVD, GitHub, PyPI, RubyGems, Go, Rust, npm, and dozens more. OSV-Scanner V2, released in 2026, adds layer-aware container image scanning for Debian, Ubuntu, and Alpine, and guided remediation: it suggests the minimum upgrade path across your full dependency graph to fix the most vulnerabilities with the fewest changes.
OSV-Scanner, maintenu par l’équipe Open Source Security de Google, est construit sur la base osv.dev — la plus grande base de données de vulnérabilités open-source, agrégeant les advisories de NVD, GitHub, PyPI, RubyGems, Go, Rust, npm et des dizaines d’autres. OSV-Scanner V2, sorti en 2026, ajoute le scan d’images container avec conscience des couches pour Debian, Ubuntu et Alpine, et la remédiation guidée : il suggère le chemin de mise à jour minimum sur l’ensemble de votre graphe de dépendances pour corriger le maximum de vulnérabilités avec le moins de changements.
# Install via Go go install github.com/google/osv-scanner/cmd/osv-scanner@latest # Or download binary from GitHub releases # https://github.com/google/osv-scanner/releases # Scan current directory recursively osv-scanner scan --recursive . # Scan a requirements.txt osv-scanner scan --lockfile requirements.txt # Scan a pyproject.toml with lockfile osv-scanner scan --lockfile poetry.lock # JSON output osv-scanner scan --format json --recursive . # Guided remediation (interactive) osv-scanner fix --non-interactive --lockfile requirements.txt # Scan a Docker image (V2 feature) osv-scanner scan --docker python:3.12-slim
The key advantage of OSV-Scanner for Python teams is its polyglot reach:
a single command scans your Python lockfiles and your package.json,
go.mod, Cargo.lock, or pom.xml in one pass. This
is invaluable for full-stack teams and agencies maintaining diverse technology stacks.
For Python-only projects, pip-audit remains faster and more idiomatic — but if you
are scanning multiple ecosystems, OSV-Scanner eliminates tool sprawl.
L’avantage clé d’OSV-Scanner pour les équipes Python est sa portée
polyglotte : une seule commande scanne vos lockfiles Python et votre
package.json, go.mod, Cargo.lock ou
pom.xml en une seule passe. C’est inéstimable pour les équipes full-stack
et les agences qui maintiennent des stacks technologiques variés. Pour les projets
Python seuls, pip-audit reste plus rapide et plus idiomatique — mais si vous scannez
plusieurs écosystèmes, OSV-Scanner élimine la multiplication des outils.
pip-audit vs Safety vs OSV-Scanner: Full Comparison Table
pip-audit vs Safety vs OSV-Scanner : Tableau Comparatif Complet
| Feature | Fonctionnalité | pip-audit 2.10 | Safety CLI 3.7 | OSV-Scanner V2 |
|---|---|---|---|---|
| License / Cost | Licence / Coût | Apache 2.0 / Free | MIT / Freemium | Apache 2.0 / Free |
| Vulnerability database | Base de vulnérabilités | OSV.dev + PyPI Advisory DB | Proprietary (curated) + NVD | OSV.dev (NVD, GHSA, PyPI, Go, npm, Rust…) |
| Python ecosystems | Écosystèmes Python | pip, uv, poetry, pylock.toml | pip, poetry, Pipenv, uv, conda | pip, poetry, uv, conda |
| Polyglot support | Support polyglotte | Python only | Python + npm/yarn/pnpm | Python, npm, Go, Rust, Java, Ruby… |
| Transitive deps scan | Scan des déps transitives | Yes (default) | Yes | Yes (via lockfile) |
| Auto-fix | Correction automatique | Yes (--fix) |
Paid plan | Yes (osv-scanner fix) |
| SBOM output | Sortie SBOM | CycloneDX via extras | CycloneDX built-in | CycloneDX built-in |
| Container image scan | Scan image container | No | No | Yes (layer-aware, V2) |
| Malicious pkg detection | Détection packages malveillants | No | Paid plan | No |
| GitHub Action available | GitHub Action disponible | Yes (official) | Yes | Yes (official) |
| CVE recall (OSV) | Rappel CVE (OSV) | ~98% | ~96% + extras | ~98% |
CI/CD Integration: GitHub Actions Recipes
Intégration CI/CD : Recettes GitHub Actions
The right integration strategy depends on your stack. Here are battle-tested GitHub Actions workflows for each tool in 2026, following current security best practices (pinned action hashes, least-privilege permissions, fail-on-vuln gates).
La bonne stratégie d’intégration dépend de votre stack. Voici des workflows GitHub Actions éprouvés pour chaque outil en 2026, respectant les bonnes pratiques actuelles (hashes d’actions pinés, permissions minimales, portes fail-on-vuln).
pip-audit in GitHub Actions (official action)
pip-audit dans GitHub Actions (action officielle)
# .github/workflows/security-audit.yml name: Python Security Audit on: push: branches: [main] pull_request: schedule: - cron: '0 8 * * 1' # Weekly Monday scan permissions: contents: read jobs: pip-audit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.12' - name: Install dependencies run: pip install -r requirements.txt - name: Run pip-audit uses: pypa/gh-action-pip-audit@v1.1.0 with: inputs: requirements.txt # Fails the workflow if any vulnerability is found vulnerability-service: osv
OSV-Scanner for polyglot projects
OSV-Scanner pour projets polyglottes
# .github/workflows/osv-scan.yml name: OSV Vulnerability Scan on: push: pull_request: schedule: - cron: '0 9 * * 2' permissions: contents: read security-events: write # For SARIF upload to GitHub Security jobs: osv-scanner: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run OSV-Scanner uses: google/osv-scanner-action@v2 with: scan-args: |- --recursive --format sarif --output osv-results.sarif . - name: Upload SARIF to GitHub Security uses: github/codeql-action/upload-sarif@v3 if: always() with: sarif_file: osv-results.sarif
Uploading SARIF results to GitHub Security tab is a key advantage of OSV-Scanner: it surfaces vulnerabilities directly in Pull Request reviews and the repository’s Security → Code Scanning section, with no additional tooling needed.
L’upload des résultats SARIF dans le tab GitHub Security est un avantage clé d’OSV-Scanner : il expose les vulnérabilités directement dans les revues de Pull Requests et la section Sécurité → Analyse de code du dépôt, sans outillage supplémentaire.
PyPI Trusted Publishers: Securing Your Release Pipeline
PyPI Trusted Publishers : Sécuriser Votre Pipeline de Publication
Scanning your dependencies is only half the picture. If you publish to PyPI, your release pipeline is also an attack surface. PyPI Trusted Publishers (OIDC-based publishing) eliminates long-lived API tokens from your CI secrets — the same class of credential theft that enabled the 2026 TanStack supply chain attack and the Bitwarden CLI backdoor.
Scanner vos dépendances n’est que la moitié du tableau. Si vous publiez sur PyPI, votre pipeline de publication est aussi une surface d’attaque. Les PyPI Trusted Publishers (publication via OIDC) éliminent les tokens API long-durée de vos secrets CI — la même classe de vol de credentials qui a permis l’attaque supply chain TanStack 2026 et le backdoor Bitwarden CLI.
How it works: when your GitHub Actions workflow publishes to PyPI, it requests a short-lived OIDC token scoped to that specific workflow run. PyPI matches the token against your project’s configured Trusted Publisher, mints a temporary API token, and the token expires automatically when the job ends. No secret to store, no token to rotate, no long-lived credential to steal.
Comment ça fonctionne : quand votre workflow GitHub Actions publie sur PyPI, il demande un token OIDC à courte durée de vie scopeé à ce run de workflow spécifique. PyPI fait correspondre le token avec le Trusted Publisher configuré pour votre projet, crée un token API temporaire, et le token expire automatiquement quand le job se termine. Aucun secret à stocker, aucun token à effectuer une rotation, aucun credential long-terme à voler.
# .github/workflows/publish.yml name: Publish to PyPI on: release: types: [published] permissions: contents: read id-token: write # Required for OIDC token request jobs: publish: runs-on: ubuntu-latest environment: release # Requires manual approval (best practice) steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.12' - name: Build distribution run: | pip install build python -m build - name: Publish to PyPI uses: pypa/gh-action-pypi-publish@release/v1 # No API token needed — OIDC handles authentication # Register this workflow as a Trusted Publisher at pypi.org first
Critical offboarding note: Trusted Publishers are registered to projects, not to users. Removing a maintainer from your PyPI project does NOT automatically remove any Trusted Publishers they registered. Always audit your project’s Trusted Publishers list when offboarding a collaborator.
Note d’offboarding critique : Les Trusted Publishers sont enregistrés sur les projets, pas sur les utilisateurs. Retirer un mainteneur de votre projet PyPI ne supprime PAS automatiquement les Trusted Publishers qu’il a enregistrés. Auditez toujours la liste des Trusted Publishers de votre projet lors du départ d’un collaborateur.
Which Tool to Use: A Decision Guide for 2026
Quel Outil Choisir : Guide de Décision 2026
There is no universally best tool — the right choice depends on your team’s stack, budget, and risk profile. Here is the decision matrix:
Il n’existe pas de meilleur outil universel — le bon choix dépend du stack, du budget et du profil de risque de votre équipe. Voici la matrice de décision :
- Python-only team, fully open-source, tight CI : use
pip-audit. It is maintained by PyPA, free forever, integrates in 3 lines
of GitHub Actions, and resolves transitive dependencies correctly. Add
--aliasesand--format jsonfor machine-readable output. - Équipe Python seule, full open-source, CI serré : utilisez
pip-audit. Maintenu par PyPA, gratuit à vie, intègre en 3 lignes de
GitHub Actions et résout les dépendances transitives correctement. Ajoutez
--aliaseset--format jsonpour une sortie lisible par machine. - Full-stack team or agency (Python + Node.js + Go + others) : use OSV-Scanner. One tool, one SARIF report, all ecosystems. The SARIF upload to GitHub Security tab is worth it alone.
- Équipe full-stack ou agence (Python + Node.js + Go + autres) : utilisez OSV-Scanner. Un seul outil, un rapport SARIF, tous les écosystèmes. L’upload SARIF dans l’onglet GitHub Security en vaut seul la peine.
- Team needing earliest-possible advisory detection : add Safety CLI (paid plan) alongside pip-audit. Safety’s curated database surfaces advisories before they reach NVD/OSV, which matters for zero-day response time.
- Équipe ayant besoin de la détection d’advisories la plus rapide : ajoutez Safety CLI (plan payé) en complément de pip-audit. La base curate de Safety expose les advisories avant qu’elles atteignent NVD/OSV, ce qui compte pour le temps de réponse aux zero-days.
- Best practice for everyone: layer all three. pip-audit as the fast, idiomatic gate in every PR. OSV-Scanner weekly for polyglot coverage. CVE OptiBot for continuous monitoring that alerts you when a new CVE drops for a package already in production — even between CI runs.
- Meilleure pratique pour tous : cumulez les trois. pip-audit comme porte rapide et idiomatique sur chaque PR. OSV-Scanner hebdomadairement pour la couverture polyglotte. CVE OptiBot pour le monitoring continu qui vous alerte quand une nouvelle CVE touche un package déjà en production — même entre les exécutions CI.
Frequently Asked Questions
Questions Fréquentes
Is pip-audit better than Safety CLI?
pip-audit est-il meilleur que Safety CLI ?
For open-source, fully free workflows, pip-audit is the preferred choice: it is maintained by PyPA, free forever, and achieves ~98% CVE recall from the OSV database. Safety CLI’s proprietary database catches some advisories earlier, but the full benefit requires a paid plan. The tools are complementary, not competitors.
Pour les workflows open-source et entièrement gratuits, pip-audit est le choix préféré : maintenu par PyPA, gratuit à vie, ~98% de rappel CVE depuis la base OSV. La base propriétaire de Safety détecte certains advisories plus tôt, mais le bénéfice complet nécessite un plan payé. Les deux outils sont complémentaires, pas concurrents.
Does pip-audit scan transitive dependencies?
pip-audit scanne-t-il les dépendances transitives ?
Yes. pip-audit resolves and audits the full transitive dependency tree by
default. Never pass --no-deps unless you are auditing a flat, fully-pinned
requirements file with no transitive packages. When scanning a requirements.txt
generated with pip-compile or uv pip compile, all transitive
dependencies are already included and pip-audit will check every one.
Oui. pip-audit résout et audite l’arbre complet des dépendances transitives
par défaut. Ne passez jamais --no-deps sauf si vous auditez un fichier
requirements plat et entièrement piné. Quand vous scannez un requirements.txt
généré avec pip-compile ou uv pip compile, toutes les
dépendances transitives sont déjà incluses et pip-audit les vérifiera toutes.
What is OSV-Scanner used for in Python projects?
A quoi sert OSV-Scanner dans les projets Python ?
OSV-Scanner is Google’s polyglot vulnerability scanner that scans any package lockfile format (requirements.txt, poetry.lock, package.json, go.sum, Cargo.lock, pom.xml…) in a single command. For Python-only projects, pip-audit is faster and more idiomatic. For full-stack repos, OSV-Scanner eliminates the need for one tool per language and uploads SARIF results directly to GitHub Security.
OSV-Scanner est le scanner polyglotte de Google qui scanne n’importe quel format de lockfile (requirements.txt, poetry.lock, package.json, go.sum, Cargo.lock, pom.xml…) en une seule commande. Pour les projets Python seuls, pip-audit est plus rapide et plus idiomatique. Pour les dépôts full-stack, OSV-Scanner élimine le besoin d’un outil par langage et upload les résultats SARIF directement dans GitHub Security.
How do PyPI Trusted Publishers prevent supply chain attacks?
Comment les PyPI Trusted Publishers préviennent-ils les attaques supply chain ?
Traditional PyPI publishing uses long-lived API tokens stored in CI secrets. If those secrets are stolen (via a compromised workflow, a malicious PR, or a leaked environment variable), an attacker can publish any version of your package. Trusted Publishers replace long-lived tokens with short-lived OIDC tokens scoped to a single workflow run. There is nothing to steal and nothing to rotate.
La publication PyPI traditionnelle utilise des tokens API long-durée de vie stockés dans les secrets CI. Si ces secrets sont volés (via un workflow compromis, une PR malveillante ou une variable d’environnement fuytée), un attaquant peut publier n’importe quelle version de votre package. Les Trusted Publishers remplacent les tokens long-terme par des tokens OIDC à courte durée de vie scopeés à un seul run de workflow. Rien à voler, rien à révoquer périodiquement.
Can pip-audit auto-fix vulnerabilities?
pip-audit peut-il corriger automatiquement les vulnérabilités ?
Yes. Running pip-audit --fix automatically upgrades vulnerable
packages to the minimum fixed version. It modifies your virtual environment in place.
For lockfile-based projects, you should regenerate the lockfile after a --fix
run to keep it in sync: pip-compile requirements.in or
uv pip compile after the fix. Always review the diff before committing.
Oui. Lancer pip-audit --fix met automatiquement à jour les
packages vulnérables vers la version minimale corrigée. Il modifie votre environnement
virtuel sur place. Pour les projets basés sur lockfile, regénérez le lockfile après un
--fix pour le maintenir synchronisé : pip-compile requirements.in
ou uv pip compile. Reviewez toujours le diff avant de committer.
What does “141,000 PyPI packages permit vulnerable version ranges” mean in practice?
Que signifie en pratique “141 000 packages PyPI autorisent des plages vulnérables” ?
When you specify requests>=2.25.0 in your
pyproject.toml, you permit any version ≥2.25.0, including versions with known
CVEs. pip-audit and Safety will flag those if they exist. The fix: always scan your
lockfile (which pins exact resolved versions), run pip-audit in CI on every PR,
and use a continuous monitoring tool that re-scans daily even when your code hasn’t
changed.
Quand vous spécifiez requests>=2.25.0 dans votre
pyproject.toml, vous autorisez toute version ≥2.25.0, y compris les versions
avec des CVE connues. pip-audit et Safety les signaleront le cas échéant. La solution :
scannez toujours votre lockfile (qui pin les versions exactes résolues), lancez
pip-audit en CI sur chaque PR, et utilisez un outil de monitoring continu qui re-scanne
quotidiennement même quand votre code n’a pas changé.
pip-audit runs in CI — but who alerts you between runs?
pip-audit tourne en CI — mais qui vous alerte entre les runs ?
A CVE can be published on a Thursday afternoon against a package you pinned three months ago. Your next CI run might not happen until Monday. CVE OptiBot scans your Python lockfiles daily and sends an immediate alert the moment a new vulnerability is disclosed for any dependency in your production environment — whether you last pushed code two days or two months ago.
Une CVE peut être publiée un jeudi après-midi sur un package que vous avez piné il y a trois mois. Votre prochain run CI ne surviendra peut-être que lundi. CVE OptiBot scanne vos lockfiles Python quotidiennement et envoie une alerte immédiate dès qu’une nouvelle vulnérabilité est divulguée pour n’importe quelle dépendance de votre environnement de production — que vous ayez pousé du code il y a deux jours ou deux mois.
Start free dependency monitoring Démarrer le monitoring gratuit