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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
drupal-openai-provider-ssrf-cve-2026-13233 — CVE-2026-13233 (Drupal OpenAI Provider, SA-CONTRIB-2026-053): SSRF عبر URL الاستجابة / قراءة ملف محلي. مصدر غير موثوق، وليس المطالبة. مولد آمن + اكتشافات. تم الإصلاح في 1.1.1/1.2.2. | Kitploit
أدوات/GitHubGitHub/kuninogu/drupal-openai-provider-ssrf-cve-2026-13233
تحليل الثغرات الأمنيةأمن الويبالتعلم والتعليم
GitHubkuninogu/drupal-openai-provider-ssrf-cve-2026-13233

drupal-openai-provider-ssrf-cve-2026-13233

CVE-2026-13233 (Drupal OpenAI Provider, SA-CONTRIB-2026-053): SSRF عبر URL الاستجابة / قراءة ملف محلي. مصدر غير موثوق، وليس المطالبة. مولد آمن + اكتشافات. تم الإصلاح في 1.1.1/1.2.2.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

مزود Drupal OpenAI — SSRF / قراءة ملف محلي عبر URL الاستجابة (CVE-2026-13233)

المورد العلوي غير الموثوق: المزوّد الذي جلب عنوان URL الذي أخبرته به استجابته. مزود OpenAI الخاص بـ Drupal (ai_provider_openai) · SSRF (CWE-918) · CVE-2026-13233 · SA-CONTRIB-2026-053

الحالة: الإفصاح المنسق مكتمل (2026-07-10). تم الإبلاغ بشكل خاص لفريق أمان Drupal، وتم الإصلاح، ونشر باسم CVE-2026-13233 / الإشعار SA-CONTRIB-2026-053 (مصنف على أنه حرج بشكل معتدل). تم منح الفضل للمؤلف كـ مكتشف ومطور تصحيح.

دراسة لـ خلل كلاسيكي في التفويض/التحقق من الإدخال على 'نقطة اتصال' AI: قام مزود توليد الصور بالذكاء الاصطناعي بجلب عنوان URL الموجود في استجابة API للمورد العلوي باستخدام دالة عامة بدون قائمة مسموح بها من المخططات. في النشرات حيث المورد العلوي المُهيأ ليس الافتراضي الموثوق (نقطة نهاية خاصة بك / وكيل / بوابة مستضافة ذاتيًا / مرحل مخترق)، يمكن للاستجابة توجيه الخادم إلى file:// أو عنوان داخلي.

المدخل غير الموثوق الذي يصل إلى المصب هو عنوان URL لاستجابة المورد العلوي — وليس حث المستخدم.

  • الفئة (المنشورة): SSRF (CWE-918). تضمن SSRF قراءة file:// لملف محلي؛ كما قام تحليل المؤلف الداخلي بربطه بـ CWE-73 / CWE-441.
  • الخطورة: Drupal حرج بشكل معتدل (SA-CONTRIB-2026-053) — نطاق متوسط على مقياس Drupal ≈ CVSS متوسط؛ ليس CVSS حرج/عالي. التقييم الذاتي للمؤلف قبل الإفصاح: أرضية 3.1 / شرطي 5.3 (متوسط)؛ تم سحب تقييمات سابقة 6.5 / 7.4، وأكد التصنيف المتوسط ذلك.
  • المتأثر: مزود OpenAI الخاص بـ Drupal (ai_provider_openai) < 1.1.1 و 1.2.0–1.2.1 (تم تدقيق 1.2.1) على نواة Drupal 11.2
  • تم الإصلاح في: 1.1.1 / 1.2.2 · CVE: CVE-2026-13233 · الإشعار: https://www.drupal.org/sa-contrib-2026-053

ما تم إثباته (تم تأكيده) مقابل ما لم يتم إثباته (غير مؤكد)

جميع عمليات التحقق تمت في صندوق رمل معزول خاص بالشبكة مقابل مورد علوي وهمي. لم يتم استدعاء واجهة برمجة تطبيقات OpenAI الحقيقية مطلقًا. كانت مؤشرات التسريب تركيبية فقط.

تم تأكيده (إثبات ديناميكي):

  • مشغل غير مسؤول → قراءة من جانب الخادم لـ ملف محلي يختاره المورد العلوي (تم إثبات مسار عشوائي باستخدام علامة فريدة لكل تشغيل؛ تم تقديم المحتوى مطابقًا بايتًا بايتًا للعلامة؛ العلامة موجودة فقط في حاوية التطبيق، غائبة عن الخادم الوهمي — مما يستبعد "أن الخادم الوهمي أعاد ملفه الخاص").
  • تم تأكيد قراءة settings.php عبر مطابقة sha256 (35,182 بايت) — لم يتم طباعة المحتوى مطلقًا؛ وبالتالي فإن بيانات اعتماد قاعدة البيانات ضمن النطاق.
  • استرجاع استجابة SSRF HTTP داخلي من خدمة ليس لها منفذ عام (مطابقة الرمز المميز الداخلي بايتًا بايتًا).
  • حدود التفويض: نفس الحساب يحصل على 403 في مسار التهيئة الإداري (تباين 200-vs-403).
  • إمكانية الوصول المشروع لـ HTTP من خلال تدفق "توليد" أداة الحقل المُهيأ من قبل المسؤول، بواسطة محرر بدون أذونات AI.

