Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
scc-check — مدقق دون اتصال لـ Spring Cloud Config CVE-2026-40982 — يخبرك ما إذا كان خط إصدارك يحتوي على إصلاح OSS على الإطلاق (3.1.x/4.1.x/4.2.x: لا يحتوي) | Kitploit
أدوات/GitHubGitHub/xiaoqimikko/scc-check
التحليل الثابتماسحات الثغرات الأمنيةتحليل الثغرات الأمنيةDevSecOpsأمن سلسلة التوريد
GitHubxiaoqimikko/scc-check

scc-check

مدقق دون اتصال لـ Spring Cloud Config CVE-2026-40982 — يخبرك ما إذا كان خط إصدارك يحتوي على إصلاح OSS على الإطلاق (3.1.x/4.1.x/4.2.x: لا يحتوي)

عرض المستودع
منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

scc-check

أداة الفحص دون اتصال لـ Spring Cloud Config CVE-2026-40982 —— بلا اعتماديات، ملف jar واحد، دون اتصال بالشبكة.

إنها لا تجيب عن سؤال «هل أنا متأثر؟»، بل عن السؤال الأصعب:

هل يوجد في خط إصداراتي هذا أي إصدار آمن يمكن الترقية إليه على Maven Central؟

بالنسبة لخطوط 3.1.x / 4.1.x / 4.2.x الثلاثة، الجواب هو لا.


لماذا نحتاجها

الإصدار المُصلَح المذكور في الاستشارة الرسمية (spring.io/security/cve-2026-40982):

خط الإصداراتالإصدار المُصلَح الرسميالتوفّرأعلى إصدار على Maven Central في هذا الخطهل يمكنك الترقية إليه
3.1.x3.1.14Enterprise Support Only3.1.10❌
4.1.x4.1.10Enterprise Support Only4.1.7❌
4.2.x4.2.7Enterprise Support Only4.2.4❌
4.3.x4.3.3OSS4.3.4✅
5.0.x5.0.3OSS5.0.4✅

تلك الإصدارات الثلاثة المُصلحة ليست في المستودعات العامة. يمكن لأي شخص التحقق:

curl -sI https://repo1.maven.org/maven2/org/springframework/cloud/spring-cloud-config-server/4.2.7/
# HTTP/1.1 404 Not Found

والأدوات الآلية لن تخبرك بهذا —— في البيانات المهيكلة لـ GitHub advisory، حقل first_patched_version لهذه الخطوط الثلاثة هو null:

{"range": "<= 3.1.13",          "first_patched_version": null}
{"range": ">= 4.1.0, <= 4.1.9", "first_patched_version": null}
{"range": ">= 4.2.0, <= 4.2.6", "first_patched_version": null}
{"range": ">= 4.3.0, <= 4.3.2", "first_patched_version": "4.3.3"}
{"range": ">= 5.0.0, <= 5.0.2", "first_patched_version": "5.0.3"}

Dependabot / OSV يستهلكان هذه البيانات بالضبط. بدون هدف ترقية، لا يمكن تقديم توصية ترقية.


الاستخدام

java -jar scc-check.jar <目录或 jar/war 路径>

# 中文乱码时(Windows 控制台代码页与 Java 判断常常对不上):
java -jar scc-check.jar target/ --utf8

يتطلب Java 17+. بلا أي تبعيات وقت التشغيل، ويمكن إلقاؤه مباشرة في بيئة معزولة (offline).

رموز الخروج: 2 توجد خطوة إصدار لا يمكن الترقية إليها · 1 متأثر لكن يمكن الترقية / لا يمكن الحكم · 0 لم يُعثر على شيء · 3 خطأ في الاستخدام أو المسار

أين يفحص

  • أسماء ملفات .jar / .war
  • التبعيات المضمّنة في Spring Boot fat jar و war (BOOT-INF/lib/، WEB-INF/lib/)
  • بيانات Maven الوصفية داخل jar (META-INF/maven/.../pom.properties) —— يتعرّف عليها حتى لو أُعيدت تسمية jar
  • pom.xml

ثلاثة أشياء يتعمّد عدم فعلها

1. لا يحسب العميل ضمن المتأثرين. هذه الثغرة (CVE) تؤثر فقط على spring-cloud-config-server من جهة الخادم. المشاريع التي تستورد spring-cloud-starter-config (العميل) غير متأثرة، وسيخبرك الأداة بذلك صراحةً بدلًا من أن يجعلك تقلق بلا داعٍ.

2. لا يصدر حكمًا على 4.0.x. لا يغطي أي نطاق في التنبيه الرسمي (advisory) الإصدار 4.0.x (4.0.0 > 3.1.13، لا يقع ضمن النطاق الذي بلا حد أدنى). تكتفي الأداة بالإبلاغ بأنه «خارج النطاق الذي يغطيه التنبيه الرسمي»، ولا تُبلغ بـ CRITICAL —— فملء جدول الأحكام بالتخمين يجعل الناس يتخذون قرارات خاطئة.

