
Escáner de vulnerabilidades escrito en Go que utiliza los datos proporcionados por https://osv.dev
Usa OSV-Scanner para encontrar vulnerabilidades existentes que afecten a las dependencias de tu proyecto. OSV-Scanner proporciona un frontend oficialmente compatible con la base de datos OSV y una interfaz CLI para OSV-Scalibr que conecta la lista de dependencias de un proyecto con las vulnerabilidades que las afectan.
OSV-Scanner admite una amplia gama de tipos de proyectos, gestores de paquetes y funcionalidades, incluyendo pero no limitándose a:
OSV-Scanner utiliza la biblioteca extensible OSV-Scalibr internamente para proporcionar esta funcionalidad. Si un lenguaje o gestor de paquetes no es compatible actualmente, por favor crea una solicitud de funcionalidad.
La base de datos subyacente, OSV.dev, tiene varios beneficios en comparación con bases de datos de avisos y escáneres de código cerrado:
Todo lo anterior resulta en notificaciones de vulnerabilidades precisas y procesables, lo que reduce el tiempo necesario para resolverlas. ¡Echa un vistazo a OSV.dev para más detalles!
Para instalar OSV-Scanner, por favor consulta la sección de instalación de nuestra documentación. Las versiones de OSV-Scanner se pueden encontrar en la página de versiones del repositorio de GitHub. El método recomendado es descargar un binario precompilado para tu plataforma. Alternativamente, puedes usar
go install github.com/google/osv-scanner/v2/cmd/osv-scanner@latest para compilarlo desde el código fuente.
Para más información, por favor lee nuestra documentación detallada para aprender a usar OSV-Scanner. Para información detallada sobre cada funcionalidad, haz clic en sus títulos en este README.
Ten en cuenta: Estas son las instrucciones para la última versión beta de OSV-Scanner V2. Si estás usando V1, consulta el README y la documentación de V1.
$ osv-scanner scan source -r /path/to/your/dir
Este comando escaneará recursivamente el directorio especificado en busca de cualquier archivo de paquetes compatible, como package.json, go.mod, pom.xml, etc., y mostrará cualquier vulnerabilidad descubierta.
OSV-Scanner tiene la opción de usar análisis de llamadas para determinar si una función vulnerable se está utilizando realmente en el proyecto, lo que resulta en menos falsos positivos y alertas procesables.
OSV-Scanner también puede detectar código C/C++ empaquetado (vendored) para escaneo de vulnerabilidades. Consulta aquí para más detalles.
OSV-Scanner admite 11+ ecosistemas de lenguajes y 19+ tipos de lockfiles. Para verificar si tu ecosistema está cubierto, consulta nuestra documentación detallada.
OSV-Scanner también admite escaneo completo, consciente de capas, para imágenes de contenedores con el fin de detectar vulnerabilidades en los siguientes paquetes del sistema operativo y dependencias específicas de lenguajes.
| Soporte de distribuciones | Soporte de artefactos de lenguaje |
|---|---|
| Alpine OS | Go |
| Debian | Java |
| Ubuntu | Node |
| Python |
Consulta la documentación completa para detalles sobre el soporte.
Uso:
$ osv-scanner scan image my-image-name:tag

Revisa las licencias de tus dependencias usando datos de deps.dev. Para un resumen:
osv-scanner --licenses path/to/repository
Para verificar contra una lista de licencias permitidas (formato SPDX):
osv-scanner --licenses="MIT,Apache-2.0" path/to/directory
Escanea tu proyecto contra una base de datos OSV local. No se requiere conexión de red después de la descarga inicial de la base de datos. La base de datos también se puede descargar manualmente.
osv-scanner --offline --download-offline-databases ./path/to/your/dir
[!WARNING] La remediación guiada (el comando
fix) puede ser arriesgada cuando se ejecuta en proyectos no confiables. Puede hacer que el gestor de paquetes ejecute scripts o siga registros externos especificados en el proyecto. Asegúrate de confiar en el código fuente y los artefactos antes de proceder.
OSV-Scanner proporciona remediación guiada, una funcionalidad que sugiere actualizaciones de versiones de paquetes basadas en criterios como profundidad de dependencia, severidad mínima, estrategia de corrección y retorno de inversión. Actualmente soportamos la remediación de vulnerabilidades en los siguientes archivos:
Esto está disponible como un comando CLI sin interfaz gráfica, así como un modo interactivo.
$ osv-scanner fix \
--max-depth=3 \
--min-severity=5 \
--ignore-dev \
--strategy=in-place \
-L path/to/package-lock.json
$ osv-scanner fix \
-M path/to/package.json \
-L path/to/package-lock.json
OSV-Scanner se comunica con los siguientes servicios externos durante su funcionamiento:
La fuente de datos principal para información de vulnerabilidades. OSV-Scanner consulta esta API para verificar paquetes en busca de vulnerabilidades conocidas e identificar dependencias C/C++ empaquetadas (vendored). Los datos enviados incluyen nombres de paquetes, versiones, ecosistemas y hashes de archivos. Usa el modo --offline para deshabilitar solicitudes de red y escanear contra una base de datos local.
Se utiliza para información complementaria de paquetes:
--licenses): Recupera información de licencias para paquetesLos datos enviados incluyen nombres de paquetes, versiones y ecosistemas. No se transmite código fuente.
Cuando se utiliza el registro nativo para la resolución de dependencias (en lugar de deps.dev), OSV-Scanner puede consultar:
| Registro | URL | Usado para |
|---|---|---|
| Maven Central | repo.maven.apache.org/maven2 |
Si tienes lo que parece ser un error, por favor utiliza el sistema de seguimiento de incidencias de GitHub. Antes de reportar una incidencia, busca en las incidencias existentes para ver si la tuya ya está cubierta.
osv-scannerConsulta CONTRIBUTING.md para obtener documentación sobre cómo contribuir código.
| Ecosistema | Formato de archivo (Tipo) | Estrategias de remediación compatibles |
|---|
| npm | package-lock.json (lockfile) | in-place |
| npm | package.json (manifiesto) | relock |
| Maven | pom.xml (manifiesto) | override |
| Metadatos de paquetes Maven y POMs |
| npm Registry | registry.npmjs.org | Metadatos de paquetes npm |
| PyPI | pypi.org | Metadatos de paquetes Python |