CVE-2022-31197
Açıklama
PostgreSQL JDBC Driver (kısaca PgJDBC), Java programlarının standart ve veritabanından bağımsız Java kodu kullanarak bir PostgreSQL veritabanına bağlanmasına olanak tanır. `java.sql.ResultRow.refreshRow()` metodunun PGJDBC uygulaması, sütun adlarını kaçış karakterleriyle temizlemediği için örneğin `;` gibi bir ifade sonlandırıcı içeren kötü niyetli bir sütun adı SQL injection riskine yol açabilir. Bu durum, uygulamanın JDBC kullanıcısı olarak ek SQL komutlarının çalıştırılmasına neden olabilir. `ResultSet.refreshRow()` metodunu çağırmayan kullanıcı uygulamaları etkilenmez. Bu metodu çağıran kullanıcı uygulamaları ise, JDBC uygulaması üzerinden sorguladıkları temel veritabanının bir saldırganın kontrolünde olması durumunda etkilenir. Saldırı, saldırganın kullanıcıyı, sütun adları kötü niyetli SQL içerikli bir tabloya karşı SQL yürütmeye ikna etmesini ve ardından ResultSet üzerinde `refreshRow()` metodunu çağırtmasını gerektirir. Uygulamanın JDBC kullanıcısının ve şema sahibinin aynı olması gerekmediğine dikkat edilmelidir. Potansiyel olarak kötü niyetli ve daha düşük yetkili kullanıcılara ait veritabanı şemalarını sorgulayan ve ayrıcalıklı bir kullanıcı olarak çalışan bir JDBC uygulaması savunmasız olacaktır. Bu durumda, kötü niyetli kullanıcının, uygulamanın komutları ayrıcalıklı kullanıcı olarak yürütmesine neden olacak bir şema oluşturması mümkün olabilir. Yamalanmış sürümler `42.2.26` ve `42.4.1` olarak yayınlanacaktır. Kullanıcıların yükseltme yapmaları önerilir. Bu sorun için bilinen bir geçici çözüm yoktur.
Nasıl düzeltilir
- postgresql postgresql_jdbc_driver42.2.26, 42.3.7 ya da sonraki bir sürüm
- org.postgresql:postgresql42.2.26, 42.4.1, 42.3.7 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| postgresql postgresql_jdbc_driver | v < 42.2.26, 42.3.0 ≤ v < 42.3.7, 42.4.0, 42.4.1 | 42.2.26, 42.3.7 |
| debian debian_linux | 10.0 | — |
| fedoraproject fedora | 35, 36 | — |
| org.postgresql:postgresqlMaven | v < 42.2.26, 42.4.0 ≤ v < 42.4.1, 42.3.0 ≤ v < 42.3.7 | 42.2.26, 42.4.1, 42.3.7 |
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.