Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
pip-audit — Esegue audit degli ambienti Python, dei file dei requisiti e degli alberi delle dipendenze per vulnerabilità di sicurezza note e può correggerle automaticamente | Kitploit
Strumenti/GitHubGitHub/pypa/pip-audit
Scanner di VulnerabilitàDevSecOpsRilevamento SegretiSicurezza della Supply Chain
GitHubpypa/pip-audit

pip-audit

Esegue audit degli ambienti Python, dei file dei requisiti e degli alberi delle dipendenze per vulnerabilità di sicurezza note e può correggerle automaticamente

Vedi Repository
1.3k11986 giorni faRevisionato da Kitploit
Sito web

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

pip-audit

CI PyPI version Packaging status OpenSSF Scorecard License

pip-audit è uno strumento per scansionare ambienti Python alla ricerca di pacchetti con vulnerabilità note. Utilizza il Python Packaging Advisory Database (https://github.com/pypa/advisory-database) tramite l'API JSON di PyPI come fonte di report di vulnerabilità.

Questo progetto è mantenuto in parte da Trail of Bits con il supporto di Google. Questo non è un prodotto ufficiale di Google o Trail of Bits.

Indice

  • Funzionalità
  • Installazione
    • Pacchetti di terze parti
    • GitHub Actions
    • pre-commit supporto
  • Utilizzo
    • Variabili d'ambiente
    • Codici di uscita
    • Simulazioni
  • Esempi
  • Risoluzione dei problemi
  • Suggerimenti e trucchi
  • Modello di sicurezza
  • Licenze
  • Contribuire
  • Codice di condotta

Funzionalità

  • Supporto per l'audit di ambienti locali e file in formato requirements
  • Supporto per molteplici servizi di vulnerabilità (PyPI, OSV)
  • Supporto per l'emissione di SBOM in XML o JSON CycloneDX
  • Supporto per la correzione automatica delle dipendenze vulnerabili (--fix)
  • Formati di output leggibili da umani e macchine (a colonne, Markdown, JSON)
  • Riutilizza senza problemi le tue cache locali di pip

Installazione

pip-audit richiede Python 3.10 o successivo e può essere installato direttamente tramite pip:```bash python -m pip install pip-audit

root@kitploit:~
### Pacchetti di terze parti

Ci sono diversi pacchetti **di terze parti** per `pip-audit`. Le matrici e i badge sottostanti elencano alcuni di essi:

[![Packaging status](https://repology.org/badge/vertical-allrepos/python:pip-audit.svg)](https://repology.org/project/python:pip-audit/versions)
[![Packaging status](https://repology.org/badge/vertical-allrepos/pip-audit.svg)](https://repology.org/project/pip-audit/versions)
[![Conda - Platform](https://img.shields.io/conda/pn/conda-forge/pip-audit?logo=anaconda&style=flat)][#conda-forge-package]
[![Conda (channel only)](https://img.shields.io/conda/vn/conda-forge/pip-audit?logo=anaconda&style=flat&color=orange)][#conda-forge-package]

[#conda-forge-package]: https://anaconda.org/conda-forge/pip-audit

In particolare, `pip-audit` può essere installato tramite `conda`:```bash
conda install -c conda-forge pip-audit

I pacchetti di terze parti non sono supportati direttamente da questo progetto. Consulta la documentazione del tuo gestore di pacchetti per una guida all'installazione più dettagliata.

GitHub Actions

pip-audit ha una GitHub Action ufficiale!

Puoi installarla dal GitHub Marketplace, o aggiungerla manualmente alla tua CI:```yaml jobs: pip-audit: steps: - uses: pypa/[email protected] with: inputs: requirements.txt

root@kitploit:~
Vedi la
[documentazione dell'azione](https://github.com/pypa/gh-action-pip-audit/blob/main/README.md)
per maggiori dettagli ed esempi di utilizzo.

### Supporto di `pre-commit`

`pip-audit` supporta [`pre-commit`](https://pre-commit.com/).

Ad esempio, utilizzando `pip-audit` tramite `pre-commit` per verificare un file dei requisiti:```yaml
  - repo: https://github.com/pypa/pip-audit
    rev: v2.10.1
    hooks:
      -   id: pip-audit
          args: ["-r", "requirements.txt"]

ci:
  # Leave pip-audit to only run locally and not in CI
  # pre-commit.ci does not allow network calls
  skip: [pip-audit]

Tutti gli argomenti di pip-audit documentati di seguito possono essere passati.

Utilizzo

Puoi eseguire pip-audit come programma autonomo, o tramite python -m:```bash pip-audit --help python -m pip_audit --help

root@kitploit:~
<!-- @begin-pip-audit-help@ -->```
usage: pip-audit [-h] [-V] [-l] [-r REQUIREMENT] [--locked] [-f FORMAT]
                 [-s SERVICE] [--osv-url OSV_URL] [-d] [-S]
                 [--desc [{on,off,auto}]] [--aliases [{on,off,auto}]]
                 [--cache-dir CACHE_DIR] [--progress-spinner {on,off}]
                 [--timeout TIMEOUT] [--path PATH] [-v] [--fix]
                 [--require-hashes] [--index-url INDEX_URL]
                 [--extra-index-url URL] [--skip-editable] [--no-deps]
                 [-o FILE] [--ignore-vuln ID] [--disable-pip]
                 [project_path]

audit the Python environment for dependencies with known vulnerabilities

positional arguments:
  project_path          audit a local Python project at the given path
                        (default: None)

options:
  -h, --help            show this help message and exit
  -V, --version         show program's version number and exit
  -l, --local           show only results for dependencies in the local
                        environment (default: False)
  -r REQUIREMENT, --requirement REQUIREMENT
                        audit the given requirements file; this option can be
                        used multiple times (default: None)
  --locked              audit lock files from the local Python project. This
                        flag only applies to auditing from project paths
                        (default: False)
  -f FORMAT, --format FORMAT
                        the format to emit audit results in (choices: columns,
                        json, cyclonedx-json, cyclonedx-xml, markdown)
                        (default: columns)
  -s SERVICE, --vulnerability-service SERVICE
                        the vulnerability service to audit dependencies
                        against (choices: osv, pypi, esms) (default: pypi)
  --osv-url OSV_URL     URL to use for the OSV API instead of the default
                        (default: https://api.osv.dev/v1/query)
  -d, --dry-run         without `--fix`: collect all dependencies but do not
                        perform the auditing step; with `--fix`: perform the
                        auditing step but do not perform any fixes (default:
                        False)
  -S, --strict          fail the entire audit if dependency collection fails
                        on any dependency (default: False)
  --desc [{on,off,auto}]
                        include a description for each vulnerability; `auto`
                        defaults to `on` for the `json` format. This flag has
                        no effect on the `cyclonedx-json` or `cyclonedx-xml`
                        formats. (default: auto)
  --aliases [{on,off,auto}]
                        includes alias IDs for each vulnerability; `auto`
                        defaults to `on` for the `json` format. This flag has
                        no effect on the `cyclonedx-json` or `cyclonedx-xml`
                        formats. (default: auto)
  --cache-dir CACHE_DIR
                        the directory to use as an HTTP cache for PyPI; uses
                        the `pip` HTTP cache by default (default: None)
  --progress-spinner {on,off}
                        display a progress spinner (default: on)
  --timeout TIMEOUT     set the socket timeout (default: 15)
  --path PATH           restrict to the specified installation path for
                        auditing packages; this option can be used multiple
                        times (default: [])
  -v, --verbose         run with additional debug logging; supply multiple
                        times to increase verbosity (default: 0)
  --fix                 automatically upgrade dependencies with known
                        vulnerabilities (default: False)
  --require-hashes      require a hash to check each requirement against, for
                        repeatable audits; this option is implied when any
                        package in a requirements file has a `--hash` option.
                        (default: False)
  --index-url INDEX_URL
                        base URL of the Python Package Index; this should
                        point to a repository compliant with PEP 503 (the
                        simple repository API); this will be resolved by pip
                        if not specified (default: None)
  --extra-index-url URL
                        extra URLs of package indexes to use in addition to
                        `--index-url`; should follow the same rules as
                        `--index-url` (default: [])
  --skip-editable       don't audit packages that are marked as editable
                        (default: False)
  --no-deps             don't perform any dependency resolution; requires all
                        requirements are pinned to an exact version (default:
                        False)
  -o FILE, --output FILE
                        output results to the given file (default: stdout)
  --ignore-vuln ID      ignore a specific vulnerability by its vulnerability
                        ID; this option can be used multiple times (default:
                        [])
  --disable-pip         don't use `pip` for dependency resolution; this can
                        only be used with hashed requirements files or if the
                        `--no-deps` flag has been provided (default: False)

Variabili d'ambiente

pip-audit consente agli utenti di configurare alcuni flag tramite variabili d'ambiente:

FlagEquivalente d'ambienteEsempio
--formatPIP_AUDIT_FORMATPIP_AUDIT_FORMAT=markdown
--vulnerability-servicePIP_AUDIT_VULNERABILITY_SERVICEPIP_AUDIT_VULNERABILITY_SERVICE=osv
--descPIP_AUDIT_DESCPIP_AUDIT_DESC=off
--progress-spinnerPIP_AUDIT_PROGRESS_SPINNERPIP_AUDIT_PROGRESS_SPINNER=off
--outputPIP_AUDIT_OUTPUTPIP_AUDIT_OUTPUT=/tmp/example

Codici di uscita

Al termine, pip-audit terminerà con un codice che indica il suo stato.

I codici attuali sono:

  • 0: Nessuna vulnerabilità nota rilevata.
  • 1: Una o più vulnerabilità note trovate.

Il codice di uscita di pip-audit non può essere soppresso. Vedere Sopprimere i codici di uscita da pip-audit per alternative supportate.

Esecuzioni di prova (dry run)

pip-audit supporta il flag --dry-run, che può essere usato per controllare se un passo di audit (o fix) viene effettivamente eseguito.

  • Da solo, pip-audit --dry-run salta il passo di audit e stampa il numero di dipendenze che sarebbero state sottoposte ad audit.
  • In modalità fix, pip-audit --fix --dry-run esegue il passo di audit e stampa il comportamento di fix (cioè quali dipendenze sarebbero state aggiornate o saltate) che sarebbe stato eseguito.

Esempi

Analizza le dipendenze per l'ambiente Python corrente:```console $ pip-audit No known vulnerabilities found

root@kitploit:~
Controlla le dipendenze per un dato file di requisiti:```console
$ pip-audit -r ./requirements.txt
No known vulnerabilities found

Controlla le dipendenze per un file dei requisiti, escludendo i pacchetti di sistema:```console $ pip-audit -r ./requirements.txt -l No known vulnerabilities found

root@kitploit:~
Verifica delle dipendenze per un progetto Python locale:```console
$ pip-audit .
No known vulnerabilities found

Verifica i file di blocco per un progetto Python locale:```console $ pip-audit --locked . No known vulnerabilities found

root@kitploit:~
`pip-audit` cerca nel percorso fornito vari file "progetto" Python.
Al momento, sono supportati solo `pyproject.toml` e `pylock.*.toml`.

Controlla le dipendenze quando sono presenti vulnerabilità:```console
$ pip-audit
Found 2 known vulnerabilities in 1 package
Name  Version ID             Fix Versions
----  ------- -------------- ------------
Flask 0.5     PYSEC-2019-179 1.0
Flask 0.5     PYSEC-2018-66  0.12.3

Controlla le dipendenze compresi gli alias:```console $ pip-audit --aliases Found 2 known vulnerabilities in 1 package Name Version ID Fix Versions Aliases


Flask 0.5 PYSEC-2019-179 1.0 CVE-2019-1010083, GHSA-5wv5-4vpf-pj6m Flask 0.5 PYSEC-2018-66 0.12.3 CVE-2018-1000656, GHSA-562c-5r94-xh97

root@kitploit:~
Controlla le dipendenze incluse le descrizioni:```console
$ pip-audit --desc
Found 2 known vulnerabilities in 1 package
Name  Version ID             Fix Versions Description
----  ------- -------------- ------------ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Flask 0.5     PYSEC-2019-179 1.0          The Pallets Project Flask before 1.0 is affected by: unexpected memory usage. The impact is: denial of service. The attack vector is: crafted encoded JSON data. The fixed version is: 1. NOTE: this may overlap CVE-2018-1000656.
Flask 0.5     PYSEC-2018-66  0.12.3       The Pallets Project flask version Before 0.12.3 contains a CWE-20: Improper Input Validation vulnerability in flask that can result in Large amount of memory usage possibly leading to denial of service. This attack appear to be exploitable via Attacker provides JSON data in incorrect encoding. This vulnerability appears to have been fixed in 0.12.3. NOTE: this may overlap CVE-2019-1010083.

Controlla le dipendenze in formato JSON:```console $ pip-audit -f json | python -m json.tool Found 2 known vulnerabilities in 1 package [ { "name": "flask", "version": "0.5", "vulns": [ { "id": "PYSEC-2019-179", "fix_versions": [ "1.0" ], "aliases": [ "CVE-2019-1010083", "GHSA-5wv5-4vpf-pj6m" ], "description": "The Pallets Project Flask before 1.0 is affected by: unexpected memory usage. The impact is: denial of service. The attack vector is: crafted encoded JSON data. The fixed version is: 1. NOTE: this may overlap CVE-2018-1000656." }, { "id": "PYSEC-2018-66", "fix_versions": [ "0.12.3" ], "aliases": [ "CVE-2018-1000656", "GHSA-562c-5r94-xh97" ], "description": "The Pallets Project flask version Before 0.12.3 contains a CWE-20: Improper Input Validation vulnerability in flask that can result in Large amount of memory usage possibly leading to denial of service. This attack appear to be exploitable via Attacker provides JSON data in incorrect encoding. This vulnerability appears to have been fixed in 0.12.3. NOTE: this may overlap CVE-2019-1010083." } ] }, { "name": "jinja2", "version": "3.0.2", "vulns": [] }, { "name": "pip", "version": "21.3.1", "vulns": [] }, { "name": "setuptools", "version": "57.4.0", "vulns": [] }, { "name": "werkzeug", "version": "2.0.2", "vulns": [] }, { "name": "markupsafe", "version": "2.0.1", "vulns": [] } ]

root@kitploit:~
Verifica e tenta di aggiornare automaticamente le dipendenze vulnerabili:```console
$ pip-audit --fix
Found 2 known vulnerabilities in 1 package and fixed 2 vulnerabilities in 1 package
Name  Version ID             Fix Versions Applied Fix
----- ------- -------------- ------------ ----------------------------------------
flask 0.5     PYSEC-2019-179 1.0          Successfully upgraded flask (0.5 => 1.0)
flask 0.5     PYSEC-2018-66  0.12.3       Successfully upgraded flask (0.5 => 1.0)

Risoluzione dei problemi

Hai risolto un problema con pip-audit? Aiutaci contribuendo a questa sezione!

pip-audit mostra report di vulnerabilità irrilevanti!

In un mondo perfetto, i feed di vulnerabilità avrebbero un rapporto segnale/rumore infinito: ogni report di vulnerabilità sarebbe (1) corretto e (2) applicabile a ogni utilizzo di ogni dipendenza.

Sfortunatamente, nessuna di queste garanzie è certa: i feed di vulnerabilità non sono immuni da report estranei o spam, e non tutti gli utilizzi di una particolare dipendenza corrispondono a tutte le potenziali classi di vulnerabilità.

Se le esecuzioni di pip-audit producono report di vulnerabilità che non sono attuabili per la tua applicazione o caso d'uso specifico, puoi usare l'opzione --ignore-vuln ID per ignorare specifici report di vulnerabilità. --ignore-vuln supporta alias, quindi puoi usare un ID GHSA-xxx o CVE-xxx invece di un ID PYSEC-xxx se il report in questione non ha un ID PYSEC.

Ad esempio, ecco come potresti ignorare GHSA-w596-4wvx-j9j6, che è una fonte comune di report rumorosi e falsi positivi per gli utenti di pytest:```console

Run the audit as normal, but exclude any reports that match GHSA-w596-4wvx-j9j6

$ pip-audit --ignore-vuln GHSA-w596-4wvx-j9j6

root@kitploit:~
L'opzione `--ignore-vuln ID` funziona con tutte le altre opzioni di risoluzione delle dipendenze e di auditing, il che significa che dovrebbe funzionare correttamente con input in formato requirements, feed di vulnerabilità alternativi e così via.

Può anche essere passata più volte, per ignorare più report:```console
# Run the audit as normal, but exclude any reports that match these IDs
$ pip-audit --ignore-vuln CVE-XXX-YYYY --ignore-vuln CVE-ZZZ-AAAA

pip-audit impiega più tempo del previsto!

A seconda di come lo utilizzi, pip-audit potrebbe dover eseguire la propria risoluzione delle dipendenze, che può richiedere più o meno lo stesso tempo di pip install per un progetto. Consulta il modello di sicurezza per una spiegazione.

Hai due opzioni per evitare la risoluzione delle dipendenze: eseguire un audit su un ambiente preinstallato oppure assicurarti che le dipendenze siano già completamente risolte.

Se sai di aver già configurato completamente un ambiente equivalente a quello che verrebbe sottoposto ad audit da pip-audit -r requirements.txt, puoi semplicemente riutilizzarlo:```console

Note the absence of any "input" arguments, indicating that the environment is used.

$ pip-audit

Optionally filter out non-local packages, for virtual environments:

$ pip-audit --local

root@kitploit:~
In alternativa, se il tuo input è completamente bloccato (e opzionalmente hashato),
puoi dire a `pip-audit` di saltare la risoluzione delle dipendenze con `--no-deps`
(bloccato senza hash) o `--require-hashes` (bloccato con hash inclusi).

La seconda è equivalente a `pip`'s
[modalità di controllo hash](https://pip.pypa.io/en/stable/cli/pip_install/#hash-checking-mode)
ed è preferibile, poiché offre una maggiore integrità.```console
# fails if any dependency is not fully pinned
$ pip-audit --no-deps -r requirements.txt

# fails if any dependency is not fully pinned *or* is missing hashes
$ pip-audit --require-hashes -r requirements.txt

pip-audit non riesce ad autenticarsi al mio indice di terze parti!

Indici autenticati di terze parti o privati

pip-audit supporta --index-url e --extra-index-url per configurare un indice alternativo o supplementare di pacchetti, proprio come pip.

Quando non autenticati, questi indici dovrebbero funzionare come previsto. Tuttavia, quando un indice di terze parti richiede autenticazione, pip-audit ha alcune restrizioni aggiuntive rispetto al normale pip:

  • L'autenticazione interattiva non è supportata. In altre parole: pip-audit non ti chiederà un nome utente/password per l'indice.
  • L'autenticazione tramite keyring di pip è supportata, ma in modo limitato: pip-audit utilizza il provider subprocess per keyring, poiché gli audit avvengono in ambienti virtuali isolati. Il provider subprocess a sua volta è soggetto a ulteriori restrizioni (come la necessità di un nome utente); la documentazione di pip spiega queste restrizioni in dettaglio.

In aggiunta a quanto sopra, alcuni indici di terze parti hanno nomi utente obbligatori e fissi. Ad esempio, per Google Artifact Registry, il nome utente fisso è oauth2accesstoken. Vedere #742 e pip#11971 per ulteriori informazioni.

Suggerimenti e trucchi

Esecuzione su un progetto pipenv

pipenv utilizza sia un file Pipfile che Pipfile.lock per tracciare e congelare le dipendenze invece di un file requirements.txt. pip-audit non può elaborare direttamente i file Pipfile[.lock], tuttavia, questi possono essere convertiti in un file requirements.txt supportato contro cui pip-audit può essere eseguito. pipenv ha un comando integrato per convertire le dipendenze in un file requirements.txt (a partire dalla v2022.4.8):```console $ pipenv run pip-audit -r <(pipenv requirements)

root@kitploit:~
### Soppressione dei codici di uscita da `pip-audit`

`pip-audit` non supporta intenzionalmente la soppressione interna dei propri codici di uscita.

Gli utenti che devono sopprimere una chiamata fallita di `pip-audit` possono utilizzare uno dei modi standard della shell per farlo:

pip-audit ... || true # On POSIX shells pip-audit ... || ver # On Windows Powershell

root@kitploit:~
pip-audit || true
```
oppure, per uscire completamente:```bash
pip-audit || exit 0
```
Il codice di uscita può anche essere catturato e gestito esplicitamente:```bash
pip-audit
exitcode="${?}"
# do something with ${exitcode}
```
Vedi [Codici di uscita](#exit-codes) per un elenco dei codici potenziali che necessitano di gestione.

### Segnalazione solo delle vulnerabilità risolvibili

Nei flussi di lavoro di sviluppo, potresti voler ignorare le vulnerabilità che non sono state ancora risolte e investigarle solo nel processo di rilascio. `pip-audit` non supporta l'ignorare le vulnerabilità non risolte. Tuttavia, puoi esportare il suo output in formato JSON ed elaborarlo esternamente. Ad esempio, se vuoi uscire con un codice non zero solo quando le vulnerabilità rilevate hanno versioni di fix conosciute, puoi elaborare l'output usando [jq](https://github.com/jqlang/jq) come:```shell
test -z "$(pip-audit -r requirements.txt --format=json 2>/dev/null | jq '.dependencies[].vulns[].fix_versions[]')"
```
Un esempio semplice (e inefficiente) dell'utilizzo di questo metodo potrebbe essere:```shell
test -z "$(pip-audit -r requirements.txt --format=json 2>/dev/null | jq '.dependencies[].vulns[].fix_versions[]')" || pip-audit -r requirements.txt
```
che esegue `pip-audit` come al solito e termina con un codice diverso da zero solo se esistono versioni corrette per le vulnerabilità note.

## Modello di Sicurezza

Questa sezione esiste per descrivere le ipotesi di sicurezza che **puoi** e **non devi** fare quando usi `pip-audit`.

TL;DR: **Se non lo `pip install`eresti, non dovresti `pip audit`arlo.**

`pip-audit` è uno strumento per controllare gli ambienti Python alla ricerca di pacchetti con *vulnerabilità note*. Una "vulnerabilità nota" è un difetto segnalato pubblicamente in un pacchetto che, se non corretto, *potrebbe* permettere a un attore malevolo di compiere azioni non desiderate.

`pip-audit` **può** proteggerti dalle vulnerabilità note dicendoti quando le hai e come dovresti aggiornarle. Ad esempio, se hai `somepackage==1.2.3` nel tuo ambiente, `pip-audit` **può** dirti che deve essere aggiornato a `1.2.4`.

Puoi **assumere** che `pip-audit` farà del suo meglio per *risolvere completamente* tutte le tue dipendenze Python e *o* controllarle completamente *oppure* dichiarare esplicitamente quali ha saltato e perché.

`pip-audit` **non** è un analizzatore statico di codice. Analizza alberi delle dipendenze, non codice, e **non può** garantire che risoluzioni arbitrarie delle dipendenze avvengano staticamente. Per capire perché, fai riferimento all'[eccellente articolo di Dustin Ingram sulla risoluzione delle dipendenze in Python](https://dustingram.com/articles/2018/03/05/why-pypi-doesnt-know-dependencies/).

Pertanto: **non devi** dare per scontato che `pip-audit` ti **difenda** da pacchetti malevoli. In particolare, è **sbagliato** considerare `pip-audit -r INPUT` come una variante "più sicura" di `pip-audit`. A tutti gli effetti, `pip-audit -r INPUT` è funzionalmente equivalente a `pip install -r INPUT`, con una piccola dose di **isolamento non di sicurezza** per evitare conflitti con i tuoi ambienti locali.

`pip-audit` è prima di tutto uno strumento di controllo per pacchetti *Python*. **Non devi** presumere che `pip-audit` rilevi o segnali vulnerabilità "transitive" che potrebbero essere esposte attraverso pacchetti Python, ma non fanno effettivamente parte del pacchetto stesso. Ad esempio, è improbabile che le fonti di informazioni sulle vulnerabilità di `pip-audit` includano un avviso per una libreria condivisa vulnerabile che un popolare pacchetto Python *potrebbe* utilizzare, poiché la versione del pacchetto Python non è fortemente collegata alla versione della libreria condivisa.

## Licenza

`pip-audit` è concesso in licenza secondo la licenza Apache 2.0.

`pip-audit` riutilizza e modifica esempi da [`resolvelib`](https://github.com/sarugaku/resolvelib), che è concesso in licenza secondo la licenza ISC.

## Contributi

Vedi [la documentazione per contribuire](https://github.com/pypa/pip-audit/blob/main/CONTRIBUTING.md) per i dettagli.

## Codice di Condotta

Chiunque interagisca con questo progetto è tenuto a seguire il [Codice di Condotta della PSF](https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md).
Scarica lo strumento