CVE-2026-86863
Açıklama
pgAdmin 4'ün Webserver kimlik doğrulama kaynağı, pgAdmin önündeki web sunucusu veya ters proxy tarafından onaylanan ve WSGI/CGI ortamı aracılığıyla iletilen bir kimliği kabul etmek üzere tasarlanmıştır. WebserverAuthentication.get_user(), request.environ üzerinden config.WEBSERVER_REMOTE_USER değerini okumakta ve bu işlem hiçbir sonuç döndürmediğinde, aynı ismi doğrudan gelen HTTP istek başlıklarından request.headers.get() aracılığıyla okuyarak yedekleme yapmaktaydı. Gelen bir HTTP başlığı, isteği gönderen kişi tarafından yazıldığından, pgAdmin'e erişebilen herhangi bir istemci bu başlığı kendisi sağlayabilir ve şifre veya başka bir kimlik bilgisi sunmadan mevcut bir Administrator dahil belirttiği herhangi bir kullanıcı adı ile kimlik doğrulaması yapabilirdi. WEBSERVER_REMOTE_USER, HTTP_ önekiyle başlayan veya HTTP_X_FORWARDED_USER veya X-Forwarded-User gibi tireli bir isim olarak yapılandırıldığında, WSGI sunucuları gelen başlıkları ortama tam olarak bu isimler altında yerleştirdiği için ortam araması da istemci tarafından sağlanan bir başlıkla karşılanabiliyordu. Dağıtımlar, yalnızca AUTHENTICATION_SOURCES içinde 'webserver' etkinleştirildiğinde etkilenmektedir. Düzeltme, gerçek bir CGI/WSGI değişkenini başlıktan türetilmiş bir değişkenden ayırır ve örtük olarak yalnızca ilkine güvenir. Başlık yoluyla onaylanan bir kimlik artık yalnızca operatör WEBSERVER_REMOTE_USER_FROM_HEADER aracılığıyla bunu açıkça seçtiğinde, istek WEBSERVER_TRUSTED_PROXIES listesinde yer alan bir eşten geldiğinde ve yapılandırılmışsa WEBSERVER_SHARED_SECRET_HEADER içinde sağlanan paylaşılan sır sabit zamanlı bir karşılaştırma altında WEBSERVER_SHARED_SECRET ile eşleştiğinde kabul edilir. Güvenilir eş kontrolü, kasıtlı olarak request.remote_addr yerine gerçek soket eş adresini okur; çünkü ProxyFix, ikincisini istemci kontrollü X-Forwarded-For başlığından yeniden yazar ve aksi takdirde bir saldırganın güvenilir proxy olduğunu iddia etmesine izin verir. Derinlemesine savunma olarak, login() artık auth_source değeri 'webserver' olmayan herhangi bir hesabı reddeder, böylece yanlış yapılandırılmış bir güven kapısı dahili veya LDAP hesabını üstlenmek için kullanılamaz. Bu sorun şu pgAdmin 4 sürümlerini etkilemektedir: 9.18 öncesindeki 6.2'den itibaren olanlar.
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 | 6.2 ≤ 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.