CVE-2026-54291
ŚrednieCVSS 5.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 16 - wyżej niż 16% wszystkich znanych CVE
Streszczenie
Sterownik JDBC dla PostgreSQL (pgjdbc) w wersjach 42.7.4 do 42.7.11 umożliwia ciche obniżenie poziomu uwierzytelniania SCRAM-SHA-256-PLUS z wiązaniem kanału do zwykłego SCRAM-SHA-256 bez niego. Atakujący typu man-in-the-middle może wykorzystać certyfikat bez odpowiedniego skrótu wiązania kanału, aby wymusić tę degradację i ominąć ochronę.
Ocena ryzyka
Organizacja narażona jest na ataki typu man-in-the-middle na połączenia z bazą PostgreSQL, co może prowadzić do przechwycenia lub modyfikacji danych przesyłanych między aplikacją a bazą danych.
Rekomendacja
Należy niezwłocznie zaktualizować sterownik pgjdbc do wersji 42.7.12 lub nowszej, która zawiera poprawkę uniemożliwiającą ciche obniżenie poziomu uwierzytelniania.
Inne podatności w pgjdbc
Zobacz wszystkie- CVE-2026-107315Średnie
Sterownik JDBC dla PostgreSQL (pgjdbc) w wersjach od 42.7.4 do 42.7.13 dopełnia wartość krótszą niż zadeklarowana długość bajtami pozostałymi w buforze wysyłki zamiast zerami, a serwer przechowuje te bajty jako część wartości. Bajty te to wiadomości wysłane wcześniej przez sterownik na tym samym połączeniu: tekst SQL i wartości parametrów ostatnich zapytań, które w połączeniach pulowanych mogą pochodzić z innych żądań. Każda dopełniona wartość może przenosić do 8192 bajtów takiego ruchu, a przy szyfrowaniu GSS do 16320 bajtów. Dopełnianie występuje, gdy aplikacja deklaruje długość większą niż dostarczane dane, przez PreparedStatement.setObject z ByteStreamWriter, CopyIn.writeToCopy, PGCopyOutputStream.write, LargeObject.write lub Blob.setBytes. Sterownik przyjmuje te wywołania bez błędu. Atakujący, który może sprawić, że aplikacja zapisze taką wartość i odczyta ją, może zebrać wcześniejszy ruch. Aplikacje, w których deklarowane długości zawsze odpowiadają danym, nie są dotknięte. Wersje 42.7.3 i wcześniejsze dopełniają zerami.
- CVE-2026-107314Średnie
W sterowniku pgjdbc (PostgreSQL JDBC Driver) w wersjach 42.7.11-42.7.13 brakuje wymogu uwierzytelniania, gdy właściwość requireAuth wyklucza wszystkie znane metody (np. requireAuth=!password,!md5,!gss,!sspi,!scram-sha-256,!none). Sterownik akceptuje wtedy dowolną metodę żądaną przez serwer, w tym uwierzytelnianie hasłem w postaci jawnego tekstu. Atakujący w pozycji pośredniej może przechwycić hasło bazy danych. Wersja 42.7.14 naprawia problem.
- CVE-2026-42198Wysokie
Sterownik JDBC dla PostgreSQL (pgjdbc) w wersjach od 42.2.0 do 42.7.10 jest podatny na atak DoS po stronie klienta podczas uwierzytelniania SCRAM-SHA-256. Złośliwy serwer może wymusić na sterowniku wykonanie PBKDF2 z bardzo dużą liczbą iteracji, co prowadzi do nadmiernego obciążenia CPU i może zablokować pule połączeń. Parametr loginTimeout nie w pełni łagodził problem, ponieważ wątek roboczy kontynuował obliczenia nawet po upływie czasu oczekiwania.
Oryginalny opis (angielski, źródło NVD)
pgjdbc is an open source postgresql JDBC Driver. In releases 42.7.4 through 42.7.11, channelBinding=require connections can be silently downgraded from SCRAM-SHA-256-PLUS with channel binding to plain SCRAM-SHA-256 without it, losing the man-in-the-middle protection the setting is meant to guarantee. An attacker who can intercept the TLS connection can trigger the downgrade with a certificate whose signature algorithm has no tls-server-end-point channel-binding hash, because the bundled com.ongres.scram:scram-client returns an empty byte array instead of failing and pgJDBC ScramAuthenticator checks only that the server advertised a PLUS mechanism, without rejecting the empty binding or checking that the negotiated mechanism uses channel binding. This issue is fixed in version 42.7.12.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