3. عند تعذّر قراءة الإصدار يقول صراحةً «لا يمكن الحكم»، ولا يعتبره آمنًا أبدًا. يدير Spring Cloud الإصدارات عبر release train، وغالبًا لا يوجد <version> إطلاقًا في pom.xml. في هذه الحالة تخبرك الأداة بفحص مخرجات البناء (build artifacts)، بدلًا من التظاهر بأنه لم يُعثر على مشكلة. كذلك، التبعيات ذات scope بقيمة test / provided لا تنتقل إلى المستخدم، ولا تُحتسب ضمن سطح التعرّض؛ والتبعيات المحاطة بتعليقات XML تُجرَّد.


جدول الأحكام مُولَّد، لا منسوخ يدويًا

يُصرِّف tools/gen_rules.py ملف RuleTable.java من مصدرين للبيانات الأولية:

  • GitHub advisory GHSA-6g23-24mc-hx6x → النطاقات المتأثرة + الإصدارات الرسمية المُصلحة
  • maven-metadata.xml من repo1.maven.org → الإصدارات الموجودة فعليًا في المستودع العام

مع أربعة تحققات (assertions): عدد النطاقات ≥5، وعدد ما فيه first_patched=null ≥3، وخطوط الإصدارات ≥5، وعدد ما يُحكم عليه بـ ENTERPRISE_ONLY ≥3. إذا لم يتحقق أي منها يتوقف فورًا ولا يُولّد الملف —— وإلا فبمجرد فشل التحليل سيُنتج جدولًا فارغًا، بينما تظل اختبارات الوحدة خضراء بالكامل أمام جدول فارغ.

python tools/gen_rules.py     # 重新生成判定表
mvn test                      # 31 个测试

إخلاء المسؤولية

هذه الأداة تقوم فقط بـمقارنة الإصدارات، ولا تتحقق مما إذا كان Config Server الخاص بك مكشوفًا فعليًا على الإنترنت العام، أو ما إذا كان لديه WAF، أو ما إذا كان قد تم التخفيف منه بطرق أخرى. نتيجة التحديد هي نقطة انطلاق للفحص، وليست استنتاجًا أمنيًا. اعتمد على التنبيهات الرسمية (advisory) كمرجع.

الترخيص

MIT


هل تحتاج إلى فحص أعمق؟

هذه الأداة تجيب على سؤال «هل أنا مصاب أم لا». أما الأمور التالية فهي لا تستطيع الإجابة عليها، ويمكنك التواصل معي للقيام بها:

  • إذا كانت التبعيات قد تعرضت لـ shade / relocate، أو تعذّر الحصول على ناتج البناء أصلًا
  • إذا كان المطلوب تحديد ما إذا كانت «هذه CVE ستُفعَّل فعليًا على سلسلة الاستدعاء لدينا»، وليس مجرد مطابقة الإصدار
  • إذا كان المطلوب تخصيصًا وفق عملية البناء الخاصة بكم أو بيئة الشبكة الداخلية، أو الدمج في خط الأنابيب الحالي
  • إذا كانت لديكم مشكلة مشابهة في مكوّن آخر، ولا توجد أداة جاهزة بعد

📮 [email protected] —— اشرح الوضع، وسأعطيك ردًا مكتوبًا من صفحة واحدة خلال 24 ساعة: هل يمكن القيام به، وأين الصعوبة، وكم يستغرق تقريبًا. هذه الخطوة مجانية، ولا تتطلب منك الالتزام بأي شيء مسبقًا.

رموز الخروج

الرمزالمعنى
0اكتمل الفحص، وتمت قراءة كل ملف فعليًا، ولا توجد نتائج تتطلب إجراءً منك
4هناك ملفات تعذّرت قراءتها —— ليست zip، أو المحتوى مقطوع، أو فشلت القراءة

🔴 تمت إضافة 4 في 2026-09-09، وسبب إضافته يستحق التوضيح. قبل ذلك، كانت الملفات التي تعذّرت قراءتها تترك سطرًا واحدًا فقط في المخرجات، بينما كان رمز الخروج يبقى 0 —— الأثر مكتوب ليقرأه البشر، أما CI والسكربتات فتنظر إلى رمز الخروج، وبالتالي فإن «لم أتمكن من قراءته» تعني في الأتمتة «نجاح». فملف jar تالف أو مشفّر أو غير مكتمل التنزيل يتحول بهدوء إلى عبارة «لم يتم العثور على مشاكل».

«لم أتمكن من قراءته» و«أنت آمن» يجب أن يكونا جملتين مختلفتين.

⚠️ ملف jar فارغ صالح لا يُعدّ تعذّر قراءة (سجل EOCD بحجم 22 بايت هو ملف zip فارغ حقيقي)، ولن يُفعّل 4 —— فكثرة التنبيهات الكاذبة تجعل لا أحد ينتبه للتنبيهات الحقيقية.

لمعاني رموز الخروج الأخرى، راجع مستويات التحديد وتعليمات الاستخدام أعلاه.

تنزيل الأداة