CVE-2026-6477
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 38 - wyżej niż 38% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Superużytkownik serwera może nadpisać pamięć stosu klienta (np. psql lub pg_dump), co może prowadzić do zdalnego wykonania kodu na kliencie lub awarii.
Rekomendacja
Zaleca się natychmiastową aktualizację PostgreSQL do wersji 18.4, 17.10, 16.14, 15.18 lub 14.23 (w zależności od głównej wersji).
Inne podatności w PostgreSQL
Zobacz wszystkie- 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-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.
Oryginalny opis (angielski, źródło NVD)
Use of inherently dangerous function PQfn(..., result_is_int=0, ...) in PostgreSQL libpq lo_export(), lo_read(), lo_lseek64(), and lo_tell64() functions allows the server superuser to overwrite a client stack buffer with an arbitrarily-large response. Like gets(), PQfn(..., result_is_int=0, ...) stores arbitrary-length, server-determined data into a buffer of unspecified size. Because both the \lo_export command in psql and pg_dump call lo_read(), the server superuser can overwrite pg_dump or psql stack memory. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.

