Podatności PostgreSQL
57 znanych podatności CVE w PostgreSQL, przetłumaczonych i ocenionych.
- CVE-2017-15098Wysokie
Wersje PostgreSQL 10.x przed 10.1, 9.6.x przed 9.6.6, 9.5.x przed 9.5.10, 9.4.x przed 9.4.15 oraz 9.3.x przed 9.3.20 mają wadliwe wywołania funkcji json_populate_recordset lub jsonb_populate_recordset, co może prowadzić do awarii serwera lub ujawnienia kilku bajtów pamięci serwera.
- CVE-2017-7548Wysokie
Wersje PostgreSQL przed 9.4.13, 9.5.8 i 9.6.4 są podatne na błąd autoryzacji, który pozwala zdalnym, uwierzytelnionym atakującym bez uprawnień do dużego obiektu na nadpisanie całej zawartości obiektu, co prowadzi do odmowy usługi.
- CVE-2017-7547Wysokie
Wersje PostgreSQL przed 9.2.22, 9.3.18, 9.4.13, 9.5.8 i 9.6.4 mają lukę w autoryzacji, która pozwala zdalnym, uwierzytelnionym atakującym na odzyskanie haseł z map użytkowników zdefiniowanych przez właścicieli zdalnych serwerów, bez posiadania odpowiednich uprawnień.
- CVE-2017-7484Wysokie
W niektórych funkcjach estymacji selektywności w PostgreSQL przed wersją 9.2.21, 9.3.x przed 9.3.17, 9.4.x przed 9.4.12, 9.5.x przed 9.5.7 oraz 9.6.x przed 9.6.3 nie sprawdzano uprawnień użytkownika przed udostępnieniem informacji z pg_statistic, co może prowadzić do wycieku danych. Atakujący bez odpowiednich uprawnień mógł wykorzystać tę lukę do kradzieży informacji z tabel, do których normalnie nie miałby dostępu.
- CVE-2016-5424Wysokie
PostgreSQL w wersjach przed 9.1.23, 9.2.x przed 9.2.18, 9.3.x przed 9.3.14, 9.4.x przed 9.4.9 oraz 9.5.x przed 9.5.4 może pozwolić zdalnym uwierzytelnionym użytkownikom z rolą CREATEDB lub CREATEROLE na uzyskanie uprawnień superużytkownika poprzez niewłaściwe przetwarzanie znaków specjalnych w nazwach baz danych lub ról.
- CVE-2016-5423Wysokie
PostgreSQL w wersjach przed 9.1.23, 9.2.x przed 9.2.18, 9.3.x przed 9.3.14, 9.4.x przed 9.4.9 oraz 9.5.x przed 9.5.4 pozwala zdalnym uwierzytelnionym użytkownikom na wywołanie odmowy usługi (dereferencja wskaźnika NULL i awaria serwera), uzyskanie wrażliwych informacji z pamięci lub potencjalne wykonanie dowolnego kodu poprzez (1) wyrażenie CASE w subwyrażeniu wartości testowej innego CASE lub (2) wstawienie funkcji SQL implementującej operator równości używanego w wyrażeniu CASE z wartościami różnych typów.
- CVE-2016-2193Wysokie
PostgreSQL w wersjach przed 9.5.x i 9.5.2 nieprawidłowo utrzymuje status zabezpieczeń wierszy w planach pamięci podręcznej, co może pozwolić atakującym na obejście zamierzonych ograniczeń dostępu.
- CVE-2016-0773Wysokie
PostgreSQL w wersjach przed 9.1.20, 9.2.x przed 9.2.15, 9.3.x przed 9.3.11, 9.4.x przed 9.4.6 oraz 9.5.x przed 9.5.1 jest podatny na ataki zdalne, które mogą prowadzić do odmowy usługi poprzez nieskończoną pętlę lub przepełnienie bufora.
- CVE-2016-0766Wysokie
PostgreSQL w wersjach przed 9.1.20, 9.2.x przed 9.2.15, 9.3.x przed 9.3.11, 9.4.x przed 9.4.6 oraz 9.5.x przed 9.5.1 nie ogranicza prawidłowo dostępu do nieokreślonych ustawień konfiguracyjnych (GUCS) dla PL/Java. To umożliwia atakującym uzyskanie uprawnień za pomocą nieokreślonych wektorów.
- CVE-2025-4207Średnie
W PostgreSQL podczas walidacji kodowania GB18030 występuje błąd odczytu poza buforem (buffer over-read). Osoba dostarczająca dane do bazy może spowodować tymczasową odmowę usługi (DoS) na platformach, gdzie jednobajtowy odczyt poza zakresem prowadzi do zakończenia procesu. Podatność dotyczy serwera bazy danych oraz biblioteki libpq.
- CVE-2024-10977Średnie
W PostgreSQL klient może używać komunikatów błędów serwera, który nie jest zaufany w ramach bieżących ustawień SSL lub GSS, co pozwala serwerowi na dostarczenie dowolnych bajtów innych niż NUL do aplikacji libpq. Na przykład atakujący typu man-in-the-middle może wysłać długi komunikat błędu, który użytkownik psql może błędnie zinterpretować.
- CVE-2024-10978Średnie
W PostgreSQL wykryto nieprawidłowe przypisanie uprawnień, które pozwala mniej uprzywilejowanemu użytkownikowi aplikacji na przeglądanie lub zmianę innych wierszy niż zamierzone. Atak wymaga użycia przez aplikację SET ROLE, SET SESSION AUTHORIZATION lub równoważnej funkcji. Problem występuje, gdy zapytanie aplikacji używa partycjonowania (partitioning).
- CVE-2024-10979Średnie
W PostgreSQL w rozszerzeniu PL/Perl wykryto nieprawidłową kontrolę zmiennych środowiskowych, co pozwala nieuprzywilejowanemu użytkownikowi bazy danych na zmianę wrażliwych zmiennych środowiskowych procesu (np. PATH). To często wystarcza do uzyskania możliwości wykonania dowolnego kodu, nawet jeśli atakujący nie ma konta systemowego na serwerze bazy danych.
- CVE-2024-4317Średnie
W PostgreSQL wbudowane widoki pg_stats_ext i pg_stats_ext_exprs mają brak autoryzacji, co pozwala nieuprzywilejowanemu użytkownikowi bazy danych na odczytanie najczęściej występujących wartości i innych statystyk z poleceń CREATE STATISTICS innych użytkowników. Najczęściej występujące wartości mogą ujawnić dane kolumn, których podsłuchujący nie mógłby inaczej zobaczyć.
- CVE-2024-7348Średnie
W PostgreSQL w narzędziu pg_dump występuje podatność typu TOCTOU (Time-of-check Time-of-use). Osoba tworząca obiekt może podmienić inny typ relacji na widok lub tabelę zewnętrzną, co pozwala na wykonanie dowolnych funkcji SQL z uprawnieniami użytkownika uruchamiającego pg_dump, często superużytkownika. Atak wymaga oczekiwania na odpowiedni moment.
- CVE-2024-10976Średnie
W PostgreSQL wykryto niekompletne śledzenie tabel z zabezpieczeniami na poziomie wierszy (row security), co pozwala ponownie używanemu zapytaniu na przeglądanie lub zmianę innych wierszy niż zamierzone. Poprawki z CVE-2023-2455 i CVE-2016-2193 nie obejmują przypadków z podzapytaniami, WITH ani security invoker views.
- CVE-2025-59470Krytyczne
Ta podatność pozwala operatorowi kopii zapasowych (Backup Operator) na zdalne wykonanie kodu (RCE) jako użytkownik postgres poprzez wysłanie złośliwego parametru interval lub order.
- CVE-2017-7546Krytyczne
Wersje PostgreSQL przed 9.2.22, 9.3.18, 9.4.13, 9.5.8 i 9.6.4 są podatne na błąd w autoryzacji, który umożliwia zdalnym atakującym uzyskanie dostępu do kont baz danych z pustym hasłem.
- CVE-2026-6471Wysokie
W PostgreSQL brak autoryzacji w dekodowaniu logicznym pozwala użytkownikowi niebędącemu superuserem, posiadającemu uprawnienie REPLICATION, na załadowanie dowolnego pliku widocznego dla konta systemowego uruchamiającego serwer, poprzez wybór wtyczki dekodowania logicznego. To z kolei umożliwia wykonanie dowolnego kodu jako to konto.
- CVE-2026-6470Średnie
W PostgreSQL wykryto brak autoryzacji w poleceniach DDL, co pozwala twórcy obiektu na wywołanie odmowy usługi dla operacji ALTER i DROP na typie, poprzez utworzenie zależności od tego typu. Wiele operacji DDL sprawdzało uprawnienia, ale przypisanie podtypu zakresu i odwołanie do typu z wyrażenia SQL już nie. Podatne są wersje przed PostgreSQL 18.5, 17.11, 16.15, 15.19 i 14.24.
- CVE-2026-6469Niskie
W PostgreSQL, w poleceniu ALTER TABLE ALTER TYPE, błędne przypisanie właściciela powoduje, że obiekty statystyk zależnych zostają przypisane do bieżącego użytkownika. To błędnie pozwala właścicielowi tabeli na wykonanie DROP STATISTICS i ALTER STATISTICS, a jednocześnie uniemożliwia te operacje poprzedniemu właścicielowi obiektu statystyk. DROP TABLE nadal może usuwać obiekty statystyk, więc w wielu układach własności exploit nie osiąga niczego. Dotyczy wersji przed PostgreSQL 18.5, 17.11, 16.15, 15.19 i 14.24.
- CVE-2026-6464Wysokie
W PostgreSQL włączenie niezaufanych danych w psql COPY może pozwolić administratorowi serwera na wywołanie wykonania linii danych jako poleceń psql, poprzez wstrzyknięcie błędu. Jeśli polecenie "COPY FROM STDIN" lub "\copy FROM STDIN" zakończy się niepowodzeniem przed wskazaniem przez serwer oczekiwania na wiersze wejściowe, psql przetwarza wiersze danych jako polecenia psql.
- CVE-2026-19385Wysokie
Przepełnienie bufora sterty w pg_dump w PostgreSQL przy długich listach transformacji funkcji pozwala twórcy obiektu na wykonanie dowolnego kodu jako użytkownik systemu operacyjnego uruchamiający pg_dump, poprzez spreparowaną listę transformacji.
- CVE-2026-18408Wysokie
Włączenie niezaufanych danych w pg_dump w PostgreSQL pozwala złośliwemu superuserowi serwera źródłowego na wstrzyknięcie dowolnego kodu do wykonania podczas przywracania jako konto systemu operacyjnego klienta uruchamiające psql, poprzez rozszerzenie danych wejściowych meta-polecenia psql \restrict. Poprawka dla CVE-2025-8714 wprowadziła \restrict i \unrestrict, ale samo \unrestrict było wystarczające do ataku.
- CVE-2026-18024Średnie
W PostgreSQL wykryto podatność polegającą na odczycie poza zakresem w funkcji SQL ascii(), która pozwala użytkownikowi na ujawnienie do 3 bajtów poza końcem określonej alokacji, poprzez spreparowaną wartość tekstową. Jest to ta sama klasa defektu, którą naprawiono w CVE-2026-2006, choć ten przypadek ma mniejszy wpływ. Podatne są wersje przed PostgreSQL 18.5, 17.11, 16.15, 15.19 i 14.24.
- CVE-2026-16241Niskie
Niedopełnienie liczby całkowitej w PostgreSQL ECPG pozwala administratorowi serwera bazy danych na osiągnięcie tymczasowej odmowy usługi wobec klienta ECPG poprzez wysłanie wartości bytea bez wymaganego prefiksu. Klient nadpisuje ogromny obszar pamięci bajtami, których atakujący nie zna ani nie kontroluje. Zazwyczaj prowadzi to do prostego SIGSEGV, ale w rzadkich przypadkach może osiągnąć wpływ na integralność specyficzny dla klienta poprzez zapis. Dotyczy wersji przed PostgreSQL 18.5, 17.11, 16.15, 15.19 i 14.24.
- CVE-2026-16239Wysokie
Pomylenie typów w cyklu życia "portalu"/kursora w PostgreSQL pozwala użytkownikowi na wykonanie dowolnego kodu jako użytkownik systemu operacyjnego uruchamiający bazę danych, poprzez ponowne utworzenie kursora lub innego portalu z różnymi typami.
- CVE-2026-16238Wysokie
Pomylenie typów w pg_restore_attribute_stats() w PostgreSQL pozwala twórcy obiektu na wykonanie dowolnego kodu jako użytkownik systemu operacyjnego uruchamiający bazę danych, poprzez połączenie wartości range i multirange. Podatność dotyczy tylko wersji 18 przed 18.5.
- CVE-2026-15742Wysokie
W PostgreSQL w module fuzzystrmatch występuje zawinięcie liczby całkowitej, które pozwala użytkownikowi na zapis do ogromnego zakresu adresów i wykonanie dowolnego kodu jako użytkownik systemowy bazy danych, poprzez ekstremalne dane wejściowe do funkcji SQL levenshtein() lub levenshtein_less_equal(). Podatne są wersje przed 18.5, 17.11, 16.15, 15.19 i 14.24.
- CVE-2026-15741Wysokie
W PostgreSQL występuje wstrzyknięcie SQL w funkcji EXTRACT() podczas deparsowania, co pozwala właścicielowi obiektu na wykonanie dowolnego SQL jako superużytkownik poprzez złośliwą definicję obiektu. Ataki dotyczą szerokiego grona konsumentów deparsowania wyrażeń, w tym pg_dump, poleceń psql takich jak \sf, oraz podobnych zastosowań w narzędziach spoza rdzenia. Podatne są wersje przed 18.5, 17.11, 16.15, 15.19 i 14.24.
- CVE-2026-14681Średnie
W PostgreSQL wykryto nieprawidłowe egzekwowanie integralności wiadomości w obsłudze GSSAPI, co pozwala użytkownikowi na negocjowanie GSSAPI wbrew regułom pg_hba.conf, poprzez bezpośrednie połączenie TLS. Mimo że pg_hba.conf wydaje się wymagać GSSAPI, połączenie może wymieniać dane wyłącznie za pomocą szyfrowania TLS. Jeśli ustawienia TLS są bardziej liberalne niż ustawienia GSS, połączenie może być kontynuowane z mniejszą ochroną. Podatne są wersje główne 17-18, przed PostgreSQL 18.5 i 17.11; wersje przed PostgreSQL 17 nie są dotknięte.
- CVE-2026-14680Wysokie
W PostgreSQL występuje pomylenie typów (type confusion) z argumentami typu danych "internal", co pozwala każdemu użytkownikowi na wykonanie dowolnego kodu jako użytkownik systemowy bazy danych, poprzez wywołania funkcji z tym typem argumentu. Typ "internal" reprezentuje klasę wzajemnie niekompatybilnych struktur danych, które nie są przeznaczone do dostępu z SQL. System miał zapobiegać takim wywołaniom, ale luki w zabezpieczeniach pozostały. Podatne są wersje przed 18.5, 17.11, 16.15, 15.19 i 14.24.
- CVE-2026-14679Wysokie
W PostgreSQL występuje przepełnienie bufora stosu w dopasowywaniu nazw argumentów, co pozwala twórcy obiektu na osiągnięcie nieznanych skutków poprzez liczbę parametrów OUT. Atak może zapisywać tylko bajty 0x0 i 0x1. Podatne są wersje przed 18.5, 17.11, 16.15, 15.19 i 14.24.
- CVE-2026-14678Średnie
W PostgreSQL wykryto podatność polegającą na odczycie poza zakresem w funkcji picksplit indeksu pg_trgm, która czyta dane poza końcem bufora sterty. Może to pozwolić osobie utrzymującej tabelę na wywnioskowanie ograniczonych wartości pamięci, poprzez sygnał stratny wyborów podziału indeksu. Podatne są wersje przed PostgreSQL 18.5, 17.11, 16.15, 15.19 i 14.24.
- CVE-2026-14677Wysokie
W PostgreSQL w wersjach 32-bitowych modułów pltcl i plperl występuje zawinięcie liczby całkowitej, co pozwala twórcy obiektu na spowodowanie zbyt małej alokacji i zapis poza zakresem poprzez spreparowane ciała funkcji. Może to prowadzić do wykonania dowolnego kodu jako użytkownik systemowy bazy danych. CVE-2026-6473 naprawiło podobne problemy. Podatne są wersje przed 18.5, 17.11, 16.15, 15.19 i 14.24.
- CVE-2026-14676Wysokie
W PostgreSQL w module pg_stat_statements występuje przepełnienie bufora sterty, co pozwala autorowi zapytania na wykonanie dowolnego kodu jako użytkownik systemowy bazy danych, poprzez spreparowane zapytania zawierające stałe tablicowe. W obrębie głównej wersji 18 podatne są wersje przed 18.5. Wersje przed PostgreSQL 18 nie są podatne.
- CVE-2026-14673Niskie
Niebezpieczna ścieżka wyszukiwania w PostgreSQL amcheck pozwala osobie posiadającej uprawnienie EXECUTE do funkcji amcheck na wykonanie dowolnych funkcji jako właściciele indeksów wyrażeń, które zależą od ścieżki wyszukiwania, poprzez ustawienie wrogiej ścieżki wyszukiwania przed wywołaniem funkcji amcheck. W obrębie głównych wersji 18, 16, 15 i 14, dotknięte są wersje przed PostgreSQL 18.5, 16.15, 15.19 i 14.24. PostgreSQL 17 nie jest dotknięty.
- CVE-2026-14672Średnie
W PostgreSQL wykryto zauważalną różnicę w odpowiedzi podczas uwierzytelniania SCRAM, co pozwala nieuwierzytelnionemu użytkownikowi na sprawdzenie istnienia użytkownika poprzez obserwację liczby iteracji SCRAM. Wymaga to, aby badany użytkownik miał niestandardową liczbę scram_iterations, ponieważ wyzwanie uwierzytelniające dla nieistniejącego użytkownika zgłasza domyślną liczbę. Podatne są wersje główne 16-18, przed PostgreSQL 18.5, 17.11 i 16.15; wersje przed PostgreSQL 16 nie są dotknięte.
- CVE-2026-14671Wysokie
W PostgreSQL w module "refint" występuje pomylenie typów, co pozwala twórcy obiektu na wykonanie dowolnego kodu jako użytkownik systemowy bazy danych. Poprawka pojawiła się jako nie-bezpieczeństwowy raport o błędzie i znajduje się w repozytorium git z tematem "refint: Remove plan cache.", bez numeru CVE. Podatne są wersje przed 18.5, 17.11, 16.15, 15.19 i 14.24.
- CVE-2026-14670Wysokie
W PostgreSQL w plperl występuje przepełnienie bufora sterty przy zwracaniu powiązanego hasza (tied hash), co pozwala właścicielowi funkcji na wykonanie dowolnego kodu jako użytkownik systemowy bazy danych, poprzez spreparowane ciało funkcji. Podatne są wersje przed 18.5, 17.11, 16.15, 15.19 i 14.24.
- CVE-2026-14669Wysokie
W PostgreSQL w funkcji to_char(timestamptz) występuje przepełnienie bufora sterty, co pozwala osobie wybierającej strefę czasową na wykonanie dowolnego kodu jako użytkownik systemowy bazy danych, poprzez długi skrót strefy czasowej POSIX. Podatne są wersje przed 18.5, 17.11, 16.15, 15.19 i 14.24.
- CVE-2026-14668Wysokie
W PostgreSQL występuje pomylenie typów dotyczące wejścia estymatora selektywności typu danych ctid, co pozwala twórcy obiektu na podgląd obliczenia pochodzącego z wartości dowolnego 4-bajtowego fragmentu pamięci, poprzez wybrane wejście nie będące ctid. Mimo że obliczenie traci precyzję, możliwe jest odzyskanie znacznej części wartości pamięci. Podatne są wersje przed 18.5, 17.11, 16.15, 15.19 i 14.24.
- CVE-2026-14666Średnie
W PostgreSQL wykryto niepełne śledzenie zmian w członkostwie ról, atrybutach ról i własności baz danych, co pozwala zapytaniu na kontynuowanie korzystania z buforowanych polityk bezpieczeństwa na poziomie wierszy po zmianach wymagających innej polityki, poprzez ponowne użycie planu. Nieaktualne polityki pozostają aż do unieważnienia pamięci podręcznej lub zakończenia sesji. Pozwala to użytkownikowi na dokończenie odczytów i modyfikacji, które były wcześniej dozwolone, ale teraz są zabronione. Atakujący musi dostosować atak do konkretnego wzorca usuwania uprawnień i polityk bezpieczeństwa wierszy w aplikacji. Podatne są wersje przed PostgreSQL 18.5, 17.11, 16.15, 15.19 i 14.24.
- CVE-2026-14664Wysokie
Przepełnienie bufora sterty w wyrażeniach regularnych PostgreSQL pozwala autorowi zapytania na wykonanie dowolnego kodu jako użytkownik systemu operacyjnego uruchamiający bazę danych, poprzez tekst, który nie przeszedłby walidacji kodowania. Podatność dotyczy wersji przed 18.5, 17.11, 16.15, 15.19 i 14.24.
- CVE-2026-14663Średnie
W PostgreSQL wykryto przechowywanie tekstu jawnego w wyłączonych szyfrach pgcrypto, co pozwala użytkownikowi na odzyskanie tekstu jawnego poprzez bezpośrednią obserwację wadliwego szyfrogramu. Wersja OpenSSL i konfiguracja OpenSSL określają wyłączone szyfry. Jeśli aplikacja przyjmuje zaszyfrowane dane jako dane wejściowe, deszyfrowanie zakończy się sukcesem nawet przy złym kluczu. To z kolei traci skromną ochronę z kodu wykrywania modyfikacji (MDC). Dotknięte funkcje to pgp_sym_encrypt, pgp_sym_decrypt, pgp_pub_encrypt, pgp_pub_decrypt, pgp_sym_encrypt_bytea, pgp_sym_decrypt_bytea, pgp_pub_encrypt_bytea i pgp_pub_decrypt_bytea. Podatne są wersje przed PostgreSQL 18.5, 17.11, 16.15, 15.19 i 14.24.
- CVE-2026-14662Wysokie
Zawinięcie liczby całkowitej w funkcjach typów danych tsvector i tsquery w PostgreSQL pozwala nieuprzywilejowanemu użytkownikowi bazy danych na spowodowanie zbyt małej alokacji i zapisu poza zakresem, poprzez spreparowane duże dane wejściowe. Może to umożliwić wykonanie dowolnego kodu jako użytkownik systemu operacyjnego uruchamiający bazę danych. Podatność dotyczy wersji przed 18.5, 17.11, 16.15, 15.19 i 14.24.
- CVE-2026-49004Średnie
Wbudowana usługa PostgreSQL na urządzeniu mobilnym ma błędy konfiguracji i podatności na wstrzykiwanie poleceń. Usługa nasłuchuje na określonym porcie, działa z uprawnieniami roota i jest chroniona słabymi poświadczeniami. Baza danych obsługuje składnię COPY FROM PROGRAM, co pozwala lokalnym atakującym ominąć piaskownicę uprawnień Androida i uzyskać pełny dostęp root.
- CVE-2026-6478Średnie
Ukryty kanał czasowy (covert timing channel) podczas porównywania haseł haszowanych MD5 w uwierzytelnianiu PostgreSQL pozwala atakującemu na odzyskanie danych uwierzytelniających wystarczających do zalogowania. Nie dotyczy to haseł scram-sha-256, które są domyślne we wszystkich wspieranych wersjach. Jednak istniejące bazy danych mogą zawierać hasła haszowane MD5 pochodzące z aktualizacji z PostgreSQL 13 lub wcześniejszych. Podatne są wersje przed PostgreSQL 18.4, 17.10, 16.14, 15.18 i 14.23.
- CVE-2026-6477Wysokie
W PostgreSQL libpq funkcje lo_export(), lo_read(), lo_lseek64() i lo_tell64() używają niebezpiecznej funkcji PQfn(..., result_is_int=0, ...), co pozwala superużytkownikowi serwera na nadpisanie bufora stosu klienta dowolnie dużymi danymi. Podobnie jak gets(), PQfn przechowuje dane o dowolnej długości w buforze o nieokreślonym rozmiarze. Dotyczy to wersji przed PostgreSQL 18.4, 17.10, 16.14, 15.18 i 14.23.
- CVE-2026-6473Wysokie
W serwerze PostgreSQL wykryto podatność związaną z zawijaniem liczb całkowitych w wielu funkcjach, która umożliwia nieuprzywilejowanemu użytkownikowi bazy danych spowodowanie niedowymiarowania alokacji i zapisu poza zakresem. Może to prowadzić do wykonania dowolnego kodu jako użytkownik systemu operacyjnego uruchamiający bazę danych. Podatność dotyczy wersji przed 18.4, 17.10, 16.14, 15.18 i 14.23.

