123% más CVE notificadas al día en 2026 que el año pasado.

Dependencias

pip-audit

pip-audit escanea las dependencias de Python en busca de paquetes con vulnerabilidades conocidas. Procede de la Python Packaging Authority y funciona con entornos, archivos de requisitos y archivos de proyecto. Python no tiene un equivalente de npm audit integrado en pip, así que esta es la forma habitual de conseguirlo.

Actualizado el

Cómo ejecutar 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

De forma predeterminada, consulta los paquetes a través de la API JSON de PyPI, que se nutre de la Python Packaging Advisory Database, y puede usar OSV en su lugar. Consulte la lista completa de opciones en la página del proyecto.

Cuidado con lo que audita

Esto sorprende a muchas personas. Auditar un archivo de requisitos resuelve sus dependencias, y el proyecto advierte de que pip-audit -r INPUT equivale funcionalmente a pip install -r INPUT. La instalación de paquetes puede ejecutar código, así que un paquete malicioso podría ejecutarse durante la auditoría. La regla del propio proyecto es sencilla: si no haría pip install de algo, no haga pip audit de ello.

Esto también significa que la comprobación no puede protegerle de un paquete que aún no tiene aviso, como un paquete nuevo de typosquatting o de slopsquatting.

Ejecutar pip-audit en CI

Existe una GitHub Action oficial, pypa/gh-action-pip-audit, o puede ejecutar el comando usted mismo. Termina con un código distinto de cero cuando encuentra una vulnerabilidad, así que un aviso nuevo puede hacer fallar un build sin ningún cambio en el código.

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

Audite el mismo conjunto de dependencias que distribuye. Los requisitos con versiones exactas y hashes le dan un resultado estable. Para ver cómo encaja con otras comprobaciones, consulte dónde ejecutar los escaneos SCA.

Qué no cubre pip-audit

  • Su código. Analiza árboles de dependencias, no código fuente. Para eso, consulte SAST frente a SCA.
  • Las bibliotecas nativas. Los wheels de Python suelen incluir bibliotecas de C, y el proyecto indica que no detecta vulnerabilidades transitivas en bibliotecas compartidas que no son de Python.
  • Todo lo demás del build. Su imagen base, los paquetes del sistema y las actions de CI quedan fuera de su alcance.
  • Los paquetes maliciosos nuevos. Coteja avisos conocidos.
  • El build que se distribuyó. La resolución en Python varía según el entorno, así que una auditoría en otra máquina puede ver versiones distintas de las de la versión publicada. Sin un lockfile, el orden de resolución también puede variar.

pip-audit frente a otros escáneres de Python

Herramienta Indicada para Nota
pip-audit Dependencias de Python, gratis Solo Python
Trivy, Grype Paquetes de Python dentro de una imagen de contenedor También cubren paquetes del sistema operativo
Herramientas comerciales de SCA Políticas y flujos de trabajo en muchos lenguajes y equipos Consulte las mejores herramientas de SCA

pip-audit y CRACI

pip-audit es una comprobación sensata en los pull requests. CRACI trabaja desde el otro lado: como su runner de GitHub Actions, registra cada paquete que un job descargó de PyPI y de cualquier otra fuente, a cualquier profundidad del árbol, en una SBOM del build que produjo la versión. Después sigue comprobando esa SBOM a medida que se publican nuevas vulnerabilidades, de modo que sabe si la versión del año pasado está afectada. Consulte SBOM durante el build y generación de SBOM durante el build.

pip-audit: preguntas frecuentes

¿Qué es pip-audit?

Una herramienta de la Python Packaging Authority que escanea entornos de Python, archivos de requisitos y proyectos en busca de paquetes con vulnerabilidades conocidas.

¿Existe un npm audit para Python?

pip-audit es el equivalente más cercano, pero es una herramienta independiente y no un comando de pip, así que debe instalarla usted mismo.

¿Cómo se corrigen las vulnerabilidades que encuentra pip-audit?

Ejecute pip-audit --fix para actualizar los paquetes vulnerables, o primero --fix --dry-run para ver qué cambiaría. Después ejecute sus tests y actualice sus requisitos fijados.

¿Es seguro ejecutar pip-audit sobre código que no es de confianza?

No. Auditar un archivo de requisitos equivale funcionalmente a instalarlo, y la instalación puede ejecutar código. Si no instalaría un paquete, no lo audite.

¿Puede pip-audit generar una SBOM?

Sí. Puede escribir CycloneDX en JSON o XML. La SBOM describe las dependencias de Python que resolvió, no el resto de su build.

¿Qué base de datos de vulnerabilidades usa pip-audit?

De forma predeterminada, la API JSON de PyPI, que se nutre de la Python Packaging Advisory Database. También puede usar OSV.

Vea qué incorporó su build de Python

Ejecute un workflow de GitHub Actions en CRACI y obtenga una SBOM de cada paquete que el job descargó realmente.

Reservar una demo