
Base de dados mantida pela comunidade de avisos de segurança para gems e runtimes Ruby, fornecendo dados estruturados de CVE/GHSA com versões corrigidas para rastreamento de vulnerabilidades e integração com auditorias.
O Ruby Advisory Database é um esforço da comunidade para compilar todos os avisos de segurança relevantes para bibliotecas Ruby. Esperamos que outros criem os dados, como obter CVEs, GHSAs, OSVDBs, cvss, ou informações originais de vulnerabilidades. Mais detalhes em AQUI.
Você pode verificar seus próprios Gemfile.locks contra este banco de dados usando bundler-audit.
Você conhece uma vulnerabilidade que não está listada neste banco de dados? Abra uma issue ou envie um PR.
O banco de dados é uma lista de diretórios que correspondem aos nomes das bibliotecas Ruby em rubygems.org. Dentro de cada diretório há um ou mais arquivos de aviso para a biblioteca Ruby. Esses arquivos de aviso são nomeados usando o número de identificação do CVE ou GHSA ou OSVDB (legado) dos avisos.
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/O diretório gems/ contém subdiretórios que correspondem aos nomes das bibliotecas
Ruby em rubygems.org. Dentro de cada diretório há um ou mais arquivos de aviso
para a biblioteca Ruby. Esses arquivos de aviso são nomeados usando o
ID do CVE ou GHSA dos avisos.
rubies/O diretório rubies/ contém subdiretórios para cada implementação Ruby.
Dentro de cada diretório há um ou mais arquivos de aviso para a implementação
Ruby. Esses arquivos de aviso são nomeados usando o ID do CVE
ou GHSA dos avisos.
Cada arquivo de aviso contém as informações do aviso no formato YAML. Aqui estão alguns exemplos de avisos:
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] (obrigatório): Nome da gem afetada.library [String] (opcional): Nome da biblioteca Ruby à qual a
gem afetada pertence.framework [String] (opcional): Nome do framework ao qual a
gem afetada pertence. (ex.: rails)platform [String] (opcional): Se esta vulnerabilidade for específica de plataforma,
nome da plataforma que esta vulnerabilidade afeta (ex.: jruby)cve [String] (opcional): ID de Common Vulnerabilities and Exposures (CVE).osvdb [Integer] (opcional): ID do Open Sourced Vulnerability Database (OSVDB).ghsa [String] (opcional): ID do GitHub Security Advisory (GHSA).url [String] (obrigatório): A URL para o aviso completo.title [String] (obrigatório): O título do aviso ou da vulnerabilidade
individual. Deve ser uma frase de uma única linha.
title: em 80.date [Date] (obrigatório): A data de divulgação pública do aviso.description [String] (obrigatório): Um ou mais parágrafos descrevendo a
vulnerabilidade. Pode conter múltiplos parágrafos.
description: | se for mais de uma frase/linha.descriptions: em 80.description:.description:.cvss_v2 [Float] (opcional): A pontuação CVSSv2 para a vulnerabilidade.cvss_v3 [Float] (opcional): A pontuação CVSSv3 para a vulnerabilidade.cvss_v4 [Float] (opcional): A pontuação CVSSv4 para a vulnerabilidade.unaffected_versions [Array<String>] (opcional): Os requisitos de versão para as
versões não afetadas da biblioteca Ruby.
unaffected_versions devem ser citados (ex.: ">= 1.2.3").patched_versions [Array<String>] (opcional): Os requisitos de versão
para as versões corrigidas da biblioteca Ruby.
patched_versions devem ser citados (ex.: ">= 1.2.3").patched_versions: se você não tiver identificadores de versão corrigida.related [Hash<Array<String>>] (opcional): Às vezes um aviso
referencia muitas urls e outros identificadores. Chaves suportadas:
cve, ghsa, osvdb e url
cve, ghsa e osvdb não são URLs.notes [String] (opcional): Notas internas sobre a inclusão da vulnerabilidade
neste banco de dados.rubiesengine [ruby | mruby | jruby | truffleruby] (obrigatório): Nome
da implementação Ruby afetada.platform [String] (opcional): Se esta vulnerabilidade for específica de plataforma,
nome da plataforma que esta vulnerabilidade afeta (ex.: jruby)cve [String] (opcional): ID de Common Vulnerabilities and Exposures (CVE).osvdb [Integer] (opcional): ID do Open Sourced Vulnerability Database (OSVDB).ghsa [String] (opcional): ID do GitHub Security Advisory (GHSA).url [String] (obrigatório): A URL para o aviso completo.title [String] (obrigatório): O título do aviso ou da vulnerabilidade
individual. Deve ser uma frase de uma única linha.
title: em 80.date [Date] (obrigatório): A data de divulgação pública do aviso.description [String] (obrigatório): Um ou mais parágrafos descrevendo a
vulnerabilidade. Pode conter múltiplos parágrafos.
description: | (não |-) se for mais de uma frase/linha.descriptions: em 80.description:.description:.cvss_v2 [Float] (opcional): A pontuação CVSSv2 para a vulnerabilidade.cvss_v3 [Float] (opcional): A pontuação CVSSv3 para a vulnerabilidade.cvss_v4 [Float] (opcional): A pontuação CVSSv4 para a vulnerabilidade.unaffected_versions [Array<String>] (opcional): Os requisitos de versão
para as versões não afetadas da implementação Ruby.
unaffected_versions está a 2 espaços da margem esquerda.* cve, ghsa e osvdb relacionados não são URLs.patched_versions [Array<String>] (opcional): Os requisitos de versão
para as versões corrigidas da implementação Ruby.
patched_versions/unaffected_versions devem ser citados
(ex.: ">= 1.2.3").patched_versions está a 2 espaços da margem esquerda.related [Hash<Array<String>>] (opcional): Às vezes um aviso
referencia muitas urls e outros identificadores. Chaves suportadas:
cve, ghsa, osvdb e url
cve, ghsa e osvdb não são URLs.notes [String] (opcional): Notas internas sobre a inclusão da vulnerabilidade
neste banco de dados.url: raiz.rspec spec/schema_validation_spec.rb para verificações adicionais de lint.Antes de enviar um pull request, execute os testes:
bundle install
bundle exec rspec
Execute o script ruby "GH_API_TOKEN=GITHUB_TOKEN_VALUE bundle exec rake sync_github_advisories".
Execute "rake" para executar as verificações de lint.
Se houver avisos novos ou modificados, envie um PR para o repositório.
ATENÇÃO: Entre os passos 2 e 5, você pode precisar editar os arquivos manualmente.
Há um script que criará arquivos YAML iniciais para avisos de RubyGem que estão na API do GitHub Security Advisory, mas ainda não estão neste conjunto de dados. Este script pode ser executado periodicamente para garantir que este repositório tenha todos os dados presentes nos dados do GitHub Security Advisory.
A API do GitHub Security Advisory requer um token para acessá-la.
Para executar a sincronização do GitHub Security Advisory e recuperar todos os avisos, comece executando a tarefa rake:
GH_API_TOKEN="your GitHub API Token" bundle exec rake sync_github_advisories
Ou, para recuperar apenas avisos de uma única gem:
GH_API_TOKEN="your GitHub API Token" bundle exec rake sync_github_advisories[gem_name]
Os mantenedores do Rails LTS nos pediram para não rastrear as versões do Rails LTS.
Se você estiver usando Rails LTS e bundler-audit, é aconselhável que você
adicione a Lista de CVEs abordados pelo Rails LTS ao seu arquivo .bundler-audit.yml
sob ignore:.
Para proteger a segurança do projeto e respeitar o tempo voluntário de nossos mantenedores, é estritamente exigida a supervisão humana em todas as submissões. Embora ferramentas de IA sejam permitidas como assistentes, os contribuidores devem revisar pessoalmente, entender e assumir total responsabilidade por seu trabalho. Quaisquer contribuições que pareçam ser saída de máquina não revisada serão fechadas imediatamente, e infratores reincidentes serão banidos do projeto e denunciados.
Consulte CONTRIBUTORS.md.
Este banco de dados também inclui dados do Open Sourced Vulnerability Database desenvolvido pela Open Security Foundation (OSF) e seus contribuidores.