CVE-2026-27830
Açıklama
Bir JDBC bağlantı havuzu kütüphanesi olan c3p0, kötü niyetle oluşturulmuş Java serileştirilmiş nesneler ve `javax.naming.Reference` örnekleri aracılığıyla saldırılara karşı savunmasızdır. Çeşitli c3p0 `ConnectionPoolDataSource` uygulamaları, kavramsal olarak bir `Map<String,Map<String,String>>` temsil eden `userOverridesAsString` adlı bir özelliğe sahiptir. v0.12.0 öncesinde bu özellik, hex ile kodlanmış serileştirilmiş bir nesne olarak tutulmaktaydı. Mevcut bir `ConnectionPoolDataSource` üzerinde bu özelliği sıfırlayabilen veya kötü niyetle oluşturulmuş serileştirilmiş nesneler ya da `javax.naming.Reference` örneklerini kullanabilen herhangi bir saldırgan, uygulamanın `CLASSPATH` dizininde beklenmedik kodlar çalıştırabilir. Bu güvenlik açığının tehlikesi, c3p0'ın ana bağımlılığı olan mchange-commons-java'daki açıklarla ciddi şekilde artmıştır. Bu kütüphane, uzak `factoryClassLocation` değerleri için denetimsiz destek de dahil olmak üzere, JNDI işlevselliğinin erken uygulamalarını yansıtan kodlar içermektedir. Saldırganlar, JNDI referansları aracılığıyla "dolaylı olarak serileştirilmiş" nesneler içeren hex kodlu serileştirilmiş c3p0 `userOverridesAsString` nesneleri ayarlayabilirler. Bu nesnelerin serisizleştirilmesi ve gömülü `javax.naming.Reference` nesnelerinin çözümlenmesi, uzak bir `factoryClassLocation` üzerinden kötü amaçlı kodun indirilmesini ve çalıştırılmasını tetikleyebilir. c3p0'ın zafiyetlerinin yarattığı risk mchange-commons-java'daki açıklarla şiddetlenmiş olsa da, JNDI arayüzleri üzerinden açığa çıkabilecek nesneler için yazılabilir bir Java-Bean özelliği formatı olarak Java serileştirilmiş nesne hex yapısının kullanılması, tek başına ciddi bir kırılganlığı temsil etmektedir. c3p0 `ConnectionPoolDataSource` sınıflarının `userOverridesAsString` özelliği, potansiyel olarak tehlikeli Java nesne serisizleştirmesine güvenmek yerine, güvenli bir CSV tabanlı format kullanacak şekilde yeniden uygulanmıştır. c3p0-0.12.0+ ve üzeri sürümler, uzak `factoryClassLocation` değerlerine verilen desteği varsayılan olarak kısıtlayıcı değerlere sahip yapılandırma parametreleriyle denetleyen mchange-commons-java 0.4.0+ sürümüne bağımlıdır. c3p0 ayrıca, beklenmedik ve potansiyel olarak uzak JNDI adlarının enjekte edilmesini önlemek için yeni mchange-commons-java `com.mchange.v2.naming.nameGuardClassName` özelliğini zorunlu kılar. 0.12.0 öncesindeki c3p0 sürümleri için desteklenen bir geçici çözüm bulunmamaktadır.
Nasıl düzeltilir
- com.mchange:c3p00.12.0 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| com.mchange:c3p0Maven | v < 0.12.0 | 0.12.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.
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.