
Base de données maintenue par la communauté des avis de sécurité pour les gems et environnements d'exécution Ruby, fournissant des données structurées CVE/GHSA avec les versions corrigées pour le suivi des vulnérabilités et l'intégration d'audit.
La base de données des avis de sécurité Ruby est un effort communautaire visant à compiler tous les avis de sécurité pertinents pour les bibliothèques Ruby. Nous attendons des autres qu'ils créent les données, comme l'obtention des CVE, GHSA, OSVDB, cvss, ou des informations originales sur les vulnérabilités. Plus de détails ICI.
Vous pouvez vérifier vos propres Gemfile.locks par rapport à cette base de données en utilisant bundler-audit.
Connaissez-vous une vulnérabilité qui n'est pas répertoriée dans cette base de données ? Ouvrez un problème (issue) ou soumettez une PR.
La base de données est une liste de répertoires qui correspondent aux noms des bibliothèques Ruby sur rubygems.org. Dans chaque répertoire se trouvent un ou plusieurs fichiers d'avis pour la bibliothèque Ruby. Ces fichiers d'avis sont nommés en utilisant le numéro d'identifiant CVE, GHSA ou OSVDB (hérité) des avis.
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/Le répertoire gems/ contient des sous-répertoires qui correspondent aux noms des bibliothèques
Ruby sur rubygems.org. Dans chaque répertoire se trouvent un ou plusieurs fichiers d'avis
pour la bibliothèque Ruby. Ces fichiers d'avis sont nommés en utilisant
l'identifiant CVE ou GHSA des avis.
rubies/Le répertoire rubies/ contient des sous-répertoires pour chaque implémentation de Ruby.
Dans chaque répertoire se trouvent un ou plusieurs fichiers d'avis pour l'implémentation
Ruby. Ces fichiers d'avis sont nommés en utilisant l'identifiant CVE
ou GHSA des avis.
Chaque fichier d'avis contient les informations de l'avis au format YAML. Voici quelques exemples d'avis :
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] (obligatoire) : Nom de la gem affectée.library [String] (facultatif) : Nom de la bibliothèque Ruby à laquelle
la gem affectée appartient.framework [String] (facultatif) : Nom du framework auquel la
gem affectée appartient. (ex. rails)platform [String] (facultatif) : Si cette vulnérabilité est spécifique à une plateforme,
nom de la plateforme affectée par cette vulnérabilité (ex. jruby)cve [String] (facultatif) : Identifiant Common Vulnerabilities and Exposures (CVE).osvdb [Integer] (facultatif) : Identifiant Open Sourced Vulnerability Database (OSVDB).ghsa [String] (facultatif) : Identifiant GitHub Security Advisory (GHSA).url [String] (obligatoire) : L'URL de l'avis complet.title [String] (obligatoire) : Le titre de l'avis ou de la vulnérabilité
individuelle. Il doit s'agir d'une phrase sur une seule ligne.
title: à 80 caractères.date [Date] (obligatoire) : La date de divulgation publique de l'avis.description [String] (obligatoire) : Un ou plusieurs paragraphes décrivant la
vulnérabilité. Elle peut contenir plusieurs paragraphes.
description: | si elle contient plus d'une phrase/ligne.descriptions: à 80 caractères.description:.description:.cvss_v2 [Float] (facultatif) : Le score CVSSv2 pour la vulnérabilité.cvss_v3 [Float] (facultatif) : Le score CVSSv3 pour la vulnérabilité.cvss_v4 [Float] (facultatif) : Le score CVSSv4 pour la vulnérabilité.unaffected_versions [Array<String>] (facultatif) : Les exigences de version pour les
versions non affectées de la bibliothèque Ruby.
unaffected_versions doivent être entre guillemets (ex : ">= 1.2.3").patched_versions [Array<String>] (facultatif) : Les exigences de version
pour les versions corrigées de la bibliothèque Ruby.
patched_versions doivent être entre guillemets (ex : ">= 1.2.3").patched_versions: si vous n'avez pas d'identifiants de versions corrigées.related [Hash<Array<String>>] (facultatif) : Parfois, un avis
référence de nombreuses URL et d'autres identifiants. Clés prises en charge :
cve, ghsa, osvdb et url
cve, ghsa et osvdb ne sont pas des URL.notes [String] (facultatif) : Notes internes concernant l'inclusion de la vulnérabilité
dans cette base de données.rubiesengine [ruby | mruby | jruby | truffleruby] (obligatoire) : Nom
de l'implémentation Ruby affectée.platform [String] (facultatif) : Si cette vulnérabilité est spécifique à une plateforme,
nom de la plateforme affectée par cette vulnérabilité (ex. jruby)cve [String] (facultatif) : Identifiant Common Vulnerabilities and Exposures (CVE).osvdb [Integer] (facultatif) : Identifiant Open Sourced Vulnerability Database (OSVDB).ghsa [String] (facultatif) : Identifiant GitHub Security Advisory (GHSA).url [String] (obligatoire) : L'URL de l'avis complet.title [String] (obligatoire) : Le titre de l'avis ou de la vulnérabilité
individuelle. Il doit s'agir d'une phrase sur une seule ligne.
title: à 80 caractères.date [Date] (obligatoire) : La date de divulgation publique de l'avis.description [String] (obligatoire) : Un ou plusieurs paragraphes décrivant la
vulnérabilité. Elle peut contenir plusieurs paragraphes.
description: | (pas |-) si elle contient plus d'une phrase/ligne.descriptions: à 80 caractères.description:.description:.cvss_v2 [Float] (facultatif) : Le score CVSSv2 pour la vulnérabilité.cvss_v3 [Float] (facultatif) : Le score CVSSv3 pour la vulnérabilité.cvss_v4 [Float] (facultatif) : Le score CVSSv4 pour la vulnérabilité.unaffected_versions [Array<String>] (facultatif) : Les exigences de version
pour les versions non affectées de l'implémentation Ruby.
unaffected_versions est à 2 espaces de la marge gauche.* cve, ghsa et osvdb ne sont pas des URL.patched_versions [Array<String>] (facultatif) : Les exigences de version
pour les versions corrigées de l'implémentation Ruby.
patched_versions/unaffected_versions doivent être entre guillemets
(ex : ">= 1.2.3").patched_versions est à 2 espaces de la marge gauche.related [Hash<Array<String>>] (facultatif) : Parfois, un avis
référence de nombreuses URL et d'autres identifiants. Clés prises en charge :
cve, ghsa, osvdb et url
cve, ghsa et osvdb ne sont pas des URL.notes [String] (facultatif) : Notes internes concernant l'inclusion de la vulnérabilité
dans cette base de données.url:.rspec spec/schema_validation_spec.rb pour des vérifications de lint supplémentaires.Avant de soumettre une pull request, exécutez les tests :
bundle install
bundle exec rspec
Exécutez le script ruby "GH_API_TOKEN=VALEUR_TOKEN_GITHUB bundle exec rake sync_github_advisories".
Exécutez "rake" pour lancer les vérifications de lint.
Si de nouveaux avis ou des avis modifiés existent, soumettez une PR au dépôt.
ATTENTION : Entre les étapes 2 et 5, vous devrez peut-être modifier manuellement les fichiers.
Il existe un script qui créera des fichiers YAML initiaux pour les avis RubyGem qui se trouvent dans l'API des avis de sécurité GitHub, mais qui ne sont pas déjà dans ce jeu de données. Ce script peut être exécuté périodiquement pour garantir que ce dépôt contient toutes les données présentes dans les données des avis de sécurité GitHub.
L'API des avis de sécurité GitHub nécessite un jeton pour y accéder.
Pour exécuter la synchronisation des avis de sécurité GitHub afin de récupérer tous les avis, commencez par exécuter la tâche rake :
GH_API_TOKEN="votre jeton d'API GitHub" bundle exec rake sync_github_advisories
Ou, pour ne récupérer que les avis d'une seule gem :
GH_API_TOKEN="votre jeton d'API GitHub" bundle exec rake sync_github_advisories[nom_de_la_gem]
Les mainteneurs de Rails LTS nous ont demandé de ne pas suivre les versions Rails LTS.
Si vous utilisez Rails LTS et bundler-audit, il est conseillé d'ajouter
la Liste des CVE traitées par Rails LTS à votre fichier .bundler-audit.yml
sous ignore:.
Pour protéger la sécurité du projet et respecter le temps de bénévolat de nos mainteneurs, une supervision humaine est strictement requise pour toutes les soumissions. Bien que les outils d'IA soient autorisés comme assistants, les contributeurs doivent personnellement examiner, comprendre et assumer l'entière responsabilité de leur travail. Toute contribution qui semble être une sortie machine non examinée sera fermée immédiatement, et les récidivistes seront bannis du projet et signalés.
Veuillez consulter CONTRIBUTORS.md.
Cette base de données inclut également des données de l'Open Sourced Vulnerability Database développée par l'Open Security Foundation (OSF) et ses contributeurs.