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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
NotCVE-2026-0014 — إثبات مفهوم واستشارة لثغرة اجتياز المسار CWE-22 في معالج السحب والإفلات في InputLeap، مع خطوات إعادة الإنتاج، ونص الاستغلال، وإرشادات المعالجة. | Kitploit
أدوات/GitHubGitHub/cduram/notcve-2026-0014
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبجمع المعلوماتاختبار الاختراق
GitHubcduram/notcve-2026-0014

NotCVE-2026-0014

إثبات مفهوم واستشارة لثغرة اجتياز المسار CWE-22 في معالج السحب والإفلات في InputLeap، مع خطوات إعادة الإنتاج، ونص الاستغلال، وإرشادات المعالجة.

عرض المستودع
17منذ 15س 11دلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

الملخص

المنتج: InputLeap v3.0.3
المورّد: input-leap
الثغرة: اجتياز المسار
CWE: CWE-22 التقييد غير الصحيح لاسم المسار إلى دليل مقيّد ('اجتياز المسار')

الوصف

يحاول معالج السحب والإفلات في InputLeap تعقيم أسماء الملفات من خلال إيجاد آخر فاصل مسار والاحتفاظ فقط بالجزء الذي يليه. عندما لا يتم العثور على فاصل، تُرجع عملية البحث في سلاسل C++ قيمة حارسة خاصة تُسمى npos للإشارة إلى الفشل. ومع ذلك، لا يتحقق الكود أبدًا من هذه القيمة الحارسة قبل استخدام النتيجة في العمليات الحسابية. ولأن npos مُعرَّفة على أنها أكبر عدد صحيح غير مُوقَّع ممكن، فإن طرحها يلتف بصمت ويُنتج إجابة تبدو صحيحة لكنها خاطئة تمامًا: فبدلاً من إرجاع اسم الملف فقط، تُرجع السلسلة الأصلية الكاملة غير المُعقَّمة. يمكن للمهاجم استغلال ذلك عبر صياغة رسالة يفتقر فيها أحد العناصر إلى فاصل بينما يحتوي عنصر آخر على فاصل غير متطابق — فتنقلب استدلالية الكشف عن الفواصل العامة في الكود، ويفشل البحث بصمت، ويمرّ ..\..\AppData\...\Startup\evil.exe دون أي تعديل. ثم تُدمج هذه السلسلة مع دليل الإفلات وتُسلَّم إلى نظام التشغيل، الذي يفسّر تسلسلات .. ويكتب الملف خارج المجلد المقصود. توجد الثغرة لأن فحصًا دفاعيًا لحالة "غير موجود" مفقود.

خطوات إعادة الإنتاج

  1. فعّل --enable-drag-drop على الهدف (اختياري، معطّل افتراضيًا).
  2. بصفتك نظيرًا متصلًا، ابدأ رسالة نقل ملف بالسحب والإفلات تحتوي بيانات اسم الملف المضمّنة فيها على حرف "/" في مكان ما من المخزن المؤقت (لإجبار slash="/") بينما يستخدم مقطع اسم الملف الفعلي فواصل "\"، على سبيل المثال تضمين "/" شارد في وقت سابق من كتلة البيانات واسم ملف "..\..\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\evil.exe".
  • تُرجع DragInformation::parseDragInfo الخاصة بـ find_last_of(slash, ...) القيمة npos لمقطع اسم الملف المفصول بـ "\"، مما يسبب التفاف الحساب غير المُوقَّع وإرجاع المسار الكامل غير المقطوع.
  • تُدمج DropHelper::writeToDir هذا المسار مع دليل الإفلات الخاص بالمستخدم (سطح المكتب افتراضيًا) وتكتب الملف دون أي تقنين، فيستقر في مجلد Startup.
  • عند تسجيل الدخول التالي، يُنفَّذ evil.exe بصفة المستخدم الضحية.
  • الكود المتأثر

    /src/lib/inputleap/DragInformation.cpp
    /src/lib/inputleap/DropHelper.cpp

    إثبات المفهوم أو اذهب إلى المنزل

    تم توفير POC يدعم اتصالات TLS وغير المشفّرة إلى الخادم.

    input-leap-directory-traversal-poc.py

    التأثير

    يمكن للمهاجم استغلال هذه الثغرة لرفع ملف إلى مسار عشوائي خارج المجلد الافتراضي أو المُعيَّن. وقد يؤدي ذلك إلى تنفيذ الكود

    الإصلاح المقترح

    1. في DragInformation::parseDragInfo، استبدل استدلالية الكشف عن الشرطة المائلة بـ std::filesystem::path(filename).filename() لضمان استخراج الاسم الأساسي فقط.
    2. في DropHelper::writeToDir، قنّن المسار النهائي باستخدام std::filesystem::canonical وارفضه إذا لم يبدأ بـ destination.
    3. ارفض أسماء الملفات التي تحتوي على ".." أو بايتات NUL أو أحرف محركات الأقراص (X:) أو فواصل بادئة.

    الجدول الزمني للإفصاح

    • 27 يوليو 2026 -- حاولت الإبلاغ إلى مشروع InputLeap، لكنهم أرشفوا المشروع في اليوم السابق لتواصلي. تم الإبلاغ إلى NotCVE.
    • 24 سبتمبر 2026 -- نُشر NotCVE-2026-0014.
    تنزيل الأداة