Come verificare se una versione presenta vulnerabilità note?

Ogni runtime, server e libreria da cui dipendi riceve aggiornamenti di sicurezza nel tempo e la versione che utilizzi potrebbe essere indicata come vulnerabile in un avviso pubblicato. Gli avvisi sono distribuiti in numerose banche dati: quella di GitHub, quelle dei team di sicurezza di Python e Go, RustSec, Bitnami e altre. OSV.dev, il progetto Open Source Vulnerabilities gestito da Google, li raccoglie in un unico formato e indica quali avvisi riguardano una versione specifica.

Descrizione dello strumento

Seleziona l’ecosistema, inserisci il nome e la versione esatta, quindi premi Verifica versione. Per un runtime o un pacchetto diffuso, come Node.js, PHP, PostgreSQL, lodash o Django, puoi invece selezionarlo in Selezione rapida: i campi Ecosistema e Nome verranno compilati automaticamente. Otterrai tutte le vulnerabilità note che riguardano quella versione, ordinate dalla più grave, con:

  • Il relativo ID, collegato alla pagina corrispondente su osv.dev, e il CVE ID, se disponibile
  • La gravità indicata nell’avviso: Critica, Alta, Media o Bassa
  • La versione in cui è stata corretta: la prima versione corretta successiva a quella in uso, secondo quanto indicato nell’avviso
  • Un breve riepilogo

Quando più banche dati descrivono lo stesso problema, ad esempio un avviso di GitHub e la sua copia nella banca dati di Python, il problema viene mostrato come un’unica vulnerabilità.

La verifica viene eseguita sul nostro server, che interroga l’API pubblica di OSV.dev. Vengono inviati solo l’ecosistema, il nome e la versione.

Gli assistenti AI connessi al server MCP di Rapid Tool Set possono eseguire la stessa verifica tramite vulnerable_version_checker.

Ecosistemi supportati

Ecosistema Ambito Esempi di nomi
Runtime e server, Bitnami Runtime, server web e database, app node (Node.js), php, python, nginx, mariadb
npm Pacchetti JavaScript lodash, express
PyPI Pacchetti Python django, requests
Packagist Pacchetti PHP installati con Composer laravel/framework, symfony/http-kernel
Maven Pacchetti Java, nel formato gruppo:artefatto org.apache.logging.log4j:log4j-core
NuGet Pacchetti .NET Newtonsoft.Json
Go Moduli Go, tramite percorso del modulo github.com/gin-gonic/gin
crates.io Crate Rust tokio
RubyGems Gem Ruby actionpack, nokogiri
Pub Pacchetti Dart e Flutter http
Hex Pacchetti Erlang ed Elixir phoenix, plug
CRAN Pacchetti R commonmark

Per i runtime e i server vengono utilizzati i nomi di Bitnami: node per Node.js (funziona anche nodejs), postgresql e apache per Apache HTTP Server.

Limitazioni

  • La versione deve essere scritta esattamente come previsto dall’ecosistema, ad esempio 18.0.0 o 4.17.15. Un nome scritto in modo errato o una versione inesistente non restituiscono risultati, come nel caso di una versione senza vulnerabilità note.
  • Sono disponibili solo gli avvisi pubblicati. Una versione per cui non ne risultano può comunque presentare difetti non ancora segnalati.
  • Alcuni avvisi non indicano un livello di gravità: vengono mostrati come Non valutata.
  • La versione in cui è stata corretta viene ricavata dagli intervalli di versioni indicati nell’avviso. Una versione più recente potrebbe avere vulnerabilità proprie: verifica anche la versione a cui intendi aggiornare.