CVE-2026-27830
Təsvir
JDBC bağlantı hovuzu kitabxanası olan c3p0, bədniyyətli şəkildə hazırlanmış Java-seriyalaşdırılmış obyektlər və `javax.naming.Reference` nümunələri vasitəsilə hücuma məruz qalır. Bir neçə c3p0 `ConnectionPoolDataSource` tətbiqlərində konseptual olaraq `Map<String,Map<String,String>>` təmsil edən `userOverridesAsString` adlı xüsusiyyət mövcuddur. v0.12.0 versiyasından əvvəl bu xüsusiyyət heks-kodlaşdırılmış seriyalaşdırılmış obyekt kimi saxlanılırdı. Mövcud `ConnectionPoolDataSource`-da bu xüsusiyyəti sıfırlaya bilən və ya bədniyyətli şəkildə hazırlanmış seriyalaşdırılmış obyektlər və ya `javax.naming.Reference` nümunələri vasitəsilə müdaxilə edən istənilən hücumçu, tətbiqin `CLASSPATH`-də gözlənilməz kodun icrasını həyata keçirə bilərdi. Bu zəifliyin təhlükəsi c3p0-ın əsas asılılığı olan mchange-commons-java kitabxanasındakı zəifliklərlə daha da artırdı. Bu kitabxana, uzaq `factoryClassLocation` dəyərləri üçün məhdudiyyətsiz dəstək daxil olmaqla, JNDI funksionallığının erkən tətbiqlərini əks etdirən kodu ehtiva edir. Hücumçular c3p0-ın `userOverridesAsString` heks-kodlaşdırılmış seriyalaşdırılmış obyektlərini JNDI istinadları vasitəsilə " dolayı yolla seriyalaşdırılmış" obyektləri daxil edərək təyin edə bilərdilər. Həmin obyektlərin deseriyalaşdırılması və daxil edilmiş `javax.naming.Reference` obyektlərinin istinadlarının açılması, uzaq `factoryClassLocation`-dan bədniyyətli kodun yüklənməsinə və icrasına səbəb ola bilərdi. c3p0-ın zəifliklərinin yaratdığı təhlükə mchange-commons-java-dakı zəifliklərlə ağırlaşsa da, yazılabilən Java-Bean xüsusiyyəti formatı kimi Java-seriyalaşdırılmış-obyekt heksindən istifadə edilməsi və bu obyektlərin JNDI interfeysləri vasitəsilə açıq olması ciddi bir müstəqil çatışmazlıqdır. c3p0 `ConnectionPoolDataSource` siniflərinin `userOverridesAsString` xüsusiyyəti, potensial təhlükəli Java obyekt deseriyalaşdırılmasına əsaslanmaq əvəzinə, təhlükəsiz CSV-əsaslı formatdan istifadə etmək üçün yenidən tətbiq edilmişdir. c3p0-0.12.0+ və daha yuxarı versiyalar, uzaq `factoryClassLocation` dəyərləri üçün dəstəyi standart olaraq məhdudlaşdırıcı dəyərlərə malik konfiqurasiya parametrləri ilə tənzimləyən mchange-commons-java 0.4.0+ versiyasından asılıdır. Bundan əlavə, c3p0 gözlənilməz, potensial olaraq uzaq JNDI adlarının inyeksiyasını önləmək üçün yeni mchange-commons-java `com.mchange.v2.naming.nameGuardClassName`-i tətbiq edir. c3p0-ın 0.12.0-dan əvvəlki versiyaları üçün dəstəklənən alternativ həll yolu yoxdur.
Necə düzəltmək olar
- com.mchange:c3p00.12.0 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| com.mchange:c3p0Maven | v < 0.12.0 | 0.12.0 |
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.