CVE-2026-120066
ŚrednieCVSS 5.3Streszczenie
W systemach uniksowych, gdy włączone jest logowanie, psqlODBC domyślnie tworzy pliki logów w /tmp, nazwane na podstawie nazwy programu, użytkownika i identyfikatora procesu, z domyślnymi uprawnieniami (zwykle czytelnymi dla wszystkich) i podąża za dowiązaniami symbolicznymi przy ich otwieraniu. Lokalny użytkownik może odczytać tekst zapytań i dane z logów innego użytkownika oraz umieścić dowiązanie symboliczne w przewidywalnej ścieżce, aby sterownik dopisywał dane logów do wybranego przez atakującego pliku z uprawnieniami ofiary. Wersje przed psqlODBC 18.00.0006 są podatne.
Ocena ryzyka
Lokalny atakujący może uzyskać dostęp do wrażliwych danych zapytań innych użytkowników oraz manipulować plikami z uprawnieniami ofiary poprzez atak dowiązania symbolicznego. Może to prowadzić do wycieku danych i nieautoryzowanej modyfikacji plików.
Rekomendacja
Zaktualizuj psqlODBC do wersji 18.00.0006 lub nowszej. Do czasu aktualizacji rozważ wyłączenie logowania lub zmianę katalogu logów na bezpieczny, niepubliczny katalog.
Inne podatności w psqlODBC
Zobacz wszystkie- CVE-2026-120067Średnie
W psqlODBC dla kursorów aktualizowalnych (domyślnie włączonych) sterownik dodaje ukryte kolumny ctid oraz oid do zapytania. Każda wartość jest kopiowana do 32-bajtowego bufora na stosie przy użyciu długości przesłanej przez serwer, bez sprawdzenia rozmiaru bufora, więc wartość 32 bajtów lub większa zapisuje poza bufor. Wersje przed psqlODBC 18.00.0006 są podatne.
- CVE-2026-120065Wysokie
W psqlODBC przy aktualizowalnym kursorze na tabeli bez OID z kolumną auto-increment int4 sterownik używa tej kolumny do identyfikacji wierszy, umieszczając jej nazwę w cudzysłowach bez podwajania znaków cudzysłowu w nazwie. Nazwa kolumny zawierająca cudzysłów zmienia wykonywane SQL, w tym to, które wiersze dotyczy UPDATE lub DELETE.
- CVE-2026-120064Wysokie
Kilka punktów wejścia psqlODBC używa numeru kolumny lub indeksu wiersza dostarczonego przez aplikację jako indeksu tablicy bez walidacji. SQLBindCol z numerem kolumny powyżej 32767 powoduje zawinięcie licznika powiązań na wartość ujemną, a ujemny SQL_DESC_COUNT odłącza kolumny pod ujemnymi indeksami; SQLSetPos(SQL_ADD) nie sprawdza numeru wiersza względem rozmiaru zbioru wierszy.
- CVE-2026-120063Średnie
W psqlODBC występuje przepełnienie bufora stosu podczas cytowania nazw schematów i tabel do bufora o rozmiarze 128 bajtów. Sprawdzenie długości pozwala zapisać do dwóch bajtów poza końcem bufora dla długich nazw pochodzących z tekstu SQL aplikacji lub z nazwy kolumny przesłanej przez serwer. Podatne są wersje przed psqlODBC 18.00.0006.
- CVE-2026-120062Wysokie
Funkcja SQLSpecialColumns w psqlODBC wstawia otrzymane nazwy tabeli i schematu do zapytania katalogowego bez ich escapowania, podczas gdy inne funkcje katalogowe je escapują. Aplikacja przekazująca niezaufaną nazwę tabeli lub schematu do SQLSpecialColumns pozwala wywołującemu wykonać dowolny SQL z uprawnieniami połączenia.
- CVE-2026-120061Wysokie
Parser sekwencji escape ODBC w psqlODBC zapisuje przesunięcia argumentów sekwencji {fn} do stałej 16-elementowej tablicy na stosie bez sprawdzania granic i bez inicjalizacji. Sekwencja z nadmiarem argumentów przepełnia stos, a odwołanie do niepodanego argumentu kopiuje dowolne bajty do zapytania; kopiowanie treści {d}, {t}, {ts} lub {escape} zapisuje też jeden bajt poza 128-bajtowym buforem stosu.
- CVE-2026-120060Średnie
psqlODBC ufa licznikom i długościom pochodzącym z danych serwera w trzech miejscach: SQLBulkOperations może spowodować niedomiar przy odejmowaniu rozmiaru, SQLStatistics iteruje klucze indeksu bez ograniczenia do stałego bufora, a dekodowanie ósemkowe bytea czyta do dwóch bajtów poza końcem obciętej sekwencji ucieczki. Serwer niezaufany w obecnych ustawieniach SSL może spowodować awarię klienta lub odczyt poza granicami. Podatne są wersje przed psqlODBC 18.00.0006.
- CVE-2026-120059Średnie
W psqlODBC nazwa kolumny auto-increment int4 zgłaszana przez serwer jest umieszczana w łańcuchu formatującym typu printf i później rozwijana podczas budowania klauzuli WHERE dla kursora aktualizowalnego. Nazwa kolumny zawierająca dyrektywy formatujące powoduje odczyt niepowiązanej pamięci, co może doprowadzić do awarii aplikacji lub skopiowania pamięci klienta do tekstu zapytania wysyłanego do serwera. Podatne są wersje przed psqlODBC 18.00.0006.
- CVE-2026-120058Wysokie
psqlODBC ustala rozmiar pamięci podręcznej wierszy na podstawie liczby kolumn pierwszego wyniku kursora, ale przy każdym kolejnym FETCH przelicza liczbę kolumn bez sprawdzenia zgodności. Serwer niezaufany w obecnych ustawieniach SSL może odpowiedzieć na późniejszy FETCH większą liczbą kolumn i spowodować zapis rekordów poza zaalokowaną pamięcią; odpowiedź keyset z mniejszą liczbą kolumn niż pól klucza powoduje niedomiar licznika.
- CVE-2026-120057Wysokie
psqlODBC kopiuje odpowiedź na odczyt dużego obiektu (loread) do bufora aplikacji, używając długości przesłanej przez serwer, bez porównania jej z rozmiarem bufora. Serwer niezaufany w obecnych ustawieniach SSL lub atakujący typu man-in-the-middle może zwrócić więcej bajtów niż mieści bufor i nadpisać sąsiednią pamięć procesu klienta danymi wybranymi przez serwer.
Oryginalny opis (angielski, źródło NVD)
On Unix-like systems, when logging is enabled, psqlODBC creates its log files in /tmp by default, named from the program name, user name, and process ID, with the default permissions, typically world-readable, and follows symbolic links when opening them. A local user can read query text and data from another user's logs, and can place a symbolic link at the predictable path so that the driver appends log data to a file of the attacker's choosing with the victim's privileges. Versions before psqlODBC 18.00.0006 are affected.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

