
أداة إعادة إنتاج لـ CVE-2026-46726: حقن الرؤوس الواردة غير المصفاة في Apache Camel camel-vertx-websocket مما يتيح SSRF والكشف عن الأسرار عبر حل العناصر النائبة للخصائص (مصحح في 4.14.8/4.18.3/4.21.0)
أدوات إعادة إنتاج قابلة للتشغيل لنفس الثغرة في Apache Camel، كل أداة تعتمد على بيئة تشغيل مختلفة:
| وقت التشغيل | الدليل | المكدس | تغذية WebSocket |
|---|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 | منفذ منفصل :8090 |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0 (يضم Camel 4.20.0) | خادم HTTP المُدار من Quarkus :8080 |
كلاهما إصداران متأثران (تم الإصلاح في 4.14.8 / 4.18.3 / 4.21.0)، وكلاهما يوضحان نفس الخلل:
يقوم VertxWebsocketConsumer#populateExchangeHeaders بنسخ معلمات استعلام اتصال WebSocket إلى Exchange دون HeaderFilterStrategy. يزود العميل CamelHttpUri كمعامل استعلام ويوجه منتج camel-http النهائي أينما يشاء (SSRF، CWE-918). وبما أن المنتج يحل أيضًا بدائل مكان Camel في URI الذي يتحكم به المهاجم، فإن {{app.secret}} المستخدم يتم توسيعه إلى قيمته الحقيقية وإرساله إلى جامع المهاجم (كشف المعلومات، CWE-200).
يختلف النموذجان فقط في مكان تقديم التغذية: امتداد
camel-quarkus-vertx-websocketيربط دائمًا المستهلك بخادم HTTP المُدار من Quarkus ويرفض أي مضيف/منفذ آخر، لذا يقدم نموذج Quarkus التغذية/feedعلى:8080إلى جانب نقاط نهاية REST الخاصة به. الخلل غير متأثر.
كل مجلد فرعي هو مشروع مستقل بذاته مع ملفات Dockerfile و docker-compose.yml و README خاصة به. باختصار، لأي منهما:
cd camel-spring-boot # أو: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
إرشاد: https://camel.apache.org/security/CVE-2026-46726.html
تم تقديم أدوات إعادة الإنتاج هذه للبحث الأمني والاختبار المصرح به فقط، لثغرة مُعلن عنها ومُصلحة. لا تستخدمها ضد أنظمة دون إذن صريح.
| الخاصية | القيمة |
|---|
| المكون | camel-vertx-websocket |
| الفئة المتأثرة | org.apache.camel.component.vertx.websocket.VertxWebsocketConsumer#populateExchangeHeaders (بدون HeaderFilterStrategy على معاملات الاستعلام/المسار الواردة) |
| CWE | CWE-20 → CWE-918 (SSRF) و CWE-200 (كشف المعلومات) |
| التأثير | حقن CamelHttpUri عبر معامل استعلام WebSocket → SSRF من منتج HTTP نهائي + كشف الأسرار (البيئية/الخصائص/الخزنة) عبر تحليل البدائل |
| الإصدارات المتأثرة | من 4.0.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 |
| JIRA | CAMEL-23532 (PR apache/camel#23285) |
| الفضل | Kamalpreet Singh |