- Yama var
- Son 7 gün
- CWE-89
CVE-2026-120065
psqlODBC sürücüsünde sunucudan gelen sütun adının kaçışlanmaması (SQL enjeksiyonu)
- Yayımlandı
- Güncellendi
- 2 Kas 2026
- Açık yaşı
- 1 gün
- Kaydı açan
- PostgreSQL
Yönetici özeti
Bu açık, veritabanına erişimi olan bir kullanıcının uygulamanın veritabanı işlemlerini manipüle etmesine olanak tanıyabilir. Sonuçta yanlış kayıtların değiştirilmesi veya silinmesi mümkündür. Etkilenen sürücü kullanılıyorsa güncelleme yapılması öncelikli bir iş riskidir.
ÖzetTürkçe
psqlODBC, güncellenebilir imleç (updatable cursor) kullanan sorgularında, sunucunun bildirdiği otomatik artan int4 sütun adını çift tırnak içine yerleştirir ve bu adın içindeki çift tırnakları çoğaltmaz. Bu nedenle sütun adında çift tırnak bulunursa sürücünün çalıştırdığı SQL değişir. Etkilenen sürümler 18.00.0006 öncesi psqlODBC sürümleridir.
Saldırgan ne yapabilir?
Saldırgan, uygulamanın yetkileriyle çalışan SQL ifadelerini değiştirerek hangi satırların güncellendiğini veya silindiğini etkileyebilir; bu da veri bütünlüğü ve gizlilik açısından ciddi sonuçlar doğurabilir.
Kaynaktaki açıklama (İngilizce)
For an updatable cursor over a table without OIDs that has an auto-increment int4 column, psqlODBC uses that column to identify rows. It places the column's name, as reported by the server, between double quotes in its keyset queries and in the WHERE clause of its positioned SELECT, UPDATE, and DELETE statements, without doubling any double quote in the name. A column name that contains a double quote therefore changes the SQL that the driver runs with the application's privileges, including which rows a positioned UPDATE or DELETE affects. Any database user who can create a table that the application reads with an updatable cursor can choose such a name, and so can a server not trusted under current SSL settings. Versions before psqlODBC 18.00.0006 are affected.
Üreticinin çözüm notu (İngilizce)
Upgrade to psqlODBC 18.00.0006 or later. The driver doubles each double quote in the stored column name, and does not use a name that does not fit its buffers to identify rows.
Üreticinin geçici önlemi (İngilizce)
Set UpdatableCursors=0 in the connection string or DSN, or use read-only cursors (SQL_CONCUR_READ_ONLY).
Ne yapmalı?
- psqlODBC sürücüsünü 18.00.0006 veya daha yeni bir sürüme yükseltin. Üretici
- Yükseltme yapılamıyorsa bağlantı dizesinde veya DSN ayarında UpdatableCursors değerini 0 olarak ayarlayın. Üretici
- Yükseltme yapılamıyorsa güncellenebilir imleçler yerine salt okunur imleçler (SQL_CONCUR_READ_ONLY) kullanın. Üretici
Ek önlemler
- Veritabanında tablo oluşturma yetkilerini yalnızca güvenilir kullanıcılarla sınırlandırın. Genel öneri
- Sunucu ve istemci arasındaki SSL/TLS ayarlarını doğrulayarak güvenilmeyen sunucu bağlantılarını engelleyin. Genel öneri
- Beklenmeyen sayıda satırı etkileyen UPDATE veya DELETE işlemleri için veritabanı günlüklerini izleyin. Genel öneri
Bu açık kişisel verilerin sızmasına yol açabilir. Sistemlerinizde kullanıldığından şüpheleniyorsanız KVKK'daki ihlal bildirimi yükümlülüğünüzü (Kurul'a 72 saat içinde bildirim) hukuk danışmanınızla birlikte değerlendirin. Bu not hukuki tavsiye değildir.
Etkilenen sürümler1 yazılım
| Yazılım | Etkilenen | Düzeltildiği sürüm |
|---|---|---|
| PostgreSQL psqlODBC | < 18.00.0006 | 18.00.0006 |
Kaynaklar3 kaynak
Kayıt geçmişi
- Yayımlandı
İlgili açıklar
Türkçe metin, resmi kayıtlardaki bilgilerle yapay zekâ yardımıyla yazıldı ve yayından önce otomatik kontrollerden geçti. Bir değişikliği uygulamadan önce üreticinin duyurusuna mutlaka bakın.