CVE-2023-39913

Yüksek

Açıklama

Apache UIMA Java SDK'da Güvenilmeyen Verilerin Deserialization işlemi ve Hatalı Girdi Doğrulaması zafiyeti bulunmaktadır. Bu sorun, Apache UIMA Java SDK'nın 3.5.0 öncesi sürümlerini etkilemektedir. Kullanıcıların sorunu gideren 3.5.0 sürümüne yükseltmeleri önerilir. Kod içerisinde, serileştirilmiş Java nesnelerinin veriler doğrulanmadan deserialize edildiği birkaç konum bulunmaktadır. Özellikle şunlar etkilenmektedir: * CasIOUtils sınıfını kullanarak yapılan Java-serileştirilmiş bir CAS'ın deserialization işlemi ve ayrıca TSI bilgileri içeren diğer ikili CAS formatları; * Verileri yüklemek için CasIOUtils sınıfını kullanan CAS Editor Eclipse eklentisi; * Ağ bağlantıları üzerinden Java-serileştirilmiş CAS nesneleri alabilen Vinci Analysis Engine servisinin Java-serileştirilmiş bir CAS'ının deserialization işlemi; * CasAnnotationViewerApplet ve CasTreeViewerApplet; * CPE modülünün checkpointing özelliği. UIMA çerçevesinin varsayılan olarak bu soruna karşı savunmasız olacak herhangi bir uzaktan erişilebilir servis (örneğin Vinci) başlatmadığına dikkat edilmelidir. Bir kullanıcının veya geliştiricinin böyle bir servisi başlatmak için aktif bir seçim yapması gerekir. Ancak kullanıcılar veya geliştiriciler, serileştirilmiş CAS verilerini ayrıştırmak için kendi uygulama ve servislerinde CasIOUtils'i kullanabilirler. CasIOUtils'e iletilen verilerin serileştirilmiş bir Java nesnesi olmadığından emin olmadıkları sürece bu sorundan etkilenirler. Vinci kullanılırken veya CasIOUtils kendi servislerde/uygulamalarda kullanıldığında, Java-serileştirilmiş CAS dosyalarının kısıtlamasız deserialization işlemi, keyfi (uzaktan) kod çalıştırmaya izin verebilir. Bir çözüm olarak, UIMA'yı bunu destekleyen bir Java sürümünde çalıştırıyorsanız, küresel veya bağlama özel bir ObjectInputFilter ayarlamak mümkündür (bkz. https://openjdk.org/jeps/290 ve https://openjdk.org/jeps/415). Java 1.8'in ObjectInputFilter'ı desteklemediğine, dolayısıyla artık desteklenmeyen bu platformda çalıştırıldığında bir çözüm bulunmadığına dikkat edin. Bu sorundan etkilenen bir UIMA sürümünü güvenli hale getirmeniz gerekiyorsa, güncel bir Java sürümüne yükseltme yapmanız şiddetle tavsiye edilir. Sorunu Java 9+ platformunda hafifletmek için, ayırıcı olarak noktalı virgül kullanarak "jdk.serialFilter" sistem özelliği aracılığıyla bir filtre deseni yapılandırabilirsiniz: Java-serileştirilmiş ikili CAS'ların deserialization işlemine izin vermek için şu sınıfları ekleyin: * org.apache.uima.cas.impl.CASCompleteSerializer * org.apache.uima.cas.impl.CASMgrSerializer * org.apache.uima.cas.impl.CASSerializer * java.lang.String CPE Checkpoint verilerinin deserialization işlemine izin vermek için aşağıdaki sınıfları (ve uygulamanızın checkpoint'lerini saklamak için kullandığı tüm özel sınıfları) ekleyin: * org.apache.uima.collection.impl.cpm.CheckpointData * org.apache.uima.util.ProcessTrace * org.apache.uima.util.impl.ProcessTrace_impl * org.apache.uima.collection.base_cpm.SynchPoint Desende listelenmeyen hiçbir sınıfın deserialization işlemine izin vermemek için filtre deseninin son bileşeni olarak "!*" kullandığınızdan emin olun. Apache UIMA 3.5.0, beklenen veri türüne bağlı olarak Java-serileştirilmiş verileri okurken dar kapsamlı ObjectInputFilter'lar kullanır. Bu sürümle birlikte küresel bir filtre yapılandırmak gerekli değildir.

ÖnemYüksek
CVSS8.8
İstismar olasılığı—
ÜrünApache Uimaj
Yayın8 Kas 2023
İlk görülme8 Kas 2023

Nasıl düzeltilir

Güncelleyin
  • apache uimaj3.5.0 ya da sonraki bir sürüm
  • org.apache.uima:uimaj3.5.0 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
apache uimajv < 3.5.03.5.0
org.apache.uima:uimajMavenv < 3.5.03.5.0

Sürümünüzü kontrol edin

Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.

Intelligence 360 paketinde

Attack Surface Management

Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.

CVE-2023-39913 · Apache Uimaj · Dark Radar