غير مؤكد (لم يتم الادعاء به صراحة):

  • سرقة بيانات اعتماد السحابة (IMDS) — آلية قابلة للتصديق من نفس المصب، لم يتم محاولتها.
  • إمكانية الوصول الديناميكي المزدوج للفئة الأساسية — تم تجاوزه في هذا المزود (كود ميت لهذا الهدف)؛ تم تسجيله كـ متغير بنفس السبب الجذري لنقل الإصلاح، وليس كادعاء منفصل.
  • مشغل أوتوماتيكي "حفظ فقط" سلبي — تم اختباره، سلبي. "مجرد الحفظ" لا يؤدي إلى تشغيله.
  • XSS مخزّن (التباس نوع المحتوى) وسباق التزامن بين تحويل الكلام إلى نص — مؤشرات منفصلة، غير مثبتة.

غير متأثر: api.openai.com الافتراضي عبر TLS. إعداد host يتحكم به المسؤول / مزامنة التهيئة / النشر — لا يمكن للمهاجم غير المسؤول أثناء التشغيل تغييره.


السبب الجذري واتجاه الإصلاح (ملخص)

تم تمرير عنوان URL للاستجابة إلى جلب عام يكرم كل غلاف تيار PHP المسجل (file، php، http، data، phar، …). response_format الافتراضي هو url، لذا فإن الفرع الضعيف هو المسار الافتراضي. file:// هو غلاف نظام الملفات الافتراضي لـ PHP و لا يُقيَّد بواسطة allow_url_fopen (ادعاء سابق بـ "يتطلب allow_url_fopen" كان خاطئًا وتم سحبه).

أصلح الأساسية، وليس موقع الاستدعاء فقط:

  1. توقف عن استخدام جلب عام لاسترجاع بعيد؛ استخدم عميل HTTP المحقون فقط.
  2. تحقق من أن المخطط هو http/https قبل الطلب؛ عطّل إعادة التوجيه (يمكن لـ 30x إعادة التوجيه إلى file://).
  3. دفاع في العمق: ارفض المضيفات الخاصة/حلقة الربط/الحلقة المحلية التي تم حلها، أو قيّد بمضيفات CDN الصورة المُهيأة؛ تحقق من الحجم/نوع المحتوى/فك تشفير الصورة.
  4. انقل نفس الإصلاح إلى الفئة الأساسية بحيث يرثها المزوّدون الأشقاء (إصلاح غير مكتمل بخلاف ذلك).
  5. اختبارات الانحدار هي حالة الرفض أولاً: يجب رفض file://…، http://169.254.169.254/…، وإعادة توجيه 302→file://.

الاتجاه الكامل: docs/fix-direction.md.


هيكل الدليل

.
├── README.md                          # هذا الملف (إنجليزي، رسمي)
├── README_ja.md                       # نسخة يابانية
├── SECURITY.md                        # سياسة الإبلاغ + إخلاء مسؤولية الإفصاح المسؤول
├── .gitignore                         # يمنع ارتكاب الأسرار/الأدلة الأولية
├── docs/
│   └── fix-direction.md               # إصلاح السبب الجذري + بحث المتغيرات + مسودة الفرق الأدنى (إنجليزي)
├── reproducer/                        # أداة إعادة إنتاج آمنة فقط (صندوق رمل، خادم علوي وهمي، مؤشر غير ضار)
│   ├── README.md                      # كيفية إعداد صندوق الرمل المعزول عن الشبكة
│   ├── verdict.md                     # ماذا يعني "النجاح": تطابق البايتات الخام + 200-vs-403 + رموز الخروج
│   ├── mock-openai-server.py          # خادم وهمي غير ضار؛ المسار السعيد الافتراضي PNG، ssrf_demo → file:///etc/hostname فقط
│   └── docker-compose.yml             # قالب: صندوق رمل Drupal معزول + خادم وهمي (أنت تضيف الهدف الضعيف)
├── detections/
│   ├── README.md
│   ├── sigma/web-egress-to-internal-after-imagegen.yml
│   ├── sigma/php-sensitive-file-open.yml
│   ├── sentinel/imagegen-egress-correlation.kql
│   └── splunk/imagegen-content-type-mismatch.spl
└── timeline.md                        # الجدول الزمني للإفصاح (مصدر واحد للحقيقة)

المستندات حالياً باليابانية (.ja.md)؛ الترجمات الرسمية الإنجليزية قيد الإنجاز. محجوب من هذا المستودع: حمولات التسلح وأي دليل على قراءة ملف جاهز للاستخدام. تُظهر reproducer/ العامة آلية الخلل مقابل خادم وهمي باستخدام مؤشر واحد غير ضار (/etc/hostname) — لا قراءة لمسار عشوائي، ولا استيلاء على settings.php، ولا IMDS. إنها ليست سلاحاً ضد المواقع المباشرة. حدّث إلى 1.1.1 / 1.2.2.


أداة إعادة إنتاج آمنة

الهدف: السماح للباحث بتأكيد فئة الخلل دون تقديم استغلال لهدف حي أو كشف أسرار. كل شيء يعمل دون اتصال.

تنزيل الأداة