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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-92392 — يفحص عمليات بناء curl/libcurl المحلية بحثًا عن التعرّض لثغرة CVE-2026-92392، وهي ثغرة استخدام بعد التحرير (use-after-free) في رفع HTTP/2، مع جرد سلبي، وفحص الصور المُثبَّتة (mounted-image)، وفحص PoC محدود عبر loopback. | Kitploit
أدوات/GitHubGitHub/ashu7ank/cve-2026-92392
أدوات دفاعيةماسحات الثغرات الأمنيةأمن الحاوياتالتحليل الديناميكي (عزل)تحليل الثغرات الأمنيةجمع المعلوماتالمحاكاة الافتراضية للأمانالاختبار العشوائي
GitHubashu7ank/cve-2026-92392

CVE-2026-92392

يفحص عمليات بناء curl/libcurl المحلية بحثًا عن التعرّض لثغرة CVE-2026-92392، وهي ثغرة استخدام بعد التحرير (use-after-free) في رفع HTTP/2، مع جرد سلبي، وفحص الصور المُثبَّتة (mounted-image)، وفحص PoC محدود عبر loopback.

5منذ 22 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

فاحص تعرّض curl/libcurl لـ CVE-2026-92392 وإثبات المفهوم (POC)

يقيّم cve_2026_92392_check.py مكوّنات curl وlibcurl المحلية بحثًا عن CVE-2026-92392، وهو ثغرة استخدام بعد التحرير (use-after-free) في رفع HTTP/2 في curl/libcurl.

يدعم الجرد المحلي السلبي، وتقييم البانر المقدَّم، وفحص الصور المُثبَّتة دون تنفيذ، وفحص محدود لبروتوكول HTTP/2 عبر واجهة الاسترجاع (loopback). الفحص دفاعي وغير مسلَّح. لا يحتوي على حمولة أوامر، أو shellcode، أو التلاعب بعناوين الذاكرة، أو منطق تسريب معلومات، أو حمولة RCE.

يرتبط الفحص النشط بـ 127.0.0.1 فقط، ولا يقبل أي عنوان URL أو مضيف هدف بعيد، ولا ينفّذ سوى ملف curl المحلي المحدد.

ما الذي يثبته هذا الفاحص

يفصل الفاحص بين أربعة مستويات مختلفة من الأدلة:

مستوى الدليلما يثبتهما لا يثبته
تصنيف البناءما إذا كان مكوّن curl/libcurl المؤهَّل بإصداره خارج النطاق المتأثر في المنبع، أو متأثرًا في المنبع بحالة ترقيع مورّد غير معروفة، أو متأثرًا مؤكَّدًا باستخدام أدلة حالة الترقيع المقدَّمةما إذا كان التطبيق يستخدم فعليًا مسار رفع HTTP/2 المتأثر
سياق التعرّض أثناء التشغيلما إذا كانت حقائق التطبيق المقدَّمة تشير إلى إمكانية وصول عمليات رفع HTTP/2 إلى نقطة نهاية يتحكم بها المهاجمما إذا كانت الثغرة قد أُطلقت
التحفيز البروتوكوليما إذا كانت أداة الاسترجاع المحلية قد سلّمت كلا متغيري إعادة الضبط الموثّقين مع عمليتي رفع على اتصال HTTP/2 واحداستخدامًا بعد التحرير، أو سبب انهيار، أو تنفيذ شيفرة
نتيجة المُطهِّر المنسوبة إلى CVEما إذا كان قد لوحظ كلٌّ من: التسلسل المرشَّح، واستخدام بعد التحرير في كومة AddressSanitizer، وهوية مكوّن متأثر في المنبع، ومكدّس HTTP/2 مطابقالموثوقية أو قابلية الاستغلال العملي على نظام آخر

لا تُثبت الجولة النظيفة، أو الجولة البروتوكولية غير المكتملة، أو جولة المُطهِّر التي لا تنهار، أن البناء آمن.

ملخص الثغرة

تؤثر CVE-2026-92392 في معالجة رفع HTTP/2 في curl/libcurl. أثناء الرفع، يمكن لبناء متأثر أن يعالج إطار HTTP/2 من نوع RST_STREAM يحمل إما REFUSED_STREAM أو HTTP_1_1_REQUIRED. عندئذٍ يمكن تحليل بيانات الرفع المخزَّنة مؤقتًا كطلب جديد بعد فصل حالة HTTP/2 الخاصة بالنقل الأصلي. ويمكن لاستدعاء HTTP/2 لاحق أن يشير إلى مؤشر Curl_easy قديم.

