CVE-2026-86863
Təsvir
pgAdmin 4-ün Webserver autentifikasiya mənbəyi, pgAdmin qarşısındakı veb server və ya reverse proxy tərəfindən təsdiqlənmiş və WSGI/CGI mühiti vasitəsilə ötürülmüş kimliyin qəbul edilməsi üçün nəzərdə tutulub. WebserverAuthentication.get_user() funksiyası request.environ-dan config.WEBSERVER_REMOTE_USER dəyərini oxuyurdu və bu heç bir nəticə vermədikdə, eyni adı birbaşa daxil olan HTTP sorğu başlıqlarından request.headers.get() vasitəsilə oxumağa keçirdi. Daxil olan HTTP başlığı sorğunu göndərən şəxs tərəfindən yazıldığı üçün, pgAdmin-ə çata bilən hər hansı müştəri həmin başlığı özü təqdim edə bildiyi kimi, parol və ya hər hansı digər etibarlılıq sənədi olmadan mövcud Administrator da daxil olmaqla istədiyi istifadəçi adı ilə autentifikasiyadan keçə bilərdi. Əgər WEBSERVER_REMOTE_USER konfiqurasiyasında HTTP_-prefiksi olan və ya defislə ayrılmış ad (məsələn, HTTP_X_FORWARDED_USER və ya X-Forwarded-User) təyin edilibsə, mühit axtarışı müştəri tərəfindən təqdim edilən başlıqla da təmin edilə bilərdi, çünki WSGI serverləri daxil olan başlıqları mühitə məhz həmin adlarla yerləşdirir. Quraşdırmalar yalnız AUTHENTICATION_SOURCES bölməsində 'webserver' aktiv olduqda təsirlənir. Düzəliş həqiqi CGI/WSGI dəyişənini başlıqdan törəyən dəyişəndən fərqləndirir və implicit şəkildə yalnız birincisinə etibar edir. Başlıqla təsdiqlənmiş kimlik artıq yalnız operator WEBSERVER_REMOTE_USER_FROM_HEADER vasitəsilə bunu açıq şəkildə seçdikdə, sorğu WEBSERVER_TRUSTED_PROXIES siyahısında olan peer-dən gəldikdə və konfiqurasiya edildikdə, WEBSERVER_SHARED_SECRET_HEADER-də təqdim olunan ortaq sirr sabit zamanlı müqayisə (constant-time comparison) altında WEBSERVER_SHARED_SECRET ilə uyğunlaşdıqda qəbul edilir. Etibarlı peer yoxlaması qəsdən request.remote_addr əvəzinə real soket peer ünvanını oxuyur, çünki ProxyFix sonuncunu müştəri tərəfindən idarə olunan X-Forwarded-For başlığından yenidən yazır və əks halda hücumçuya özünü etibarlı proxy kimi təqdim etməyə imkan verərdi. Dərin müdafiə (defence in depth) tədbiri olaraq, login() funksiyası artıq auth_source-u 'webserver' olmayan hər hansı hesabı rədd edir, beləliklə səhv konfiqurasiya edilmiş etibar qapısından daxili və ya LDAP hesabını ələ keçirmək üçün istifadə etmək mümkün olmayacaq. Bu problem pgAdmin 4-ün 6.2 versiyasından 9.18 versiyasına qədər olan hissəsinə təsir edir.
Necə düzəltmək olar
- pgadmin pgadmin_49.18 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| pgadmin pgadmin_4 | 6.2 ≤ v < 9.18 | 9.18 |
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.