WebLogic’in yeni bir sürümünde, saldırganların başka bir JNDI arama işlemi sırasında JNDI enjeksiyonunu tetiklemesine olanak tanıyan ve hedeflenen sistemde Uzaktan Kod Yürütmeyi (RCE) etkili bir şekilde etkinleştiren yeni bir ikincil JNDI enjeksiyon güvenlik açığı keşfedildi.
Bu güvenlik açığı için, Oracle yazılımının önceki sürümlerinde bulunmayan ve resmi Oracle Q2 üç aylık güncellemesinde yer alan bir yama uygulandı.
Bir saldırgan, WebLogic’in JNDI işlevselliğinden iki ana yöntemle yararlanabilir. İlk olarak, hedef sınıf OpaqueReference arayüzünü uyguluyorsa ve WebLogic, YabancıOpaqueReference sınıfını kullanıyorsa, kötü amaçlı bir arama işlemi, getReferent yöntemi aracılığıyla JNDI enjeksiyonunu tetikleyebilir.
İkinci olarak, Java.naming.factory.object özniteliğinin, InitialContext başlatma sırasında messageDestinationObjectFactory sınıfına ayarlanmasıyla getObjectInstance yöntemi, bir arama işlemi gerçekleştirildiğinde JNDI enjeksiyonuna karşı savunmasız hale gelir.
WebLogic sunucusunda herhangi bir kodun çalıştırılmasına izin veren JNDI özniteliklerindeki normal kısıtlamaları aşıyor ve WebLogic sunucusu bağlamında iki yeni JNDI enjeksiyon güvenlik açığına, CVE-2024-20931 ve CVE-2024-21006’ya bakıyor.
Etkili Kötü Amaçlı Yazılım Analizi için ANY.RUN’u Şirketinize Entegre Edin
SOC, Tehdit Araştırması veya DFIR departmanlarından mısınız? Öyleyse, 400.000 bağımsız güvenlik araştırmacısından oluşan çevrimiçi topluluğa katılabilirsiniz:
- Gerçek Zamanlı Tespit
- İnteraktif Kötü Amaçlı Yazılım Analizi
- Yeni Güvenlik Ekibi Üyelerinin Öğrenmesi Kolay
- Maksimum veriyle ayrıntılı raporlar alın
- Linux’ta ve tüm Windows İşletim Sistemi Sürümlerinde Sanal Makineyi Kurma
- Kötü Amaçlı Yazılımlarla Güvenli Bir Şekilde Etkileşim Kurun
Tüm bu özellikleri şimdi sanal alana tamamen ücretsiz erişimle test etmek istiyorsanız:
ANY.RUN’u ÜCRETSİZ deneyin
CVE-2024-20931, InitialContext’in başlatılmasından yararlanırken, CVE-2024-21006 bu başlatma sırasında kötü amaçlı bir nesne fabrikası sunar ve arama sırasında tetiklenir. WebLogic’in arama işlemi, hedef sınıfın uygulanan arayüzlerini temel alan yöntemleri çağırır.
CVE-2023-21839, CVE-2023-21931 ve CVE-2024-20931 ile birlikte yalnızca ClassTypeOpaqueReference ve ilgili yöntemlerin (getObjectClass/getReferent) veya OpaqueReference (getReferent) uygulanmasıyla bu güvenlik açıklarından yararlanılabilir.
CVE-2023-21839 ve CVE-2024-20931 için WebLogic yamaları, yetkisiz JNDI aramalarını önler. Düzeltme, “weblogic.jndi.internal.ForeignOpaqueReference#getReferent” yöntemini değiştirir. `getReferent` çağrıldığında, `InitialContext` otomatik olarak `java.naming.factory.initial` ve `java.naming.provider.url` özelliklerini ayarlar.
Kötü amaçlı ‘remoteJNDIName’ değerinin ‘lookup’ çağrısında kullanılmasını önleyerek, ‘ForeignOpaqueReference’ yoluyla uzak JNDI istismarını etkili bir şekilde durdurur. Ek olarak, `weblogic.jndi.internal.JNDIUtils#isValidJndiScheme`, yetkisiz erişimi daha da kısıtlamak için JNDI şemasını doğrular.
pwnull’a göre, “java.naming.factory.initial” gibi standart JNDI özellikleri ayarlanmamış olsa bile kod, JNDI enjeksiyonuna karşı savunmasız görünüyor. Saldırgan, daha yeni JDK sürümlerinde yaygın olarak kullanılan “java.naming.factory.object” özelliğinden yararlanabilir.
Bu istismar, Tomcat’teki BeanFactory#getObjectInstance yöntemini kullanarak WebLogic’te messageDestinationObjectFactory#getObjectInstance’ı çağırmak için kullanılır; bu da, sonuçta JNDI enjeksiyonunu, MesajDestinationReference#lookupMessageDestination aracılığıyla tetikler.
WebLogic, ‘java.naming.factory.initial’ ve arama adları gibi özellikleri kontrol ederek JNDI aramalarının nasıl yapılandırılacağını kısıtlayabilir. Bu sınırlamaları aşmak için, özel bir nesne fabrikası ayarlamak amacıyla `java.naming.factory.object` kullanılabilir.
Fabrika, WebLogic’te ikincil JNDI enjeksiyonu gerçekleştiren ‘MessageDestinationObjectFactory’nin ‘getObjectInstance’ yöntemini uygulayarak kaynak bağlamayı dolaylı olarak kontrol etmeye ve potansiyel olarak kısıtlamaları aşmaya olanak tanır.
Is Your Network Under Attack? - Read CISO’s Guide to Avoiding the Next Breach - Download Free Guide