CVE-2026-12046

Kritik

Təsvir

pgAdmin 4-ün SQL Editor blueprint-indəki iki vəziyyət-dəyişdirici son nöqtə (endpoint) -- DELETE /sqleditor/close/<trans_id> və POST /sqleditor/initialize/sqleditor/update_connection/<sgid>/<sid>/<did> -- modulda @pga_login_required dekoratoru çatışmayan yeganə marşrutlar idi. Hər ikisi session['gridData'][<trans_id>]['command_obj'] üzərindən pickle.loads sink-inə çatır: close son nöqtəsi close_sqleditor_session() vasitəsilə, update_sqleditor_connection isə check_transaction_status() vasitəsilə. Server rejimində bu son nöqtələrə hər hansı autentifikasiya olunmuş pgAdmin sessiyası olmadan daxil olmaq mümkün idi. Qüsur, etibarsız məlumatın deserializasiyası (CWE-502) sink-i ətrafında kritik funksiyada autentifikasiyanın olmamasıdır (CWE-306). Uzaqdan kodun icrasını həyata keçirmək üçün hücum edən şəxs həmçinin gridData girişi zərərli pickle yükü ehtiva edən server tərəfli sessiya faylını saxtalaşdırmalıdır ki, bu da öz növbəsində aşağıdakıları tələb edir: (a) pgAdmin-in Flask SECRET_KEY açarının bilinməsi (burada onun sızdırılması üçün heç bir zəncir təsvir edilmir -- hücum edən artıq buna sahib olmalıdır) və (b) host-dakı pgAdmin-in sessions/ kataloquna yazıla bilmə imkanı. Bu ilkin şərtlərin heç biri tək başına bu qüsurlan tərəfindən təmin edilmir. Digər kanallar vasitəsilə (səhv konfiqurasiya edilmiş yerləşdirmə, əvvəlki kompromis, sızmış konfiqurasiya) bu şərtlər ödənildikdə, çatışmayan autentifikasiya qapısı mövcud qismən kompromisi pgAdmin prosesində, və nəticədə pgAdmin-i işlədən hesab altında host-da autentifikasiyasız kodun icrasına çevirən sonuncu addım olur. Həll yolu, modulun digər bütün marşrutlarında istifadə olunan konvensiyaya uyğun olaraq, hər iki son nöqtəyə bir sətirlik @pga_login_required dekoratorunun əlavə edilməsidir. Artıq is_authenticated / MFA zənciri trans_id istinad edilməzdən əvvəl işə düşür, beləliklə, autentifikasiya olunmamış sorğu deserializasiya yoluna çatmazdan əvvəl rədd edilir. Bu qüsur yalnız server rejiminə aid edilir. DESKTOP rejimində pgAdmin-in before_request hook-u hər sorğuda DESKTOP_USER-i yenidən autentifikasiya edir, buna görə də heç bir son nöqtə autentifikasiya olunmamış vəziyyətdə istifadə edilə bilməz və autentifikasiya dekoratoru (və ya onun olmaması) mənalı deyil. Qoşma reqressiya testi hücum edənin yolunu əks etdirir -- GET /login-dən X-pgA-CSRFToken əldə edir və onu hər iki son nöqtəyə qarşı təkrar göndərir -- və bu səbəbdən server rejimi xaricində avtomatik ötürülür; o, məlumat izolyasiyası testləri ilə yanaşı mövcud server rejimi CI iş axınına inteqrasiya edilmişdir. Bu problem pgAdmin 4-ün 6.9 versiyasından 9.16 versiyasına qədər olan hissəsinə təsir edir.

CiddilikKritik
CVSS9.0
İstismar ehtimalı—
MəhsulPgadmin 4
Dərc19 iyn 2026
İlk görülmə19 iyn 2026

Necə düzəltmək olar

Yeniləyin
  • pgadmin pgadmin_49.16 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
pgadmin pgadmin_46.9 ≤ v < 9.169.16

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.

Intelligence 360 paketində

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.

CVE-2026-12046 · Pgadmin 4 · Dark Radar