¿Cómo comprobar si una versión tiene vulnerabilidades conocidas?

Todos los entornos de ejecución, servidores y bibliotecas de los que dependes reciben correcciones de seguridad con el tiempo, y es posible que la versión que utilizas esté señalada como afectada en un aviso publicado. Los avisos están repartidos en muchas bases de datos: las de GitHub, los equipos de seguridad de Python y Go, RustSec, Bitnami y otras. OSV.dev, el proyecto Open Source Vulnerabilities gestionado por Google, los recopila en un formato unificado e indica qué avisos afectan a una versión concreta.

Descripción de la herramienta

Elige el ecosistema, introduce el nombre y la versión exacta, y pulsa Comprobar versión. Si se trata de un entorno de ejecución o paquete popular, como Node.js, PHP, PostgreSQL, lodash o Django, también puedes seleccionarlo en Selección rápida; los campos Ecosistema y Nombre se completarán automáticamente. Obtendrás todas las vulnerabilidades conocidas que afectan a esa versión, ordenadas de mayor a menor gravedad, con:

  • Su ID, enlazado a su página en osv.dev, y su ID de CVE, si tiene uno
  • La gravedad asignada en el aviso: crítica, alta, media o baja
  • La versión en la que se corrigió: la versión corregida más baja posterior a la tuya, según el aviso
  • Un breve resumen

Cuando varias bases de datos describen el mismo problema, como un aviso de GitHub y su copia en la base de datos de Python, se muestran como una sola vulnerabilidad.

La comprobación se ejecuta en nuestro servidor, que consulta la API pública de OSV.dev. Solo se envían el ecosistema, el nombre y la versión.

Los asistentes de IA conectados al servidor MCP de Rapid Tool Set pueden realizar la misma comprobación con vulnerable_version_checker.

Ecosistemas compatibles

Ecosistema Cobertura Ejemplos de nombres
Entornos de ejecución y servidores, Bitnami Entornos de ejecución, servidores web y de bases de datos, aplicaciones node (Node.js), php, python, nginx, mariadb
npm Paquetes de JavaScript lodash, express
PyPI Paquetes de Python django, requests
Packagist Paquetes de PHP instalados con Composer laravel/framework, symfony/http-kernel
Maven Paquetes de Java, con formato grupo:artefacto org.apache.logging.log4j:log4j-core
NuGet Paquetes de .NET Newtonsoft.Json
Go Módulos de Go, por ruta del módulo github.com/gin-gonic/gin
crates.io Paquetes de Rust tokio
RubyGems Paquetes de Ruby actionpack, nokogiri
Pub Paquetes de Dart y Flutter http
Hex Paquetes de Erlang y Elixir phoenix, plug
CRAN Paquetes de R commonmark

Para los entornos de ejecución y servidores se utilizan los nombres de Bitnami: node para Node.js (también funciona nodejs), postgresql y apache para Apache HTTP Server.

Limitaciones

  • La versión debe escribirse exactamente como lo requiere el ecosistema, por ejemplo, 18.0.0 o 4.17.15. Si el nombre está mal escrito o la versión no existe, no se encontrará ningún resultado, igual que cuando una versión no tiene vulnerabilidades conocidas.
  • Solo se conocen los avisos publicados. Una versión sin avisos puede tener fallos que todavía nadie haya comunicado.
  • Algunos avisos no tienen una clasificación de gravedad; se mostrarán como Sin clasificación.
  • La versión corregida se obtiene de los rangos de versiones indicados en el aviso. Una versión más reciente podría tener sus propias vulnerabilidades, así que comprueba también la versión a la que vas a actualizar.