
Database di advisory di sicurezza mantenuta dalla community per gemme e runtime Ruby, che fornisce dati strutturati CVE/GHSA con versioni corrette per il tracciamento delle vulnerabilità e l'integrazione con gli audit.
Il Ruby Advisory Database è uno sforzo della comunità per raccogliere tutti gli advisory di sicurezza rilevanti per le librerie Ruby. Ci aspettiamo che altri creino i dati, come l'ottenimento di CVE, GHSA, OSVDB, CVSS o informazioni originali sulle vulnerabilità. Maggiori dettagli QUI.
Puoi verificare i tuoi Gemfile.lock rispetto a questo database utilizzando bundler-audit.
Conosci una vulnerabilità che non è elencata in questo database? Apri un issue o invia una PR.
Il database è un elenco di directory che corrispondono ai nomi delle librerie Ruby su rubygems.org. All'interno di ogni directory sono presenti uno o più file di advisory per la libreria Ruby. Questi file di advisory sono nominati utilizzando il numero identificativo CVE, GHSA o OSVDB (legacy) degli advisory.
gems/:
actionpack/:
CVE-2014-0130.yml CVE-2014-7818.yml CVE-2014-7829.yml CVE-2015-7576.yml
CVE-2015-7581.yml CVE-2016-0751.yml CVE-2016-0752.yml
rubies/:
jruby/:
...
mruby/:
...
ruby/:
...
gems/La directory gems/ contiene sottodirectory che corrispondono ai nomi delle librerie
Ruby su rubygems.org. All'interno di ogni directory sono presenti uno o più file di advisory
per la libreria Ruby. Questi file di advisory sono nominati utilizzando
l'ID CVE o GHSA degli advisory.
rubies/La directory rubies/ contiene sottodirectory per ogni implementazione di Ruby.
All'interno di ogni directory sono presenti uno o più file di advisory per
l'implementazione di Ruby. Questi file di advisory sono nominati utilizzando
l'ID CVE o GHSA degli advisory.
Ogni file di advisory contiene le informazioni dell'advisory in formato YAML. Ecco alcuni esempi di advisory:
gems/actionpack/CVE-2023-22795.yml---
gem: actionpack
cve: 2023-22795
ghsa: 8xww-x3g3-6jcv
url: https://github.com/rails/rails/releases/tag/v7.0.4.1
title: ReDoS based DoS vulnerability in Action Dispatch
date: 2023-01-18
description: |
There is a possible regular expression based DoS vulnerability in Action
Dispatch related to the If-None-Match header. This vulnerability has been
assigned the CVE identifier CVE-2023-22795.
Versions Affected: All
Not affected: None
Fixed Versions: 6.1.7.1, 7.0.4.1
# Impact
A specially crafted HTTP If-None-Match header can cause the regular
expression engine to enter a state of catastrophic backtracking, when on a
version of Ruby below 3.2.0. This can cause the process to use large amounts
of CPU and memory, leading to a possible DoS vulnerability All users running
an affected release should either upgrade or use one of the workarounds
immediately.
# Workarounds
We recommend that all users upgrade to one of the FIXED versions. In the
meantime, users can mitigate this vulnerability by using a load balancer or
other device to filter out malicious If-None-Match headers before they reach
the application.
Users on Ruby 3.2.0 or greater are not affected by this vulnerability.
patched_versions:
- "~> 5.2.8"
- "~> 6.1.7, >= 6.1.7.1"
- ">= 7.0.4.1"
rubies/ruby/CVE-2022-28739.yml---
engine: ruby
cve: 2022-28739
url: https://www.ruby-lang.org/en/news/2022/04/12/buffer-overrun-in-string-to-float-cve-2022-28739/
title: Buffer overrun in String-to-Float conversion
date: 2022-04-12
description: |
A buffer-overrun vulnerability is discovered in a conversion algorithm from a
String to a Float. This vulnerability has been assigned the CVE identifier
CVE-2022-28739. We strongly recommend upgrading Ruby.
Due to a bug in an internal function that converts a String to a Float, some
conversion methods like Kernel#Float and String#to_f could cause buffer
over-read. A typical consequence is a process termination due to segmentation
fault, but in a limited circumstances, it may be exploitable for illegal
memory read.
Please update Ruby to 2.6.10, 2.7.6, 3.0.4, or 3.1.2.
patched_versions:
- ~> 2.6.10
- ~> 2.7.6
- ~> 3.0.4
- '>= 3.1.2'
gemsgem [String] (obbligatorio): Nome della gemma interessata.library [String] (opzionale): Nome della libreria Ruby a cui
appartiene la gemma interessata.framework [String] (opzionale): Nome del framework a cui
appartiene la gemma interessata. (es. rails)platform [String] (opzionale): Se questa vulnerabilità è specifica per piattaforma,
nome della piattaforma che questa vulnerabilità interessa (es. jruby)cve [String] (opzionale): ID Common Vulnerabilities and Exposures (CVE).osvdb [Integer] (opzionale): ID Open Sourced Vulnerability Database (OSVDB).ghsa [String] (opzionale): ID GitHub Security Advisory (GHSA).url [String] (obbligatorio): L'URL dell'advisory completo.title [String] (obbligatorio): Il titolo dell'advisory o della singola
vulnerabilità. Deve essere una frase su una sola riga.
title: a 80 caratteri.date [Date] (obbligatorio): La data di divulgazione pubblica dell'advisory.description [String] (obbligatorio): Uno o più paragrafi che descrivono la
vulnerabilità. Può contenere più paragrafi.
description: | se è più di una frase/riga.descriptions: a 80 caratteri.description:.description:.cvss_v2 [Float] (opzionale): Il punteggio CVSSv2 per la vulnerabilità.cvss_v3 [Float] (opzionale): Il punteggio CVSSv3 per la vulnerabilità.cvss_v4 [Float] (opzionale): Il punteggio CVSSv4 per la vulnerabilità.unaffected_versions [Array<String>] (opzionale): I requisiti di versione per le
versioni non interessate della libreria Ruby.
unaffected_versions devono essere tra virgolette (es: ">= 1.2.3").patched_versions [Array<String>] (opzionale): I requisiti di versione
per le versioni corrette della libreria Ruby.
patched_versions devono essere tra virgolette (es: ">= 1.2.3").patched_versions: se non si dispone di identificatori di versione corretta.related [Hash<Array<String>>] (opzionale): A volte un advisory
fa riferimento a molti URL e altri identificatori. Chiavi supportate:
cve, ghsa, osvdb e url
cve, ghsa e osvdb non sono URL.notes [String] (opzionale): Note interne riguardanti l'inclusione della vulnerabilità
in questo database.rubiesengine [ruby | mruby | jruby | truffleruby] (obbligatorio): Nome
dell'implementazione Ruby interessata.platform [String] (opzionale): Se questa vulnerabilità è specifica per piattaforma,
nome della piattaforma che questa vulnerabilità interessa (es. jruby)cve [String] (opzionale): ID Common Vulnerabilities and Exposures (CVE).osvdb [Integer] (opzionale): ID Open Sourced Vulnerability Database (OSVDB).ghsa [String] (opzionale): ID GitHub Security Advisory (GHSA).url [String] (obbligatorio): L'URL dell'advisory completo.title [String] (obbligatorio): Il titolo dell'advisory o della singola
vulnerabilità. Deve essere una frase su una sola riga.
title: a 80 caratteri.date [Date] (obbligatorio): La data di divulgazione pubblica dell'advisory.description [String] (obbligatorio): Uno o più paragrafi che descrivono la
vulnerabilità. Può contenere più paragrafi.
description: | (non |-) se è più di una frase/riga.descriptions: a 80 caratteri.description:.description:.cvss_v2 [Float] (opzionale): Il punteggio CVSSv2 per la vulnerabilità.cvss_v3 [Float] (opzionale): Il punteggio CVSSv3 per la vulnerabilità.cvss_v4 [Float] (opzionale): Il punteggio CVSSv4 per la vulnerabilità.unaffected_versions [Array<String>] (opzionale): I requisiti di versione
per le versioni non interessate dell'implementazione Ruby.
unaffected_versions è a 2 spazi dal margine sinistro.* cve, ghsa e osvdb non sono URL.patched_versions [Array<String>] (opzionale): I requisiti di versione
per le versioni corrette dell'implementazione Ruby.
patched_versions/unaffected_versions devono essere tra virgolette
(es: ">= 1.2.3").patched_versions è a 2 spazi dal margine sinistro.related [Hash<Array<String>>] (opzionale): A volte un advisory
fa riferimento a molti URL e altri identificatori. Chiavi supportate:
cve, ghsa, osvdb e url
cve, ghsa e osvdb non sono URL.notes [String] (opzionale): Note interne riguardanti l'inclusione della vulnerabilità
in questo database.url: di root.rspec spec/schema_validation_spec.rb per ulteriori controlli di lint.Prima di inviare una pull request, eseguire i test:
bundle install
bundle exec rspec
Eseguire lo script ruby "GH_API_TOKEN=GITHUB_TOKEN_VALUE bundle exec rake sync_github_advisories".
Eseguire "rake" per eseguire i controlli di lint.
Se ci sono advisory nuovi o modificati, inviare una PR al repository.
AVVERTENZA: Tra i passaggi 2 e 5, potrebbe essere necessario modificare manualmente i file.
Esiste uno script che creerà file YAML iniziali per gli advisory RubyGem che sono nell'[API GitHub Security Advisory], ma non sono già in questo dataset. Questo script può essere eseguito periodicamente per garantire che questo repository abbia tutti i dati presenti nei dati GitHub Security Advisory.
L'API GitHub Security Advisory richiede un token per accedervi.
Per eseguire la sincronizzazione GitHub Security Advisory e recuperare tutti gli advisory, iniziare eseguendo l'attività rake:
GH_API_TOKEN="your GitHub API Token" bundle exec rake sync_github_advisories
Oppure, per recuperare solo gli advisory per una singola gemma:
GH_API_TOKEN="your GitHub API Token" bundle exec rake sync_github_advisories[gem_name]
I manutentori di Rails LTS ci hanno chiesto di non tracciare le versioni Rails LTS.
Se stai utilizzando Rails LTS e bundler-audit, si consiglia di
aggiungere l'[Elenco delle CVE affrontate da Rails LTS] al tuo file .bundler-audit.yml
sotto ignore:.
Per salvaguardare la sicurezza del progetto e rispettare il tempo volontario dei nostri manutentori, è strettamente richiesto un controllo umano per tutte le proposte. Sebbene gli strumenti di IA siano consentiti come assistenti, i contributori devono rivedere personalmente, comprendere e assumersi la piena responsabilità del proprio lavoro. Qualsiasi contributo che appaia come output di macchina non revisionato verrà chiuso immediatamente, e i recidivi saranno banditi dal progetto e segnalati.
Si prega di consultare CONTRIBUTORS.md.
Questo database include anche dati dall'Open Sourced Vulnerability Database sviluppato dalla Open Security Foundation (OSF) e dai suoi contributori.