Ruby 安全公告数据库是一项社区工作,旨在汇编所有与 Ruby 库相关的安全公告。 我们期望其他人创建数据,例如获取 CVE、GHSA、OSVDB、CVSS 或原始漏洞信息。 更多详情请参见此处。
您可以使用 bundler-audit 将您自己的 Gemfile.lock 与此数据库进行比对。
您是否知道此数据库中未列出的漏洞?请提交 issue 或提交 PR。
该数据库是一系列与 rubygems.org 上 Ruby 库名称匹配的目录列表。每个目录中包含一个或多个针对该 Ruby 库的公告文件。这些公告文件使用公告的 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 库的公告文件。这些公告文件使用公告的 CVE 或 GHSA ID 命名。
rubies/rubies/ 目录包含针对每个 Ruby 实现的子目录。每个目录中包含一个或多个针对该 Ruby 实现的公告文件。这些公告文件使用公告的 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](可选):通用漏洞披露(CVE)ID。osvdb [Integer](可选):开源漏洞数据库(OSVDB)ID。ghsa [String](可选):GitHub 安全公告(GHSA)ID。url [String](必需):完整公告的 URL。title [String](必需):公告或单个漏洞的标题。必须是单行句子。
title: 字段在 80 列处换行。date [Date](必需):公告的公开披露日期。description [String](必需):描述漏洞的一个或多个段落。可以包含多个段落。
description: |。rubiesengine [ruby | mruby | jruby | truffleruby](必需):受影响的 Ruby 实现的名称。platform [String](可选):如果此漏洞是特定于平台的,则为受此漏洞影响的平台名称(例如 jruby)cve [String](可选):通用漏洞披露(CVE)ID。osvdb [Integer](可选):开源漏洞数据库(OSVDB)ID。ghsa [String](可选):GitHub 安全公告(GHSA)ID。url [String](必需):完整公告的 URL。title [String](必需):公告或单个漏洞的标题。必须是单行句子。
title: 字段在 80 列处换行。date [Date](必需):公告的公开披露日期。description [String](必需):描述漏洞的一个或多个段落。可以包含多个段落。
url: 字段值相同。rspec spec/schema_validation_spec.rb 进行额外的 lint 检查。在提交拉取请求之前,请运行测试:
bundle install
bundle exec rspec
运行 "GH_API_TOKEN=GITHUB_TOKEN_VALUE bundle exec rake sync_github_advisories" ruby 脚本。
运行 "rake" 以运行 lint 检查。
如果有新增或修改的公告,请向仓库提交 PR。
注意:在第 2 步和第 5 步之间,您可能需要手动编辑文件。
有一个脚本可以为 [GitHub 安全公告 API] 中存在但尚未收录在此数据集中的 RubyGem 公告创建初始 YAML 文件。可以定期运行此脚本,以确保此仓库包含 GitHub 安全公告数据中存在的所有数据。
GitHub 安全公告 API 需要令牌才能访问。
要运行 GitHub 安全公告同步以检索所有公告,请先执行 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,建议您将 [Rails LTS 解决的 CVE 列表] 添加到您的 .bundler-audit.yml 文件的 ignore: 下。
为保障项目安全并尊重维护者的志愿时间,所有提交均严格要求人工参与(human-in-the-loop)。虽然允许使用 AI 工具作为辅助,但贡献者必须亲自审查、理解并对其工作承担全部责任。任何看似未经审查的机器输出将被立即关闭,屡次违规者将被禁止参与该项目并予以举报。
请参阅 CONTRIBUTORS.md。
此数据库还包含来自 开源漏洞数据库 的数据,该数据库由开放安全基金会(OSF)及其贡献者开发。
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](可选):关于漏洞收录到此数据库的内部说明。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](可选):关于漏洞收录到此数据库的内部说明。