
समुदाय-अनुरक्षित डेटाबेस जो Ruby gems और runtimes के लिए सुरक्षा सलाहकार (security advisories) प्रदान करता है, जिसमें संरचित CVE/GHSA डेटा और पैच किए गए संस्करण (patched versions) शामिल हैं, जो भेद्यता ट्रैकिंग और ऑडिट एकीकरण के लिए उपयोगी है।
Ruby एडवाइज़री डेटाबेस Ruby लाइब्रेरीज़ से संबंधित सभी सुरक्षा एडवाइज़रीज़ को संकलित करने का एक सामुदायिक प्रयास है। हम उम्मीद करते हैं कि अन्य लोग डेटा बनाएंगे, जैसे CVE, GHSA, OSVDB, cvss, या मूल भेद्यता जानकारी प्राप्त करना। अधिक विवरण यहाँ देखें।
आप bundler-audit का उपयोग करके इस डेटाबेस के विरुद्ध अपनी स्वयं की Gemfile.locks की जाँच कर सकते हैं।
क्या आप किसी ऐसी भेद्यता के बारे में जानते हैं जो इस डेटाबेस में सूचीबद्ध नहीं है? एक issue खोलें या PR सबमिट करें।
डेटाबेस उन निर्देशिकाओं की एक सूची है जो rubygems.org पर Ruby लाइब्रेरीज़ के नामों से मेल खाती हैं। प्रत्येक निर्देशिका के भीतर Ruby लाइब्रेरी के लिए एक या अधिक एडवाइज़री फ़ाइलें होती हैं। इन एडवाइज़री फ़ाइलों का नामकरण एडवाइज़रीज़ के CVE या GHSA या OSVDB (legacy) पहचानकर्ता संख्या का उपयोग करके किया जाता है।
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] (वैकल्पिक): उस Ruby लाइब्रेरी का नाम जिससे प्रभावित gem संबंधित है।framework [String] (वैकल्पिक): उस framework का नाम जिससे प्रभावित gem संबंधित है। (जैसे rails)platform [String] (वैकल्पिक): यदि यह भेद्यता platform-विशिष्ट है, तो उस platform का नाम जिसे यह भेद्यता प्रभावित करती है (जैसे 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] (आवश्यक): भेद्यता का वर्णन करने वाले एक या अधिक अनुच्छेद। इसमें कई अनुच्छेद हो सकते हैं।
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>>] (वैकल्पिक): कभी-कभी एक एडवाइज़री कई urls और अन्य पहचानकर्ताओं को संदर्भित करती है। समर्थित कुंजियाँ: cve, ghsa, osvdb, और url
cve, ghsa, और osvdb संबंधित फ़ील्ड URLs नहीं हैं।notes [String] (वैकल्पिक): इस डेटाबेस में भेद्यता के शामिल होने से संबंधित आंतरिक नोट्स।rubiesengine [ruby | mruby | jruby | truffleruby] (आवश्यक): प्रभावित Ruby कार्यान्वयन का नाम।platform [String] (वैकल्पिक): यदि यह भेद्यता platform-विशिष्ट है, तो उस platform का नाम जिसे यह भेद्यता प्रभावित करती है (जैसे 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] (आवश्यक): भेद्यता का वर्णन करने वाले एक या अधिक अनुच्छेद। इसमें कई अनुच्छेद हो सकते हैं।
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 संबंधित फ़ील्ड URLs नहीं हैं।patched_versions [Array<String>] (वैकल्पिक): Ruby कार्यान्वयन के पैच किए गए संस्करणों के लिए संस्करण आवश्यकताएँ।
patched_versions/unaffected_versions संस्करण श्रेणियाँ उद्धृत होनी चाहिए (जैसे: ">= 1.2.3")।patched_versions बाएँ मार्जिन से 2 रिक्त स्थान हैं।related [Hash<Array<String>>] (वैकल्पिक): कभी-कभी एक एडवाइज़री कई urls और अन्य पहचानकर्ताओं को संदर्भित करती है। समर्थित कुंजियाँ: cve, ghsa, osvdb, और url
cve, ghsa, और osvdb संबंधित फ़ील्ड URLs नहीं हैं।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" चलाएँ।
यदि नई या संशोधित एडवाइज़रीज़ हैं, तो repo में एक PR सबमिट करें।
CAVEAT: चरण 2 और 5 के बीच, आपको फ़ाइलों को मैन्युअल रूप से संपादित करने की आवश्यकता हो सकती है।
एक स्क्रिप्ट है जो RubyGem एडवाइज़रीज़ के लिए प्रारंभिक YAML फ़ाइलें बनाएगी जो GitHub Security Advisory API में हैं, लेकिन इस डेटासेट में पहले से नहीं हैं। यह स्क्रिप्ट समय-समय पर चलाई जा सकती है ताकि यह सुनिश्चित हो सके कि इस repo में वह सभी डेटा है जो GitHub Security Advisory डेटा में मौजूद है।
GitHub Security Advisory API तक पहुँचने के लिए एक टोकन की आवश्यकता होती है।
सभी एडवाइज़रीज़ प्राप्त करने के लिए GitHub Security Advisory sync चलाने के लिए, 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 द्वारा संबोधित CVEs की सूची] जोड़ें।
परियोजना सुरक्षा की रक्षा करने और हमारे अनुरक्षकों के स्वयंसेवक समय का सम्मान करने के लिए, सभी सबमिशनों के लिए human-in-the-loop सख्ती से आवश्यक है। जबकि AI उपकरणों को सहायक के रूप में अनुमति है, योगदानकर्ताओं को व्यक्तिगत रूप से अपने काम की समीक्षा करनी चाहिए, उसे समझना चाहिए, और उसकी पूरी ज़िम्मेदारी लेनी चाहिए। कोई भी योगदान जो असमीक्षित मशीन आउटपुट प्रतीत होता है, उसे तुरंत बंद कर दिया जाएगा, और बार-बार उल्लंघन करने वालों को परियोजना से प्रतिबंधित कर दिया जाएगा और रिपोर्ट किया जाएगा।
कृपया CONTRIBUTORS.md देखें।
इस डेटाबेस में Open Security Foundation (OSF) और इसके योगदानकर्ताओं द्वारा विकसित Open Sourced Vulnerability Database का डेटा भी शामिल है।