
قاعدة بيانات مجتمعية الصيانة للتنبيهات الأمنية الخاصة بحِزم Ruby وبيئات التشغيل، توفر بيانات منظمة لـ CVE/GHSA مع إصدارات مُصححة لتتبع الثغرات والتكامل مع أدوات التدقيق.
قاعدة بيانات استشارات روبي هي جهد مجتمعي لتجميع جميع الاستشارات الأمنية ذات الصلة بمكتبات روبي. نتوقع من الآخرين إنشاء البيانات، مثل الحصول على معلومات CVE وGHSA وOSVDB وcvss أو معلومات الثغرات الأصلية. مزيد من التفاصيل في هنا.
يمكنك التحقق من ملفات Gemfile.lock الخاصة بك مقابل هذه القاعدة باستخدام bundler-audit.
هل تعرف عن ثغرة غير مدرجة في هذه القاعدة؟ افتح issue أو أرسل PR.
القاعدة هي قائمة من الدلائل التي تطابق أسماء مكتبات روبي على rubygems.org. داخل كل دليل يوجد ملف استشارة واحد أو أكثر لمكتبة روبي. تُسمى ملفات الاستشارة هذه باستخدام رقم معرّف 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. داخل كل دليل يوجد ملف استشارة واحد أو أكثر
لمكتبة روبي. تُسمى ملفات الاستشارة هذه باستخدام
معرّف CVE أو GHSA للاستشارات.
rubies/يحتوي دليل rubies/ على دلائل فرعية لكل تنفيذ من تنفيذات روبي.
داخل كل دليل يوجد ملف استشارة واحد أو أكثر لتنفيذ
روبي. تُسمى ملفات الاستشارة هذه باستخدام معرّف CVE
أو GHSA للاستشارات.
يحتوي كل ملف استشارة على معلومات الاستشارة بتنسيق 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] (مطلوب): اسم الجيم المتأثر.library [String] (اختياري): اسم مكتبة روبي التي ينتمي إليها
الجيم المتأثر.framework [String] (اختياري): اسم الإطار البرمجي الذي ينتمي إليه
الجيم المتأثر. (مثل rails)platform [String] (اختياري): إذا كانت هذه الثغرة خاصة بمنصة معينة،
اسم المنصة التي تؤثر عليها هذه الثغرة (مثل jruby)cve [String] (اختياري): معرّف الثغرات والشوائب الشائعة (CVE).osvdb [Integer] (اختياري): معرّف قاعدة بيانات الثغرات مفتوحة المصدر (OSVDB).ghsa [String] (اختياري): معرّف استشارة أمان GitHub (GHSA).url [String] (مطلوب): الرابط إلى الاستشارة الكاملة.title [String] (مطلوب): عنوان الاستشارة أو الثغرة
الفردية. يجب أن يكون جملة من سطر واحد.
title: عند 80.date [Date] (مطلوب): تاريخ الإفصاح العام عن الاستشارة.description [String] (مطلوب): فقرة واحدة أو أكثر تصف
الثغرة. قد تحتوي على فقرات متعددة.
description: | إذا كانت أكثر من جملة/سطر واحد.descriptions: عند 80.description:.description:.cvss_v2 [Float] (اختياري): درجة CVSSv2 للثغرة.cvss_v3 [Float] (اختياري): درجة CVSSv3 للثغرة.cvss_v4 [Float] (اختياري): درجة CVSSv4 للثغرة.unaffected_versions [Array<String>] (اختياري): متطلبات الإصدار للنسخ
غير المتأثرة من مكتبة روبي.
unaffected_versions (مثال: ">= 1.2.3").patched_versions [Array<String>] (اختياري): متطلبات الإصدار
للنسخ المصححة من مكتبة روبي.
patched_versions (مثال: ">= 1.2.3").patched_versions: إذا لم يكن لديك معرّفات إصدارات مصححة.related [Hash<Array<String>>] (اختياري): أحيانًا تشير الاستشارة
إلى العديد من الروابط والمعرّفات الأخرى. المفاتيح المدعومة:
cve وghsa وosvdb وurl
cve وghsa وosvdb ذات الصلة ليست روابط.notes [String] (اختياري): ملاحظات داخلية بخصوص إدراج الثغرة
في هذه القاعدة.rubiesengine [ruby | mruby | jruby | truffleruby] (مطلوب): اسم
تنفيذ روبي المتأثر.platform [String] (اختياري): إذا كانت هذه الثغرة خاصة بمنصة معينة،
اسم المنصة التي تؤثر عليها هذه الثغرة (مثل jruby)cve [String] (اختياري): معرّف الثغرات والشوائب الشائعة (CVE).osvdb [Integer] (اختياري): معرّف قاعدة بيانات الثغرات مفتوحة المصدر (OSVDB).ghsa [String] (اختياري): معرّف استشارة أمان GitHub (GHSA).url [String] (مطلوب): الرابط إلى الاستشارة الكاملة.title [String] (مطلوب): عنوان الاستشارة أو الثغرة
الفردية. يجب أن يكون جملة من سطر واحد.
title: عند 80.date [Date] (مطلوب): تاريخ الإفصاح العام عن الاستشارة.description [String] (مطلوب): فقرة واحدة أو أكثر تصف
الثغرة. قد تحتوي على فقرات متعددة.
description: | (وليس |-) إذا كانت أكثر من جملة/سطر واحد.descriptions: عند 80.description:.description:.cvss_v2 [Float] (اختياري): درجة CVSSv2 للثغرة.cvss_v3 [Float] (اختياري): درجة CVSSv3 للثغرة.cvss_v4 [Float] (اختياري): درجة CVSSv4 للثغرة.unaffected_versions [Array<String>] (اختياري): متطلبات الإصدار
للنسخ غير المتأثرة من تنفيذ روبي.
unaffected_versions بمسافة 2 فراغ من الهامش الأيسر.* حقول cve وghsa وosvdb ذات الصلة ليست روابط.patched_versions [Array<String>] (اختياري): متطلبات الإصدار
للنسخ المصححة من تنفيذ روبي.
patched_versions/unaffected_versions
(مثال: ">= 1.2.3").patched_versions بمسافة 2 فراغ من الهامش الأيسر.related [Hash<Array<String>>] (اختياري): أحيانًا تشير الاستشارة
إلى العديد من الروابط والمعرّفات الأخرى. المفاتيح المدعومة:
cve وghsa وosvdb وurl
cve وghsa وosvdb ذات الصلة ليست روابط.notes [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".
شغّل "rake" لتشغيل فحوصات lint.
إذا كانت هناك استشارات جديدة أو معدلة، أرسل PR إلى المستودع.
تحذير: بين الخطوتين 2 و5، قد تحتاج إلى تحرير الملفات يدويًا.
يوجد سكربت سينشئ ملفات YAML الأولية لاستشارات RubyGem الموجودة في GitHub Security Advisory API، ولكنها غير موجودة بالفعل في مجموعة البيانات هذه. يمكن تشغيل هذا السكربت بشكل دوري لضمان أن هذا المستودع يحتوي على جميع البيانات الموجودة في بيانات استشارات أمان GitHub.
تتطلب واجهة GitHub Security Advisory API رمزًا للوصول إليها.
لتشغيل مزامنة استشارات أمان GitHub لاسترداد جميع الاستشارات، ابدأ بتنفيذ مهمة rake:
GH_API_TOKEN="your GitHub API Token" bundle exec rake sync_github_advisories
أو، لاسترداد استشارات جيم واحد فقط:
GH_API_TOKEN="your GitHub API Token" bundle exec rake sync_github_advisories[gem_name]
طلب منا القائمون على Rails LTS عدم تتبع إصدارات Rails LTS.
إذا كنت تستخدم Rails LTS وbundler-audit، يُنصح بأن
تضيف [قائمة CVEs التي تعالجها Rails LTS] إلى ملف .bundler-audit.yml الخاص بك
تحت ignore:.
لحماية أمان المشروع واحترام وقت متطوعي القائمين على الصيانة، يُشترط وجود إنسان في الحلقة بشكل صارم لجميع التقديمات. بينما يُسمح باستخدام أدوات الذكاء الاصطناعي كمساعدين، يجب على المساهمين مراجعة وفهم وتحمل المسؤولية الكاملة عن عملهم شخصيًا. أي مساهمات تبدو كمخرجات آلية غير مراجعة ستُغلق فورًا، وسيُحظر المخالفون المتكررون من المشروع وسيُبلَّغ عنهم.
يرجى الاطلاع على CONTRIBUTORS.md.
تتضمن هذه القاعدة أيضًا بيانات من قاعدة بيانات الثغرات مفتوحة المصدر التي طورتها مؤسسة Open Security Foundation (OSF) ومساهموها.