CVE-2026-83531
Təsvir
Apache Camel-də Kodun Yaradılmasının Yanlış İdarə Edilməsi ('Code Injection') və İfadə Dili Sitatında istifadə olunan Xüsusi Elementlərin Yanlış Neytrallaşdırılması ('Expression Language Injection') zəifliyi aşkar edilmişdir. Bu problem Apache Camel-in aşağıdakı versiyalarına təsir edir: 4.4.0-dan 4.18.5-ə qədər (4.18.5 daxil deyil), 4.19.0-dan 4.22.1-ə qədər (4.22.1 daxil deyil). 4.4.0 versiyasında tətbiq edilən dynamic-router-control son nöqtəsi (endpoint), marşrutlaşdırma iştirakçılarına idarəetmə mesajları göndərməklə Dynamic Router abunəliklərini idarə etməyə imkan verir. Abunəlik və ya yeniləmə sorğusunu emal edərkən, DynamicRouterControlProducer gələn mesajdan abunəlik predikatını və onu kompilyasiya etmək üçün istifadə olunan dilin adını götürürdü; bu məlumatlar ya DynamicRouterControlMessage gövdəsinin predicate və expressionLanguage sahələrindən, ya da CamelDynamicRouterPredicate və CamelDynamicRouterExpressionLanguage başlıqlarından alınırdı. Daha sonra DynamicRouterControlService həmin dili CamelContext-dən müəyyən edirdi və heç bir ağ siyahı (allow-list) və ya seçim (opt-in) olmadan ifadəni Predicate-ə kompilyasiya edirdi. Kompilyasiya olunmuş predikat kanalın qayda bazasına əlavə edilir və abunəlik mövcud olduğu müddətcə müvafiq dynamic-router son nöqtəsi vasitəsilə yönləndirilən hər bir mübadiləyə (exchange) qarşı qiymətləndirilirdi. Digər JVM-lər və ya tətbiqlərdəki marşrutlaşdırma iştirakçıları üçün komponent sənədlərində göstərildiyi kimi, xarici nəqliyyatdan idarəetmə son nöqtəsinə mesajları ötürən marşrut, həmin nəqliyyat üzərindən mesaj göndərə bilən hər hansı bir aktorun öz seçimi ilə ifadə təqdim etməsinə şərait yaradırdı və bu ifadə Camel prosesinin imtiyazları ilə icra olunurdu. Classpath-də mövcud olan hər hansı ifadə dili seçilə bilərdi, o cümlədən həmişə mövcud olan və başlıq yolunda standart olan 'simple' dili; buna görə də isteğe bağlı ifadə dillərinin classpath-dən silinməsi problemi aradan qaldırmırdı. Zəifliyin istismarı üçün mesajı dynamic-router-control son nöqtəsinə yönləndirən nəqliyyat üzərindən mesaj göndərmək imkanı kifayətdir; digər autentifikasiya və ya istifadəçi qarşılıqlı əlaqəsi tələb olunmur. 4.4.0-dan əvvəlki buraxılışlara bu təsir etmir, çünki onların idarəetmə kanalı predikat ifadələrini yalnız marşrut müəllifi tərəfindən konfiqurasiya edilmiş son nöqtə URI-dən alırdı. İstifadəçilərə problemi həll edən 4.23.0 versiyasına yüksəltmə etmək tövsiyə olunur. Əgər istifadəçilər 4.22.x buraxılış axınındadırlarsa, 4.22.1 versiyasına, 4.18.x buraxılış axınındadırlarsa, 4.18.5 versiyasına yüksəltmə etmələri məsləhətdir. 4.14.x və daha əvvəlki buraxılış axınlarının dəstəklənmə müddəti bu problem həll edilməzdən əvvəl başa çatmışdı və onlar üçün düzəliş təqdim edilməyəcək, ona görə də həmin versiyalardakı tətbiqlər dəstəklənən versiyaya keçirilməlidir. Yüksəltmədən sonra, dynamic-router-control son nöqtəsində yeni allowPredicateFromMessage seçimi aktiv edilmədikcə, predikat ifadəsi və ya ifadə dili daşıyan idarəetmə mesajları rədd edilir; bunu yalnız bütün idarəetmə mesajı göndərənləri etibarlı olduqda aktiv edin. Təcili yüksəltmə edə bilməyən sistemlərdə, etibarsız və ya ortaq nəqliyyatlardan dynamic-router-control son nöqtəsinə mesajlar ötürməyin. İdarəetmə mesajları belə bir nəqliyyatdan keçməlidirsə, göndərəni autentifikasiya edin və hər bir abunəliyin predikatı və ifadə dilinin gələn mesajdan yox, marşrut tərəfindən təyin edildiyindən əmin olun (məsələn, mesaj son nöqtəyə çatmamışdan əvvəl CamelDynamicRouterPredicate və CamelDynamicRouterExpressionLanguage başlıqlarını silərək və DynamicRouterControlMessage-in predicate və expressionLanguage sahələrini təmizləyərək). İsteğe bağlı ifadə dillərinin classpath-dən silinməsi kifayət qədər effektiv alternativ həll yolu deyil. Dərin müdafiə (defence in depth) tədbiri olaraq, idarəetmə son nöqtəsinə məlumat ötürən nəqliyyatlara kimlərin mesaj göndərə biləcəyini məhdudlaşdırın və 4.23.0 və 4.22.1 versiyalarında dynamic-router son nöqtəsinin allowedSchemes seçimini təyin edərək abunəliyin destinationUri-nin hansı son nöqtələri adlandıra biləcəyini məhdudlaşdırın.
Necə düzəltmək olar
- Apache Software Foundation Apache Camel4.18.5, 4.22.1 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Apache Software Foundation Apache Camel | 4.4.0 ≤ v < 4.18.5, 4.19.0 ≤ v < 4.22.1 | 4.18.5, 4.22.1 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.