أكّدت مقارنة REA المستخدمة لمراجعة هذا الفاحص فرق ترتيب التنظيف ذا الصلة:

  1. يستدعي المكوّن المتأثر Curl_conn_ev_data_done، ويعالج المقابض المعلّقة، ثم يستدعي Curl_req_done فقط بعد ذلك.
  2. يصل Curl_req_done إلى req_flush، بينما يكون مسار اكتمال بيانات HTTP/2 قد مسح سياق التدفق بالفعل.
  3. يمكن لبيانات الرفع المخزَّنة المتبقية إنشاء تدفق HTTP/2 لاحق مرتبط بالمؤشر الخام نفسه لمقبض easy.
  4. ينفّذ التنفيذ المُصلَح Curl_req_done قبل Curl_conn_ev_data_done، مما يزيل ذلك الترتيب القديم.

هذا دليل تنفيذي يدعم نموذج الإثبات لدى الفاحص. ولا تزال حالة ترقيع المورّد تتطلب تحققًا مستقلًا.

إصدارات المنبع المتأثرة

يحدد استشارة المنبع التنفيذ المعرَّض للخطر بأنه أُدخل في curl 8.12.0. يصنّف الفاحص إصدارات المنبع كما يلي:

شرط الإصدارالتصنيف
أقدم من 8.12.0NOT AFFECTED
من 8.12.0 حتى 8.22.0، باستثناء الترقيعات الخلفية المُصلَحةمتأثر في المنبع
فرع 8.14 عند 8.14.3 أو أحدثترقيع خلفي مُصلَح
فرع 8.16 عند 8.16.2 أو أحدثترقيع خلفي مُصلَح
فرع 8.20 عند 8.20.2 أو أحدثترقيع خلفي مُصلَح
8.23.0 أو أحدثNOT AFFECTED
تطويري، أو snapshot، أو nightly، أو إصدار غامضINDETERMINATE

يمكن للمورّد أن يطبّق الترقيع خلفيًا دون تغيير سلسلة إصدار curl في المنبع. لذلك، فإن إصدار المنبع المتأثر هو دليل جرد، وليس إثباتًا قاطعًا على أن بناء المورّد غير مُرقَّع.

استخدم --patch-state فقط عندما تكون حالة الإصلاح الدلالي في المصب قد تحققت عبر استشارات المورّد، أو سجلات تغييرات الحزم، أو مقارنة الشيفرة المصدرية، أو أي طريقة أخرى موثوقة على مستوى المكوّن.

قيمة --patch-stateالمعنى
unknownالقيمة الافتراضية. إصدار upstream متأثر يُنتج UPSTREAM-AFFECTED VERSION.
absentتحقّق المشغّل بشكل مستقل من غياب الإصلاح في downstream. بناء متأثر يدعم HTTP/2 يُنتج AFFECTED BUILD.
presentتحقّق المشغّل بشكل مستقل من وجود الإصلاح الدلالي في downstream. هذا تأكيد من المشغّل، وليس دليلاً تلقائياً على التكافؤ الثنائي مع إصلاح curl في upstream.

المتطلبات

  • Python 3.10 أو أحدث.
  • لا توجد اعتماديات Python خارج المكتبة القياسية.
  • ملف curl تنفيذي محلي من أجل --poc.
  • دعم HTTP/2 مؤكَّد لإجراء فحص نشط ذي معنى.
  • بناء curl مُجهَّز بـ AddressSanitizer من أجل --poc-proof asan.
  • الأمر openssl فقط عند استخدام --tls.
  • ملف curl تنفيذي أصلي ELF أو Mach-O مؤهَّل للمنتج من أجل الفحص النشط.

يرفض وضع PoC النشط السكربتات والأغلفة والملفات التنفيذية الأصلية غير المُعرَّفة وثنائيات PE/Windows. يظل التقييم السلبي متاحاً للبانرات وأنظمة الملفات المثبَّتة.

البدء السريع

افحص ثنائي curl الموجود في PATH:

python3 cve_2026_92392_check.py

أخرج JSON:

python3 cve_2026_92392_check.py --json

تشغيل الاختبارات الذاتية الداخلية:

python3 cve_2026_92392_check.py --self-test
python3 -O cve_2026_92392_check.py --self-test

