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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-22738-POC — إثبات مفهوم لاستغلال CVE-2026-22738، وهي ثغرة حرجة من نوع حقن SpEL تؤدي إلى تنفيذ أوامر عن بُعد (RCE) في Spring AI SimpleVectorStore، مع عرض تنفيذ أوامر نظام التشغيل دون مصادقة. | Kitploit
أدوات/GitHubGitHub/n0n4m3x41/cve-2026-22738-poc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالأوراق والأبحاثالتعلم والتعليم
GitHubn0n4m3x41/cve-2026-22738-poc

CVE-2026-22738-POC

إثبات مفهوم لاستغلال CVE-2026-22738، وهي ثغرة حرجة من نوع حقن SpEL تؤدي إلى تنفيذ أوامر عن بُعد (RCE) في Spring AI SimpleVectorStore، مع عرض تنفيذ أوامر نظام التشغيل دون مصادقة.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-22738 — حقن SpEL وتنفيذ أوامر عن بُعد في Spring AI SimpleVectorStore

CVSS CWE Status

تنفيذ أوامر عن بُعد بدون مصادقة عبر حقن لغة تعبير Spring (SpEL) في SimpleVectorStore.similaritySearch().

الإصدارات المتأثرة

| Flag | الافتراضي | الوصف | |---|---|---| | `--target` | `http://localhost:8082` | عنوان URL الأساسي للتطبيق المعرض للثغرة | | `--wait` | off | الاستطلاع حتى يصبح الهدف جاهزًا (مفيد بعد `docker compose up`) |
Artifactالإصدارات المعرضةالإصدار المُصلَح
org.springframework.ai:spring-ai-core1.0.0 – 1.0.41.0.5
org.springframework.ai:spring-ai-core1.1.0-M1 – 1.1.31.1.4

الالتزام المُصلِح: ba9220b22383e430d5f801ce8e4fa01cf9e75f29


الثغرة

تقوم SimpleVectorStore.similaritySearch() بتمرير اسم مفتاح الفلتر المقدَّم من المُتصل حرفيًا إلى قالب SpEL يتم تقييمه بواسطة StandardEvaluationContext. ولأن StandardEvaluationContext يكشف كامل واجهة انعكاس JVM، يمكن للمهاجم حقن:

root@kitploit:~
T(java.lang.Runtime).getRuntime().exec(...)

في مفتاح الفلتر لتحقيق تنفيذ أوامر نظام التشغيل بدون مصادقة.

تفاصيل تجاوز الحماية

الحقن الساذج لا يعمل مباشرة — يجب تجاوز خاصيتين غريبتين في المُحلِّل:

  1. إزالة علامات الاقتباس المفردة — المفتاح الذي يبدأ بـ ' يُعامَل كسلسلة نصية مقتبسة؛ يتم إزالة علامات الاقتباس الخارجية، مما يشوّه الحمولة.
  2. غلاف علامات الاقتباس المزدوجة — لف الحمولة داخل "..." يجعل المُحلِّل يزيل علامات الاقتباس المزدوجة الخارجية، تاركًا تعبير SpEL الداخلي سليمًا كقيمة المفتاح الممرَّرة إلى #metadata['<KEY>'].
  3. مفتاح بيانات وصفية فارغ — استخدام #metadata[''] على جانبي التعبير المحقون (بدلاً من متغير غير معرَّف) يتجنب خطأ SpEL الخاص بـ unknown variable مع الاستمرار في تشغيل exec().

التعبير المُقيَّم الناتج يأخذ الشكل التالي:

root@kitploit:~
#metadata[''] + T(java.lang.Runtime).getRuntime().exec(new String[]{'/bin/bash','-c','<cmd>'}) + #metadata[''] == 'x'

مؤشر النجاح

سيحتوي جسم استجابة HTTP على EL1030E — خطأ وقت تشغيل SpEL:

root@kitploit:~
operator ADD not supported between null and java.lang.ProcessImpl

يُثار هذا الخطأ بعد عودة exec()، مما يؤكد تنفيذ أوامر على مستوى نظام التشغيل دون الحاجة إلى استدعاء خارج النطاق.


الاستخدام

المتطلبات الأساسية:

root@kitploit:~
pip install requests

تشغيل الاستغلال:

root@kitploit:~
python3 exploit.py [--target http://localhost:8082] [--wait]
image

Docker Desktop (macOS/Windows): استخدم host.docker.internal بدلاً من 127.0.0.1 لحمولات الاستدعاء.


خطوات الاستغلال

ينفّذ إثبات المفهوم خمس خطوات متسلسلة:

الخطوةالوصف
1فحص أساسي — تأكيد أن نقطة النهاية قابلة للوصول وتُرجع البيانات المُجهَّزة
2فحص SpEL أعمى — قراءة java.version عبر T(java.lang.System) لتأكيد نقطة الحقن
3تنفيذ أوامر: touch /tmp/pwned_cve_2026_22738 داخل الحاوية
4تنفيذ أوامر: كتابة مخرجات id / uname / hostname إلى /tmp/rce_proof.txt
5التحقق عبر docker exec — طباعة محتويات ملف الإثبات

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

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

تنزيل الأداة