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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-78165 — أداة إثبات مفهوم قابلة للتشغيل لإعادة إنتاج CVE-2026-78165، تُظهر إزالة تسلسل JDK غير المُفلترة لحمولات Redis PUBLISH في Apache Camel camel-spring-redis. | Kitploit
أدوات/GitHubGitHub/oscerd/cve-2026-78165
أدوات دفاعيةتحليل الثغرات الأمنيةالاستغلالالتعلم والتعليم
GitHuboscerd/cve-2026-78165

CVE-2026-78165

أداة إثبات مفهوم قابلة للتشغيل لإعادة إنتاج CVE-2026-78165، تُظهر إزالة تسلسل JDK غير المُفلترة لحمولات Redis PUBLISH في Apache Camel camel-spring-redis.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-78165 — camel-spring-redis: إلغاء تسلسل JDK غير المُفلتر لحمولات Redis

مُعيد إنتاج قابل للتشغيل لإثبات المفهوم (PoC) لثغرة Apache Camel حيث كان camel-spring-redis، عند عدم تكوين خيار serializer، يبني JdkSerializationRedisSerializer مجرّدًا بدون java.io.ObjectInputFilter ويستخدمه في كل عملية قراءة. كان RedisConsumer.setBody يطبّقه على البايتات الخام لكل رسالة تُنشر إلى القنوات المشترك بها، قبل إنشاء الـ Exchange — لذا فإن أي فاعل قادر على إصدار PUBLISH على قناة مشترك بها يصل مباشرةً إلى مصرف إلغاء التسلسل ويمكنه تنفيذ readObject لأي رسم بياني لكائنات متسلسلة عشوائيًا (تنفيذ تعليمات برمجية عن بُعد، CWE-502). كان المُسلسِل الافتراضي نفسه يدعم أوامر قراءة المنتج (GET/HGET/HGETALL/HVALS) وSpringRedisIdempotentRepository.

بيئة التشغيلالدليلالمكدّس
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-spring-redis 4.22.0 (متأثر؛ مُصلَح في 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-spring-redis 3.29.0 (Camel 4.15.0، متأثر)

يعود هذا العيب إلى إدخال المكوّن في الإصدار 2.11.0، لذا فإن كل إصدار متأثر وCamel 4.15.0 في أحدث Camel Quarkus عرضة للثغرة. يأتي الإصلاح في Camel 4.18.5 / 4.22.1 / 4.23.0؛ تشغّل وحدة Spring Boot كلاً من البناء المتأثر (4.22.0) والبناء المُصلَح (4.22.1). لا يوجد إصدار منشور من Camel Quarkus يتضمن بعد نسخة Camel مُصلَحة.

ما الذي يوضّحه

يشغّل التطبيق مسار Camel يقوم بـ SUBSCRIBE إلى cve-channel دون خيار serializer (لذا يُستخدم JdkSerializationRedisSerializer الافتراضي). المهاجم هو عميل Redis عادي لا يستطيع سوى PUBLISH إلى تلك القناة — وليس لديه أي وصول إلى عملية Camel. ينشر البايتات المتسلسلة الخام لكائن com.example.PwnMarker غير ضار عمدًا، والذي لا يفعل readObject الخاص به سوى قلب راية عامة على مستوى JVM (لا gadget، لا أوامر). على البناء المتأثر يقوم المستهلك بإلغاء تسلسله ويُنفَّذ readObject؛ وعلى البناء المُصلَح ترفض قائمة السماح الافتراضية (أنواع java./javax. القياسية وorg.apache.camel.) الكائن com.example.PwnMarker مع InvalidClassException: filter status: REJECTED.

cd camel-spring-boot
mvn clean package
docker compose up -d --build     # starts Redis + the reproducer
curl -s http://localhost:8080/exploit/attack
docker compose down

الناتج المتوقع على البناء المتأثر:

Attacker connects to Redis redis:6379 and PUBLISHes a serialized com.example.PwnMarker to channel 'cve-channel'.
PUBLISH delivered to 1 subscriber(s).

Result:
>>> PROVEN: the Redis consumer deserialized the attacker-published, non-allow-listed class
>>> (com.example.PwnMarker) with no ObjectInputFilter — its readObject executed.

ملخص الثغرة الأمنية

الخاصيةالقيمة
المكوّنcamel-spring-redis (camel-spring-redis-starter / camel-quarkus-spring-redis)
CWECWE-502 (إلغاء تسلسل البيانات غير الموثوقة)
الخطورةعالية
ناقل الهجومPUBLISH إلى قناة يشترك فيها مستهلك Camel spring-redis (أو التحكم في مفتاح Redis يقرأه المنتج)؛ يُلغي المُسلسِل الافتراضي تسلسل الحمولة دون أي مرشّح
التأثيرتنفيذ تعليمات برمجية عن بُعد داخل عملية Camel عبر فئة gadget، قبل تشغيل أي منطق للمسار
الإصدارات المتأثرةمن 2.11.0 قبل 4.18.5، ومن 4.19.0 قبل 4.22.1
الإصدارات المُصلحة4.18.5، 4.22.1، 4.23.0
JIRACAMEL-24421
الفضلLeon Zlobecki

الإشعار الأمني: https://camel.apache.org/security/CVE-2026-78165.html

الإصلاح

يتحكم خيار نقطة النهاية الجديد deserializationFilter في المرشّح المطبَّق أثناء قراءة المُسلسِل الافتراضي للحمولات. عند عدم تعيينه، يُحترم jdk.serialFilter على مستوى JVM إن وُجد، وإلا يُطبَّق قائمة سماح محافظة (أنواع Java وApache Camel القياسية؛ مع رفض java.net)، وعلى 4.23.0/4.22.1 تُفرض أيضًا حدود شكل الرسم البياني الخاصة بـ JEP-290. يُبنى المُسلسِل عبر مُنشئه القائم على Converter مع مُحوِّل لإلغاء التسلسل يعيّن المرشّح على التدفق قبل قراءة الرسم البياني. لا يزال تعيين serializer إلى RedisSerializer مخصص يتجاوز المرشّح، لأن Camel حينها لم يعد يتحكم في كيفية قراءة الحمولة.

التخفيف إذا لم تتمكن من الترقية

عيّن -Djdk.serialFilter=... على مستوى JVM (يحترمه المسار المتأثر)، أو عيّن خيار نقطة النهاية serializer إلى مُسلسِل غير تابع لـ Java مثل StringRedisSerializer (كخيار serializer، وليس فقط على redisTemplate مخصص). اشترط المصادقة على Redis وقيّد من يُسمح له بالنشر إلى القنوات المشترك بها.

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

يُنشر هذا المستودع لأغراض تعليمية ودفاعية: لمساعدة مستخدمي Apache Camel على فهم الثغرة الأمنية، والتحقق مما إذا كانوا متأثرين بها، وتأكيد أن الترقية تحلّها. الحمولة عبارة عن علامة حميدة لا تنفّذ أي تعليمات برمجية. لا تستخدم هذه المواد ضد أنظمة لا تملكها أو لا تديرها.

تنزيل الأداة