
Community-gepflegte Datenbank mit Sicherheitshinweisen für Ruby-Gems und Laufzeitumgebungen, die strukturierte CVE/GHSA-Daten mit gepatchten Versionen für Schwachstellenverfolgung und Audit-Integration bereitstellt.
Die Ruby Advisory Database ist eine Gemeinschaftsinitiative, um alle Sicherheitshinweise zu sammeln, die für Ruby-Bibliotheken relevant sind. Wir erwarten, dass andere die Daten erstellen, wie z. B. CVE-, GHSA-, OSVDB-, CVSS- oder ursprüngliche Schwachstelleninformationen. Weitere Details finden Sie HIER.
Sie können Ihre eigenen Gemfile.locks mit dieser Datenbank überprüfen, indem Sie bundler-audit verwenden.
Kennen Sie eine Schwachstelle, die nicht in dieser Datenbank aufgeführt ist? Eröffnen Sie ein Issue oder reichen Sie einen PR ein.
Die Datenbank ist eine Liste von Verzeichnissen, die den Namen der Ruby-Bibliotheken auf rubygems.org entsprechen. In jedem Verzeichnis befinden sich eine oder mehrere Advisory-Dateien für die Ruby-Bibliothek. Diese Advisory-Dateien werden anhand der CVE- oder GHSA- oder OSVDB- (Legacy) Kennnummer der Advisories benannt.
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/Das Verzeichnis gems/ enthält Unterverzeichnisse, die den Namen der Ruby-Bibliotheken auf
rubygems.org entsprechen. In jedem Verzeichnis befinden sich eine oder mehrere Advisory-Dateien
für die Ruby-Bibliothek. Diese Advisory-Dateien werden anhand der
CVE- oder GHSA-ID der Advisories benannt.
rubies/Das Verzeichnis rubies/ enthält Unterverzeichnisse für jede Ruby-Implementierung.
In jedem Verzeichnis befinden sich eine oder mehrere Advisory-Dateien für die Ruby-Implementierung.
Diese Advisory-Dateien werden anhand der CVE- oder GHSA-ID der Advisories benannt.
Jede Advisory-Datei enthält die Advisory-Informationen im YAML-Format. Hier sind einige Beispiel-Advisories:
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] (erforderlich): Name der betroffenen Gem.library [String] (optional): Name der Ruby-Bibliothek, zu der die
betroffene Gem gehört.framework [String] (optional): Name des Frameworks, zu dem die
betroffene Gem gehört. (z. B. rails)platform [String] (optional): Wenn diese Schwachstelle plattformspezifisch ist,
Name der Plattform, die von dieser Schwachstelle betroffen ist (z. B. jruby)cve [String] (optional): Common Vulnerabilities and Exposures (CVE)-ID.osvdb [Integer] (optional): Open Sourced Vulnerability Database (OSVDB)-ID.ghsa [String] (optional): GitHub Security Advisory (GHSA)-ID.url [String] (erforderlich): Die URL zum vollständigen Advisory.title [String] (erforderlich): Der Titel des Advisories oder der einzelnen
Schwachstelle. Er muss ein einzeiliger Satz sein.
title:-Felds bei 80.date [Date] (erforderlich): Das Datum der öffentlichen Offenlegung des Advisories.description [String] (erforderlich): Ein oder mehrere Absätze, die die
Schwachstelle beschreiben. Sie kann mehrere Absätze enthalten.
description: |, wenn es mehr als ein Satz/eine Zeile ist.descriptions:-Felds bei 80.description:-Feld ein.description:-Feld.cvss_v2 [Float] (optional): Der CVSSv2-Wert für die Schwachstelle.cvss_v3 [Float] (optional): Der CVSSv3-Wert für die Schwachstelle.cvss_v4 [Float] (optional): Der CVSSv4-Wert für die Schwachstelle.unaffected_versions [Array<String>] (optional): Die Versionsanforderungen für die
nicht betroffenen Versionen der Ruby-Bibliothek.
unaffected_versions müssen in Anführungszeichen gesetzt werden (z. B.: ">= 1.2.3").patched_versions [Array<String>] (optional): Die Versionsanforderungen
für die gepatchten Versionen der Ruby-Bibliothek.
patched_versions müssen in Anführungszeichen gesetzt werden (z. B.: ">= 1.2.3").patched_versions: weg, wenn Sie keine Kennungen für gepatchte Versionen haben.related [Hash<Array<String>>] (optional): Manchmal verweist ein Advisory
auf viele URLs und andere Kennungen. Unterstützte Schlüssel:
cve, ghsa, osvdb und url
cve, ghsa und osvdb sind keine URLs.notes [String] (optional): Interne Hinweise zur Aufnahme der Schwachstelle
in diese Datenbank.rubiesengine [ruby | mruby | jruby | truffleruby] (erforderlich): Name
der betroffenen Ruby-Implementierung.platform [String] (optional): Wenn diese Schwachstelle plattformspezifisch ist,
Name der Plattform, die von dieser Schwachstelle betroffen ist (z. B. jruby)cve [String] (optional): Common Vulnerabilities and Exposures (CVE)-ID.osvdb [Integer] (optional): Open Sourced Vulnerability Database (OSVDB)-ID.ghsa [String] (optional): GitHub Security Advisory (GHSA)-ID.url [String] (erforderlich): Die URL zum vollständigen Advisory.title [String] (erforderlich): Der Titel des Advisories oder der einzelnen
Schwachstelle. Er muss ein einzeiliger Satz sein.
title:-Felds bei 80.date [Date] (erforderlich): Das Datum der öffentlichen Offenlegung des Advisories.description [String] (erforderlich): Ein oder mehrere Absätze, die die
Schwachstelle beschreiben. Sie kann mehrere Absätze enthalten.
description: | (nicht |-), wenn es mehr als ein Satz/eine Zeile ist.descriptions:-Felds bei 80.description:-Feld.description:-Feld ein.cvss_v2 [Float] (optional): Der CVSSv2-Wert für die Schwachstelle.cvss_v3 [Float] (optional): Der CVSSv3-Wert für die Schwachstelle.cvss_v4 [Float] (optional): Der CVSSv4-Wert für die Schwachstelle.unaffected_versions [Array<String>] (optional): Die Versionsanforderungen
für die nicht betroffenen Versionen der Ruby-Implementierung.
unaffected_versions ist 2 Leerzeichen vom linken Rand entfernt.* cve, ghsa und osvdb zugehörige Felder sind keine URLs.patched_versions [Array<String>] (optional): Die Versionsanforderungen
für die gepatchten Versionen der Ruby-Implementierung.
patched_versions/unaffected_versions müssen in Anführungszeichen gesetzt werden
(z. B.: ">= 1.2.3").patched_versions ist 2 Leerzeichen vom linken Rand entfernt.related [Hash<Array<String>>] (optional): Manchmal verweist ein Advisory
auf viele URLs und andere Kennungen. Unterstützte Schlüssel:
cve, ghsa, osvdb und url
cve, ghsa und osvdb sind keine URLs.notes [String] (optional): Interne Hinweise zur Aufnahme der Schwachstelle
in diese Datenbank.url:-Felds auf oberster Ebene entsprechen.rspec spec/schema_validation_spec.rb für zusätzliche Lint-Prüfungen aus.Führen Sie vor dem Einreichen eines Pull Requests die Tests aus:
bundle install
bundle exec rspec
Führen Sie das Ruby-Skript "GH_API_TOKEN=GITHUB_TOKEN_VALUE bundle exec rake sync_github_advisories" aus.
Führen Sie "rake" aus, um die Lint-Prüfungen auszuführen.
Wenn neue oder geänderte Advisories vorhanden sind, reichen Sie einen PR im Repo ein.
WICHTIG: Zwischen den Schritten 2 und 5 müssen Sie die Dateien möglicherweise manuell bearbeiten.
Es gibt ein Skript, das anfängliche YAML-Dateien für RubyGem-Advisories erstellt, die in der GitHub Security Advisory API enthalten sind, aber noch nicht in diesem Datensatz vorhanden sind. Dieses Skript kann regelmäßig ausgeführt werden, um sicherzustellen, dass dieses Repo alle Daten enthält, die in den GitHub Security Advisory-Daten vorhanden sind.
Die GitHub Security Advisory API erfordert ein Token für den Zugriff.
Um den GitHub Security Advisory-Sync auszuführen und alle Advisories abzurufen, führen Sie zunächst die Rake-Aufgabe aus:
GH_API_TOKEN="your GitHub API Token" bundle exec rake sync_github_advisories
Oder, um nur Advisories für eine einzelne Gem abzurufen:
GH_API_TOKEN="your GitHub API Token" bundle exec rake sync_github_advisories[gem_name]
Die Maintainer von Rails LTS haben uns gebeten, die Rails LTS-Versionen nicht zu verfolgen.
Wenn Sie Rails LTS und bundler-audit verwenden, wird empfohlen, dass Sie
die Liste der von Rails LTS behobenen CVEs zu Ihrer .bundler-audit.yml-Datei
unter ignore: hinzufügen.
Zum Schutz der Projektsicherheit und aus Respekt vor der ehrenamtlichen Zeit unserer Maintainer ist für alle Einreichungen strikt ein Human-in-the-Loop erforderlich. Während KI-Tools als Assistenten erlaubt sind, müssen Mitwirkende ihre Arbeit persönlich überprüfen, verstehen und die volle Verantwortung dafür übernehmen. Beiträge, die wie ungeprüfte Maschinenausgabe erscheinen, werden sofort geschlossen, und Wiederholungstäter werden vom Projekt ausgeschlossen und gemeldet.
Bitte sehen Sie in CONTRIBUTORS.md nach.
Diese Datenbank enthält auch Daten aus der Open Sourced Vulnerability Database, die von der Open Security Foundation (OSF) und ihren Mitwirkenden entwickelt wurde.