
مُعيد إنتاج PoC لـ CVE-2026-49099 (Apache Camel camel-salesforce): يقوم رأس `sObjectQuery` غير المسبوق بـ "Camel" بتجاوز مرشح رأس HTTP ويتجاوز استعلام SOQL المُهيأ للمنتِج (حقن SOQL / كسر التحكم في الوصول). تم الإصلاح في الإصدارات 4.14.8/4.18.3/4.21.0.
sObjectQuery حقن الرأسمُعيدات إنتاج قابلة للتشغيل (proof-of-concept) لنفس الثغرة في Apache Camel، واحدة لكل بيئة تشغيل:
| بيئة التشغيل | الدليل | المكدس |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0 (يضم Camel 4.20.0) |
كلا النسختين متأثرتان (تم الإصلاح في 4.14.8 / 4.18.3 / 4.21.0)، وكلاهما يُظهر نفس العيب:
AbstractSalesforceProcessor.getParameter() يحل رأس sObjectQuery (ورؤوسه الشقيقة apexUrl، sObjectName، …) قبل القيمة المكوّنة في نقطة النهاية. أسماء تلك الرؤوس هي سلاسل عارية، غير مسبوقة بـ Camel، ولا يوفّر camel-salesforce أي HeaderFilterStrategy، لذلك يسمح مرشح حدود HTTP (HttpHeaderFilterStrategy، الذي يزيل فقط Camel*) بمرور رأس HTTP وارد مباشرةً ويتجاوز SOQL المحدد للمسار — تجاوز استعلام SOQL / كسر التحكم في الوصول (CWE-74 + CWE-639).
كل دليل فرعي هو مشروع مستقل بذاته مع ملف Dockerfile، وdocker-compose.yml، وملف README خاص به — مع مكوّن salesforce بديل للتسجيل، بحيث لا تكون هناك حاجة إلى مؤسسة Salesforce أو OAuth أو شبكة. باختصار، لأي منهما:
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
الإصلاح يُعيد تسمية ثوابت الرؤوس إلى اصطلاح CamelSalesforce* (مثل CamelSalesforceSObjectQuery)، بحيث تُزال عند حدود HTTP مثل أي رأس Camel* آخر.
الإشعار الأمني: https://camel.apache.org/security/CVE-2026-49099.html
مُعيدات الإنتاج هذه مُقدّمة للبحث الأمني والاختبار المأذون به فقط، لثغرة مُفصح عنها علناً وتم إصلاحها. لا تستخدمها ضد أنظمة دون إذن صريح.
| الخاصية | القيمة |
|---|
| المكوّن | camel-salesforce |
| CWE | CWE-74 (Injection) / CWE-639 (Authorization Bypass Through User-Controlled Key) |
| التأثير | يتحكم عميل HTTP غير موثّق في معاملات SOQL/SOSL/Apex المحددة للمسار عبر رؤوس غير مفلترة، فيقرأ أو يتصرف بناءً على بيانات خارج النطاق المقصود بصلاحيات مستخدم التكامل |
| الإصدارات المتأثرة | من 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-23716 (PR apache/camel#23887) |
| الإسناد | Yu Bao (PayPal) |