
Ruby Advisory Databaseは、Rubyライブラリに関連するすべてのセキュリティアドバイザリをまとめるコミュニティ活動です。 CVE、GHSA、OSVDB、cvss、または元の脆弱性情報などのデータを他の人が作成することを想定しています。 詳細はこちらをご覧ください。
bundler-auditを使用して、自分のGemfile.lockをこのデータベースと照合できます。
このデータベースに記載されていない脆弱性をご存知ですか? 問題を開くか、PRを送信してください。
データベースは、rubygems.org上のRubyライブラリの名前と一致するディレクトリのリストです。各ディレクトリ内には、Rubyライブラリ用の1つ以上のアドバイザリファイルがあります。これらのアドバイザリファイルは、アドバイザリのCVEまたはGHSAまたはOSVDB(レガシー)識別番号を使用して命名されています。
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/gems/ディレクトリには、rubygems.org上のRubyライブラリの名前と一致するサブディレクトリが含まれています。各ディレクトリ内には、Rubyライブラリ用の1つ以上のアドバイザリファイルがあります。これらのアドバイザリファイルは、アドバイザリのCVEまたはGHSA IDを使用して命名されています。
rubies/rubies/ディレクトリには、各Ruby実装のサブディレクトリが含まれています。各ディレクトリ内には、Ruby実装用の1つ以上のアドバイザリファイルがあります。これらのアドバイザリファイルは、アドバイザリのCVEまたはGHSA IDを使用して命名されています。
各アドバイザリファイルには、YAML形式のアドバイザリ情報が含まれています。以下にアドバイザリの例をいくつか示します:
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] (必須): 影響を受けるgemの名前。library [String] (任意): 影響を受けるgemが属するRubyライブラリの名前。framework [String] (任意): 影響を受けるgemが属するフレームワークの名前。(例: rails)platform [String] (任意): この脆弱性がプラットフォーム固有の場合、この脆弱性が影響するプラットフォームの名前 (例: jruby)cve [String] (任意): Common Vulnerabilities and Exposures (CVE) ID。osvdb [Integer] (任意): Open Sourced Vulnerability Database (OSVDB) ID。ghsa [String] (任意): GitHub Security Advisory (GHSA) ID。url [String] (必須): 完全なアドバイザリへのURL。title [String] (必須): アドバイザリまたは個々の脆弱性のタイトル。単一行の文である必要があります。
title: フィールドは80桁で折り返します。date [Date] (必須): アドバイザリの公開日。description [String] (必須): 脆弱性を説明する1つ以上の段落。複数の段落を含めることができます。
description: | を使用します。descriptions: フィールドは80桁で折り返します。description: フィールドに「POC」、「PoC」、「Proof of Concept」の見出しセクション(大文字小文字を問わず)を含めないでください。description: フィールドで「\n」または「%」を使用しないでください。cvss_v2 [Float] (任意): 脆弱性のCVSSv2スコア。cvss_v3 [Float] (任意): 脆弱性のCVSSv3スコア。cvss_v4 [Float] (任意): 脆弱性のCVSSv4スコア。unaffected_versions [Array<String>] (任意): Rubyライブラリの影響を受けないバージョンのバージョン要件。
unaffected_versions のバージョン範囲は引用符で囲む必要があります (例: ">= 1.2.3")。patched_versions [Array<String>] (任意): Rubyライブラリのパッチ適用済みバージョンのバージョン要件。
patched_versions のバージョン範囲は引用符で囲む必要があります (例: ">= 1.2.3")。patched_versions: を省略します。related [Hash<Array<String>>] (任意): アドバイザリが多くのURLやその他の識別子を参照することがあります。サポートされているキー:
cve、ghsa、osvdb、url
cve、ghsa、osvdb の関連フィールドはURLではありません。notes [String] (任意): このデータベースへの脆弱性の包含に関する内部メモ。rubiesengine [ruby | mruby | jruby | truffleruby] (必須): 影響を受けるRuby実装の名前。platform [String] (任意): この脆弱性がプラットフォーム固有の場合、この脆弱性が影響するプラットフォームの名前 (例: jruby)cve [String] (任意): Common Vulnerabilities and Exposures (CVE) ID。osvdb [Integer] (任意): Open Sourced Vulnerability Database (OSVDB) ID。ghsa [String] (任意): GitHub Security Advisory (GHSA) ID。url [String] (必須): 完全なアドバイザリへのURL。title [String] (必須): アドバイザリまたは個々の脆弱性のタイトル。単一行の文である必要があります。
title: フィールドは80桁で折り返します。date [Date] (必須): アドバイザリの公開日。description [String] (必須): 脆弱性を説明する1つ以上の段落。複数の段落を含めることができます。
description: |(|- ではない)を使用します。descriptions: フィールドは80桁で折り返します。description: フィールドで「\n」または「%」を使用しないでください。description: フィールドに「POC」、「PoC」、「Proof of Concept」の見出しセクション(大文字小文字を問わず)を含めないでください。cvss_v2 [Float] (任意): 脆弱性のCVSSv2スコア。cvss_v3 [Float] (任意): 脆弱性のCVSSv3スコア。cvss_v4 [Float] (任意): 脆弱性のCVSSv4スコア。unaffected_versions [Array<String>] (任意): Ruby実装の影響を受けないバージョンのバージョン要件。
unaffected_versions フィールドは、左マージンから2スペースです。* cve、ghsa、osvdb の関連フィールドはURLではありません。patched_versions [Array<String>] (任意): Ruby実装のパッチ適用済みバージョンのバージョン要件。
patched_versions/unaffected_versions のバージョン範囲は引用符で囲む必要があります (例: ">= 1.2.3")。patched_versions フィールドは、左マージンから2スペースです。related [Hash<Array<String>>] (任意): アドバイザリが多くのURLやその他の識別子を参照することがあります。サポートされているキー:
cve、ghsa、osvdb、url
cve、ghsa、osvdb の関連フィールドはURLではありません。notes [String] (任意): このデータベースへの脆弱性の包含に関する内部メモ。url: フィールドの値と等しくする必要があります。rspec spec/schema_validation_spec.rb を実行します。プルリクエストを送信する前に、テストを実行します:
bundle install
bundle exec rspec
"GH_API_TOKEN=GITHUB_TOKEN_VALUE bundle exec rake sync_github_advisories" Rubyスクリプトを実行します。
lintチェックを実行するために "rake" を実行します。
新しいまたは変更されたアドバイザリがある場合は、リポジトリにPRを送信します。
注意:手順2と5の間で、ファイルを手動で編集する必要がある場合があります。
GitHub Security Advisory APIに含まれているが、このデータセットにはまだ含まれていないRubyGemアドバイザリの初期YAMLファイルを作成するスクリプトがあります。このスクリプトは、このリポジトリがGitHub Security Advisoryデータに存在するすべてのデータを確実に持つように定期的に実行できます。
GitHub Security Advisory APIにアクセスするにはトークンが必要です。
すべてのアドバイザリを取得するためにGitHub Security Advisory同期を実行するには、まずrakeタスクを実行します:
GH_API_TOKEN="your GitHub API Token" bundle exec rake sync_github_advisories
または、単一のgemのアドバイザリのみを取得する場合:
GH_API_TOKEN="your GitHub API Token" bundle exec rake sync_github_advisories[gem_name]
Rails LTSのメンテナーは、Rails LTSバージョンを追跡しないよう私たちに依頼しました。
Rails LTSとbundler-auditを使用している場合は、.bundler-audit.yml ファイルの ignore: の下に[Rails LTSで対応しているCVEのリスト]を追加することをお勧めします。
プロジェクトのセキュリティを保護し、メンテナーのボランティア時間を尊重するため、すべての提出物には人間による確認が厳格に必要です。AIツールはアシスタントとして許可されていますが、貢献者は自分の作業を個人的にレビューし、理解し、完全な責任を負う必要があります。レビューされていない機械出力と思われる貢献は直ちにクローズされ、繰り返し違反した者はプロジェクトから追放され、報告されます。
CONTRIBUTORS.mdをご覧ください。
このデータベースには、Open Security Foundation (OSF)とその貢献者によって開発されたOpen Sourced Vulnerability Databaseのデータも含まれています。