
커뮤니티에서 유지 관리하는 Ruby 젬 및 런타임용 보안 권고 데이터베이스로, 패치된 버전이 포함된 구조화된 CVE/GHSA 데이터를 제공하여 취약점 추적 및 감사 통합을 지원합니다.
Ruby Advisory Database는 Ruby 라이브러리와 관련된 모든 보안 권고를 수집하기 위한 커뮤니티 노력입니다. 우리는 CVE, GHSA, OSVDB, cvss 또는 원본 취약점 정보와 같은 데이터를 다른 사람들이 생성할 것으로 기대합니다. 자세한 내용은 여기를 참조하세요.
bundler-audit를 사용하여 자신의 Gemfile.lock을 이 데이터베이스와 대조해 볼 수 있습니다.
이 데이터베이스에 등록되지 않은 취약점을 알고 계신가요? 이슈를 열거나 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(Common Vulnerabilities and Exposures) ID.osvdb [Integer] (선택): OSVDB(Open Sourced Vulnerability Database) ID.ghsa [String] (선택): GHSA(GitHub Security Advisory) ID.url [String] (필수): 전체 보안 권고에 대한 URL.title [String] (필수): 보안 권고 또는 개별 취약점의 제목. 한 줄 문장이어야 합니다.
title: 필드는 80자에서 줄 바꿈합니다.date [Date] (필수): 보안 권고의 공개 공개일.description [String] (필수): 취약점을 설명하는 하나 이상의 문단. 여러 문단을 포함할 수 있습니다.
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] (선택): CVE(Common Vulnerabilities and Exposures) ID.osvdb [Integer] (선택): OSVDB(Open Sourced Vulnerability Database) ID.ghsa [String] (선택): GHSA(GitHub Security Advisory) ID.url [String] (필수): 전체 보안 권고에 대한 URL.title [String] (필수): 보안 권고 또는 개별 취약점의 제목. 한 줄 문장이어야 합니다.
title: 필드는 80자에서 줄 바꿈합니다.date [Date] (필수): 보안 권고의 공개 공개일.description [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] (선택): 이 데이터베이스에 취약점을 포함하는 것에 대한 내부 메모.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 스크립트를 실행합니다.
린트 검사를 실행하려면 "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을 사용하는 경우, [Rails LTS에서 해결된 CVE 목록]을 .bundler-audit.yml 파일의 ignore: 아래에 추가하는 것이 좋습니다.
프로젝트 보안을 보호하고 관리자의 자원봉사 시간을 존중하기 위해 모든 제출에는 인간의 개입(human-in-the-loop)이 엄격히 요구됩니다. AI 도구는 보조 도구로 허용되지만, 기여자는 자신의 작업을 직접 검토하고 이해하며 전적인 책임을 져야 합니다. 검토되지 않은 기계 출력으로 보이는 기여는 즉시 종료되며, 반복 위반자는 프로젝트에서 차단되고 신고됩니다.
CONTRIBUTORS.md를 참조하세요.
이 데이터베이스에는 Open Security Foundation(OSF)과 그 기여자들이 개발한 Open Sourced Vulnerability Database의 데이터도 포함됩니다.