افحص ملف curl التنفيذي المحدد ومكتبة libcurl المشتركة:

python3 cve_2026_92392_check.py \
  --curl-binary /opt/curl/bin/curl \
  --libcurl-path /opt/curl/lib/libcurl.so \
  --json

تقييم لافتة curl موثوقة دون تنفيذ ملف ثنائي:

python3 cve_2026_92392_check.py \
  --version-string 'curl 8.12.0 libcurl/8.12.0 nghttp2/1.61.0' \
  --json

لا تُقبل نسخة مجرّدة مثل 8.12.0 كدليل مُتحقَّق منه على هوية curl/libcurl.

سير عمل الجرد عن بُعد

لا يتصل المدقّق عن قصد بالمضيفين البعيدين. احصل على لافتة الإصدار (banner) عبر قناة إدارية مُصرَّح بها، واحفظها محليًا، ثم قيّمها محليًا:

ssh [email protected] 'curl --version' > host-curl-version.txt

python3 cve_2026_92392_check.py \
  --version-file host-curl-version.txt \
  --http2-use unknown \
  --untrusted-upload unknown \
  --https-certificate unknown \
  --json

إذا أثبتت مراجعة التطبيق أو تتبّع موثوق أن عمليات الرفع تستخدم HTTP/2، ويمكنها الوصول إلى نقطة نهاية يتحكم بها المهاجم، وتقبل شهادتها HTTPS، فقدّم تلك الحقائق صراحةً:

python3 cve_2026_92392_check.py \
  --version-file host-curl-version.txt \
  --http2-use yes \
  --untrusted-upload yes \
  --https-certificate yes \
  --patch-state unknown \
  --json

بالنسبة إلى h2c النصي الصريح، استخدم --https-certificate not-applicable.

يحدد --http2-use yes استخدام HTTP/2 وقت التشغيل. وهو لا يثبت أن البرنامج الثنائي قد جُمِّع بدعم HTTP/2. وبالمثل، يصف --untrusted-upload yes تدفق بيانات التطبيق، بينما يسجل --https-certificate yes شرط الثقة المنفصل الخاص بـ HTTPS.

تقييم الصورة المُثبَّتة

استخدم --root لفحص صورة حاوية مُثبَّتة، أو صورة جهاز ظاهري، أو نظام ملفات مُستخرَج دون تنفيذ الملفات المكتشفة:

python3 cve_2026_92392_check.py \
  --root /mnt/rootfs \
  --json

فحص الجذر:

  • يرفض جذر نظام الملفات كهدف للفحص.
  • لا ينفّذ الملفات الثنائية المكتشفة.
  • يفحص فقط العناصر المسماة curl وcurl.exe وlibcurl.
  • لا يقيّم الملفات الثنائية لـ curl المعاد تسميتها أو libcurl المضمّن بشكل ثابت.
  • يمكنه استعادة أدلة الإصدار أو HTTP/2 من السلاسل النصية، لكن الأدلة المستندة إلى السلاسل فقط قد تبقى INDETERMINATE.

نموذج الحكم والتعرض

يُحدَّد حكم البناء بناءً على شرطين:

الشرط المسبقالمعنى
P1هوية curl/libcurl وإصدارهما موثّقان ضمن النطاق المتأثر في المنبع، رهناً بحالة الترقيع الموثّقة في المصب
P2دعم HTTP/2 مُضمَّن في العنصر المُقيَّم

يُقيَّم التعرض وقت التشغيل بشكل منفصل:

الشرط المسبقالمعنى
P3التحميل المُقيَّم يتفاوض فعلياً على HTTP/2
P4يمكن للتطبيق التحميل إلى نقطة نهاية HTTP/2 يتحكم بها المهاجم
P5تُقبل شهادة HTTPS عند استخدام HTTPS
P6تفاصيل بيئة خاصة بالاستغلال مثل المعمارية وlibc وسلوك تخصيص TLS وحزمة CA
P7تنسيق جانب الاستغلال مثل حجم التحميل والتزامن ونافذة الحمولة والتوقيت

يحدد P1 وP2 قابلية تطبيق البناء. ويحدد P3 وP4 ما إذا كان الاستخدام المحتمل التأثر قد تم تحديده. ويؤثر P5 حتى P7 في ظروف الاستغلال عن بُعد، وليس في وجود ثغرة use-after-free في HTTP/2.

تنزيل الأداة